一、RabbitMQ的三大模式
RabbitMQ的三大模式分别是:
- 点对点模式(Direct模式)
- 发布订阅模式(Fanout模式)
- 主题模式(Topic模式)
其中,点对点模式是最简单、也是应用最为广泛的模式。
二、RabbitMQ有几种模式
RabbitMQ共有六种模式:
- 点对点模式(Direct模式)
- 发布订阅模式(Fanout模式)
- 主题模式(Topic模式)
- 头部模式(Headers模式)
- RPC模式(Remote Procedure Call)
- 流模式(Stream模式)
三、RabbitMQ的五种模式
RabbitMQ的五种模式是指除了流模式以外的五种模式,即:
- 点对点模式(Direct模式)
- 发布订阅模式(Fanout模式)
- 主题模式(Topic模式)
- 头部模式(Headers模式)
- RPC模式(Remote Procedure Call)
四、RabbitMQ发布订阅模式
发布订阅模式(Fanout模式)是RabbitMQ中最简单的模式之一。它将消息发布到所有已订阅该交换机的队列中,因此不需要指定Routing Key。这种模式的应用场景比如天气预报,由多个不同的客户端订阅相同的天气信息。
// Fanout模式发送信息代码示例 const exchangeName = 'logs'; const message = 'Hello world!'; channel.assertExchange(exchangeName, 'fanout', { durable: false }); channel.publish(exchangeName, '', Buffer.from(message)); console.log(" [x] Sent %s", message);
五、RabbitMQ消息模式
消息模式(Direct模式)是RabbitMQ中最基础的模式之一。它将消息发送到具有特定Routing Key的队列中,以便只有需要该消息的消费者才能接收到它。这种模式的应用场景比如发送邮件,将邮件发送到特定的人。
// Direct模式发送信息代码示例 const queueName = 'hello'; const message = 'Hello world!'; channel.assertQueue(queueName, { durable: false }); channel.sendToQueue(queueName, Buffer.from(message)); console.log(" [x] Sent %s", message);
六、RabbitMQ集群模式有几种
RabbitMQ的集群模式有两种:
- 镜像队列模式(Mirror Queue)
- 仲裁队列模式(Quorum Queue)
镜像队列模式将队列的所有消息在集群中的节点之间进行复制,以实现高可用性的目的。而仲裁队列模式则采用Raft算法,通过仲裁节点对队列中的消息进行复制和同步。
七、RabbitMQ常用工作模式
RabbitMQ常用的工作模式有:
- 简单工作模式
- 工作队列模式
- 发布订阅模式
- 路由模式
- 主题模式
其中,发布订阅模式和主题模式介绍过了,其他模式的详细介绍可参考文末给出的代码链接。
八、RabbitMQ队列模式
RabbitMQ队列模式分为两种:
- 独占队列(Exclusive Queue)
- 自动删除队列(Auto-delete Queue)
独占队列只能被一个连接访问,适用于在同一连接中处理带有多个消息处理者的任务。而自动删除队列则在不再被使用时自动删除,通常用在临时队列中。