1.主题模式下
发送到类型是 topic 交换机的消息的 routing_key 不能随意写,必须满足一定的要求,它必须是一个单词列表,以点号分隔开。这些单词可以是任意单词,比如:
"stock.usd.nyse","nyse.vmw"
"quick.orange.rabbit"等这些类型
当然这个单词列表最多不能超过 255 个字节
在这个规则列表中,其中有两个替换符是需要注意的,*(星号)可以代替一个单词,#(井号)可以替代零个或多个单词。
2.匹配案例
Q1-->绑定的是 中间带 orange 带 3 个单词的字符串(*.orange.*)
Q2-->绑定的是 最后一个单词是 rabbit 的 3 个单词(*.*.rabbit)或者第一个单词是 lazy 的多个单词(lazy.#)
quick.orange.rabbit 被队列 Q1Q2 接收到
lazy.orange.elephant 被队列 Q1Q2 接收到
quick.orange.fox 被队列 Q1 接收到
lazy.brown.fox 被队列 Q2 接收到
lazy.pink.rabbit 虽然满足两个绑定但只被队列 Q2 接收一次
quick.brown.fox 不匹配任何绑定不会被任何队列接收到会被丢弃
quick.orange.male.rabbit 是四个单词不匹配任何绑定会被丢弃
lazy.orange.male.rabbit 是四个单词但匹配 Q2
3.演示案例
生产者,匹配不同的routingKey
package org.example.Topic;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFa