RabbitMQ——TopicExchange交换机
TopicExchange与其他交换机相比较,最大的区别在于支持通配符。共有两种特定的通配符“*”、“#”
通配符“*”表示某一段特定字符串,“#”表示任意一段字符串(可以是多个,也可以是没有)。因此“#”的匹配范围大于“*”,其包含于“*”
如DirectExchange可以指定两个路由:
mq.routingname.one.name=local.routing.key.one
mq.routingname.two.name=local.routing.key.two
在TopicExchange中则可以统一为一种:
mq.routingname.name=local.routing.key.*
此处的“*”就可以替代为“one”、“two”。
示例
#消息模型-topicExchange
mq.topic.exchange.name=${mq.env}.middleware.mq.topic.exchange
mq.topic.routing.key.one.name=${mq.env}.middleware.mq.topic.routing.*.key
mq.topic.routing.key.two.name=${mq.env}.middleware.mq.topic.routing.#.key
mq.topic.queue.one.name=${mq.env}.middleware.mq.topic.one.queue
mq.topic.queue.two.name=${mq.env}.middleware.mq.topic.two.queue