介绍
发送到类型是topic交换机的消息的routing_key不能随意写,必须满足一定的要求,它必须是一个单词列表,以点号分隔开。这些单词可以是任意单词,比如说: “stock.usd.nyse” , “nyse.vmw”,"quick.orange.rabbit"这种类型的。当然这个单词列表最多不能超过255个字节。
- 在这个规则列表中,其中有两个替换符:
- * 可以代替一个单词
- # 可以代替零个或多个单词
匹配案例
下图绑定关系如下:
Q1绑定的是:中间带orange的三个单词的字符串:*.orange.*
Q2绑定的是:最后一个单词是rabbit的单个单词:*.*.rabbit,第一个单词是lazy的多个单词:lazy.#
数据接收情况如下:
quick.orange.rabbit:被队列Q1Q2接收到
quick.orange.fox:被队列Q1接收到
lazy.brown.fox:被队列Q2接收到
lazy.pink.rabbit:虽然满足队列Q2的两个绑定但是只会被接收一次
quick.orange.male.rabbit:四个单词不匹配任何绑定会被丢弃
结论
- 当一个队列绑定键是#,那么这个队列将接收所有数据,就有点像fanout了
- 如果队列绑定键当中没有#和*出现,那么该队列绑定类型就是direct了



