RabbitMQ六种模式详解

一、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)

独占队列只能被一个连接访问,适用于在同一连接中处理带有多个消息处理者的任务。而自动删除队列则在不再被使用时自动删除,通常用在临时队列中。

参考资料

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/151612.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-11 13:43
下一篇 2024-11-11 13:43

相关推荐

  • RabbitMQ和Yii2的消息队列应用

    本文将探讨RabbitMQ和Yii2之间的消息队列应用。从概念、安装和配置、使用实例等多个方面详细讲解,帮助读者了解和掌握RabbitMQ和Yii2的消息队列应用。 一、Rabbi…

    编程 2025-04-29
  • 手机安全模式怎么解除?

    安全模式是一种手机自身的保护模式,它会禁用第三方应用程序并使用仅限基本系统功能。但有时候,安全模式会使你无法使用手机上的一些重要功能。如果你想解除手机安全模式,可以尝试以下方法: …

    编程 2025-04-28
  • Qt State Machine与状态机模式

    本文将介绍Qt State Machine和状态机模式在Qt中的实现。Qt提供了QStateMachine和QState两个类,可以方便地实现状态机模式,并且能有效地处理复杂的、多…

    编程 2025-04-27
  • 显示C++设计模式

    本文将详细介绍显示C++设计模式的概念、类型、优点和代码实现。 一、概念 C++设计模式是在软件设计阶段定义,用于处理常见问题的可重用解决方案。这些解决方案是经过测试和验证的,并已…

    编程 2025-04-27
  • RabbitMQ Server 3.8.0使用指南

    RabbitMQ Server 3.8.0是一个开源的消息队列软件,官方网站为https://www.rabbitmq.com,本文将为你讲解如何使用RabbitMQ Server…

    编程 2025-04-27
  • Centos7进入单用户模式的解释

    本文将介绍如何在Centos7中进入单用户模式,并从以下几个方面进行详细的阐述。 一、Centos7进入单用户模式的解答 在Centos7中进入单用户模式需要执行以下步骤: 1. …

    编程 2025-04-27
  • RabbitMQ如何解决重复消费

    RabbitMQ是一个消息队列中间件,经常在分布式系统中起到至关重要的作用。但是消息的重复消费也是一个大家经常会遇到的问题。这篇文章将针对RabbitMQ如何解决重复消费做出详细的…

    编程 2025-04-27
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25

发表回复

登录后才能评论