在Work Queues模式中,消息被均匀地分发给多个消费者。每个消息只会被一个消费者处理,确保每个任务只被一个消费者执行。这种分发方式称为轮询(Round-robin)分发。与点对点模式代码几乎一样,首先,需要将连接RabbitMq的代码封装一下。ZY.RabbitMq.Common类库,然后创建一个RabbitUtils工具类,代码如下:
工作队列模式的特点包括:
工作队列模式适用于任务较重的场景,例如处理大量的计算任务、耗时的IO操作等。它可以提高系统的并发处理能力和可靠性。
- 并发处理:多个消费者可以并行地处理消息,提高了系统的处理能力。
- 负载均衡:消息会被均匀地分发给多个消费者,避免某个消费者被过载。
- 消息持久化:消息可以持久化存储在队列中,确保即使在消费者宕机后,消息也不会丢失。
- 确认机制:消费者可以向消息队列发送确认消息,告知消息已被处理完成,确保消息的可靠处理。
总结:Work Queues模式是一种消息队列的模式,它实现了任务的并发处理和负载均衡,适用于处理任务较重的场景。通过使用RabbitMQ的Work Queues模式,你可以提高系统的吞吐量和响应速度。
下面是发布订阅模式的基本工作流程:下方代码为Fanout广播类型的交换机
Exchange只负责转发消息,不具备存储消息的能力,因此如果没有任何队列与Exchange绑定,或者没有符合路由规则的队列,那么消息会丢失!
- 创建一个交换机(Exchange)。
- 启动多个消费者,每个消费者都创建一个队列(Queue)并将其绑定到交换机上。
- 启动消息发布者,将消息发送到交换机上。
- 每个消费者从自己的队列中获取消息,并进行处理。
RabbitMQ的路由模式(Routing)是一种消息传递模式,它允许发送者将消息发送到特定的队列,而不是发送到所有队列。这种模式使用了交换机(Exchange)来实现消息的路由和分发。
在路由模式中,有三个关键组件:
在路由模式中,交换机的类型通常为direct,它根据路由键的完全匹配将消息路由到与之绑定的队列。每个队列可以绑定多个路由键。
- 生产者(Producer):负责发送消息到交换机,并指定路由键。
- 交换机(Exchange):接收生产者发送的消息,并根据路由键将消息路由到一个或多个与之绑定的队列。
- 队列(Queue):接收交换机发送的消息,并进行消费。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |