RabbitMQ的topic主题通配符模式和应用场景

DBC 1.6K 0

简介:RabbitMQ的主题模式和应用场景

背景:

如果业务很多路由key,怎么维护??
topic交换机,支持通配符匹配模式,更加强大
工作基本都是用这个topic模式
什么是rabbitmq的主题模式

文档 https://www.rabbitmq.com/tutorials/tutorial-five-java.html

交换机是 topic, 可以实现发布订阅模式fanout和路由模式Direct 的功能,更加灵活,支持模式匹配,通配符等

交换机同过通配符进行转发到对应的队列,* 代表一个词,#代表1个或多个词,一般用#作为通配符居多,比如 #.order, 会匹配 info.order 、sys.error.order, 而 *.order ,只会匹配 info.order, 之间是使用. 点进行分割多个词的; 如果是 ., 则info.order、error.order都会匹配

注意

交换机和队列绑定时用的binding使用通配符的路由健
生产者发送消息时需要使用具体的路由健
测试,下面的匹配规则是怎样的

quick.orange.rabbit 只会匹配 *.orange.* 和 *.*.rabbit ,进到Q1和Q2
lazy.orange.elephant 只会匹配 *.orange.* 和 lazy.#,进到Q1和Q2
quick.orange.fox 只会匹配 *.orange.*,进入Q1
lazy.brown.fox 只会匹配azy.#,进入Q2
lazy.pink.rabbit 只会匹配 lazy.#和*.*.rabbit ,同个队列进入Q2(消息只会发一次)

quick.brown.fox 没有匹配,默认会被丢弃,可以通过回调监听二次处理

lazy.orange.male.rabbit,只会匹配 lazy.#,进入Q2

发表评论 取消回复
表情 图片 链接 代码

分享