【RabbitMQ】RabbitMQ队列模式(七)
1)订阅模式
声明交换机类型为fanout
,例如channel.exchangeDeclare("logs", "fanout");
将一个或者多个队列绑定到交换机exchange
上,生产者发送消息到交换机上,交换机一个广播的形式将消息发送到所有绑定的队列上。
2)路由模式(Routing)
声明交换机类型为direct
,例如channel.exchangeDeclare("logs", "direct ");
路由模式可以理解在订阅模式的高级版,是交换机与队列之间将一层过滤条件(路由),交换机可以根据条件将消息分发到对应的路由上。
3)主题模式(Topics)
声明交换机类型为topic
,例如channel.exchangeDeclare("logs", "topic ");
主题模式是路由模式基础上的进一步优化,交换机可以根据通配符,将消息投递到匹配上的队列中。
4)Headers Exchange
Header Exchange可以根据多个属性来进行路由,有点类似Http 中Header。Header Exchange可以忽略the routing key attribute。
匹配有两种方式all和any。这两种方式是在接收端必须要用键值”x-mactch”来定义。all代表定义的多个键值对都要满足,any代表只要满足一个就可以。fanout,direct,topic exchange的routingKey都需要要字符串形式的,而headers exchange则没有这个要求。
参考:
https://www.cnblogs.com/wyt007/p/9078647.html
https://www.rabbitmq.com/tutorials/amqp-concepts.html#exchange-headers
好学若饥,谦卑若愚
分类:
RabbitMQ
标签:
Middleware
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?