MQ的消息路由(ActiveMQ与RabbitMQ)

403 阅读1分钟

本文主要介绍热门的几个MQ产品的消息路由,实现方式。

那什么是消息路由呢,就是将广播消息统一转化到一个队列或多个队列里面,从而达到消息的统一消费或消息的按组消费效果。其中队列消息里面的消息分组功能也算是消息路由的一种,但是这种是在消息生产端发送的时候提前指定消息分组规则,客户端端消费的时候再来进行消费。这种效果在一定情况下可以达到业务消息分类消费或顺时消费效果

常用MQ产品:

ActiveMQ是通过虚拟主题的模式

blog.csdn.net/KimmKing/ar…

image.png

image.png

Artemis 通过在服务端配置转发规则实现

组播和任意路由规则配置参考官方文档

activemq.apache.org/artemis/doc…

源码地址:

github.com/apache/acti…

RabbitMQ 通过交换机(exchange)的模式实现

参考文档:

rabbitmq.mr-ping.com/tutorials_w…

  1. 直连交换机(direct Exchanges)

image.png 2. 多个绑定 image.png 2. 扇型交换机(fanout exchanges)

3.topic

4.headers

绑定键也必须拥有同样的格式。主题交换机背后的逻辑跟直连交换机很相似 ——

一个携带着特定路由键的消息会被主题交换机投递给绑定键与之想匹配的队列。但是它的绑定键和路由键有两个特殊应用方式:

  • * (星号) 用来表示一个单词.
  • # (井号) 用来表示任意数量(零个或多个)单词。