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