1. mq的选型
rabbitq
kafka
rocketmq[开源]
activemq
rocketmq[ali]
SQS[aws]
云服务支持
×(aws)√(ali)
√
×
√
√
√
性能
3
5
4
2
5
5
易用性
5
4
3
5
3
3
功能性
高级特性支持mqtt/延迟
不支持
手动性
支持延迟
支持延迟
支持延迟(最大15分钟延时)
更多参数对比请参照链接
2. rabbitmq基础知识普及
生产者(Producer):发送消息的应用
消费者(Consumer):接收消息的应用。
队列(Queue):存储消息的缓存。
消息(Message):由生产者通过RabbitMQ发送给消费者的信息。由(headers[hashmap]和payload)组成
连接(Connection):连接RabbitMQ和应用服务器的TCP连接
通道(Channel):连接里的一个虚拟通道。当你通过消息队列发送或者接收消息时,这个操作都是通过通道进行的。
连接(Connection):连接RabbitMQ和应用服务器的TCP连接
交换机(Exchange):交换机负责从生产者那里接收消息,并根据交换类型分发到对应的消息列队里。要实现消息的接收,一个队列必须到绑定一个交换机。
direct--------------------------点到点的模式
fanout-------------------------广播模式
topic---------------------------路由模式(rountingKey) 正则表达式
header------------------------路由模式(headers)
x-delayed-message-------需要安装延迟队列插件标识(x-delayed-type 标志了这个队列除了是个延迟队列,他还属于上面4种队列种的一个)
在管理界面新建延时exchange.png
安装延迟队列插件:
插件下载 rabbitmq_delayed_message_exchange.ez【请下载rabbitmq对应的版本】
放在rabbitmq安装目录的plugins目录下
执行rabbitmq-plugins enable rabbitmq_delayed_message_exchange
绑定(Binding):绑定是队列和交换机的一个关联连接。
路由键(Routing Key):路由键是供交换机查看并根据键来决定如何分发消息到列队的一个键。路由键可以说是消息的目的地址。
图片来源https://www.