RabbitMQ共有6种工作模式(消息分发模式),分别是简单模式、工作队列模式、发布订阅模式、路由模式、主题模式以及RPC模式。
简单模式是最基本的工作模式,也是最简单的消息传递模式。在简单模式中,一个生产者将消息发到一个队列中,一个消费者从队列中获取并消费消息。这种模式适用于单个生产者和单个消费者的简单场景,消息的处理是同步的。
工作队列模式用于实现一个任务在多个消费者之间的并发处理,在工作队列模式中,一个生产者将消息发到一个队列中,多个消费者从队列中获取并处理消息,每个消息只能被一个消费者处理。这种模式适用于多个消费者并发处理消息的情况,提高了系统的处理能力和吞吐量。
发布/订阅模式用于实现一条消息被多个消费者同时接受和处理。在发布/订阅模式中,一个生产者将消息发送到交换器(Exchange)中,交换器将消息广播到所有绑定的队列,每个队列对应一个消费者。这种模式适用于消息需要被多个消费者同时接受和处理的广播场景,如日志订阅和消息通知等。
路由模式用于实现根据消息的路由键(Routing Key)将消息路由到不同的队列中。在路由模式中,一个生产者将消息发送到交换器中,并制定消息的路由键,交换器根据路由键将消息路由到与之匹配的队列中。这种模式适用于根据不同的条件将消息分发到不同的队列中,以实现消息的筛选和分发。
主题模式是一种更灵活的消息路由,它使用通配符匹配路由键,将消息路由到多个队列中。在主题模式中,一个生产者将消息发送到交换器中,并指定主题(Topic)作为路由键,交换器根据通配符匹配将消息路由到与之匹配的队列中。
RPC模式是一种用于实现分布式系统中远程调用的工作模式。指的是通过RabbitMQ来实现一种RPC的能力。