【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

posted @ 2022-01-23 15:36  二月无雨  阅读(30)  评论(0编辑  收藏  举报