目录
一、RabbitMQ
- Producer:生产者,消息的提供者
- Consumer:消费者,消息的使用者
- Broker:MQ服务器,管理队列、消息及相关信息
- Message:消息,程序间的通信的数据
- Queue:队列,消息存放的容器,消息先进先出
- Exchange:交换机,用于分发消息
二、RabbitMQ的六种队列模式
2.1 简单模式
2.2 工作队列模式
- 本讲将创建一个工作队列(Work Queue),它会发送一些耗时的任务给多个工作者(Worker)。
- 在多个消息的情况下,Work Queue会将消息分派给不同的消费者,每个消费者都会接收到不同的消息,并且可以根据处理消息的速度来接收消息的数量,进而让消费者程序发挥最大性能。
- Work Queue特别适合在集群环境中做异步处理,能最大程序发挥每一台服务器的性能。
2.3 发布订阅模式
- 发布/订阅模式中,生产者不再直接与队列绑定,而是将数据发送至"交换机Exchange"
- 交换机Exchange用于将数据按某种规则送入与之绑定的队列,进而供消费者使用。
- 发布/订阅模式中,交换机将无差别的将所有消息送入与之绑定的队列,所有消费者拿到的消息完全相同。
发布/订阅模式使用场景
- 发布订阅模式因为所有消费者获得相同的消息,所以特别适合“数据提供商与应用商“。
- 例如:中国气象局提供“天气预报”送入交换机,网易、新浪、百度、搜狐等门户接入通过队列绑定到该交换机,自动获取气象局推送的气象数据。
2.4 路由模式
- 路由(Routing)模式是在发布订阅模式基础上的变种。
- 发布订阅模式是无条件将所有消息分发给所有消费者队列。
- 路由模式则是Exchange根据Routing Key有条件的将数据筛选后发给消费者队列。
2.5 主题模式
- 主题Topic模式是在Routing模式基础上,提供了对RouteKey模糊匹配的功能,可以简化程序的编写。
- 主题模式下,模糊匹配表达式规则为
- * 匹配单个关键字
- # 匹配所有关键字