首页 > 其他分享 >RabbitMQ

RabbitMQ

时间:2024-01-16 18:33:06浏览次数:19  
标签:交换器 队列 RabbitMQ 高可用性 消息 路由

RabbitMQ 是一个开源的消息代理软件,它使用消息队列来处理系统间的通信。主要原理是基于发布-订阅模式。生产者(Producer)发送消息到队列,消费者(Consumer)则从队列中接收消息。
RabbitMQ 支持多种消息模型,
包括点对点、发布/订阅和路由等。
它还支持消息确认、持久化和高可用性,确保消息可靠传递。
通过使用交换器(Exchange)和绑定(Binding),消息可以灵活地路由到不同的队列。
这使得 RabbitMQ 成为处理异步消息和系统解耦的有效工具。

RabbitMQ 是一种基于AMQP(高级消息队列协议)的消息中间件,其工作原理可以详细解释如下:

  1. 消息生产者和消费者:在 RabbitMQ 中,生产者发送消息到交换器,消费者则从队列中接收消息。

  2. 交换器(Exchange):交换器负责接收生产者发送的消息,并根据路由键(Routing Key)决定消息发送到哪个队列。交换器有几种类型,如直接(Direct)、主题(Topic)、扇出(Fanout)和头(Headers),每种类型决定了消息的路由方式。

  3. 队列(Queue):队列用于存储消息直到它们被消费。消费者可以订阅(Subscribe)队列来接收消息。

  4. 绑定(Binding):绑定是交换器和队列之间的链接。基于路由键,它告诉交换器如何将消息路由到正确的队列。

  5. 消息确认(Acknowledgement):为确保消息不会在传输过程中丢失,RabbitMQ 提供了消息确认机制。消费者处理完消息后会发送一个确认给 RabbitMQ,然后 RabbitMQ 会从队列中删除该消息。

  6. 持久化(Persistence):为了防止消息在服务重启后丢失,RabbitMQ 允许将消息和队列设置为持久化,即数据会被存储到磁盘上。

  7. 高可用性(High Availability):RabbitMQ 支持队列的镜像,可以在多个节点上复制队列,以实现高可用性和容错能力。

  8. 灵活性和扩展性:RabbitMQ 可以灵活地扩展和配置以满足各种不同的应用场景,如负载均衡和分布式部署。

通过这些机制,RabbitMQ 能够高效地管理和调度消息,适用于系统间的解耦、负载均衡、流量削减等多种场景。它的灵活性和扩展性使其成为企业级应用中常用的消息中间件之一。

标签:交换器,队列,RabbitMQ,高可用性,消息,路由
From: https://www.cnblogs.com/atrees/p/17968285

相关文章

  • FastAPi Celery RabbitMQ 与 Redis 的使用,并使用 Flower 监控 Celery 状态
    FastAPiCeleryRabbitMQ与Redis的使用,并使用Flower监控Celery状态本文介绍了Windows下FastAPiCelery使用RabbitMQ与Redis做代理的使用方法,本文参考了国外大佬的文章,并做了修改与补充,原文见这里,SumanDas,他文章中的完整代码,见这里,GitHubRabbitMQ与Redis的......
  • Windows RabbitMQ 安装-截止当前最新版本(rabbitmq-server-3.12.12)图文教程
    WindowsRabbitMQ安装(图文教程)WindowsRabbitMQ安装,截止当前最新版本(rabbitmq-server-3.12.12)图文教程,本文只是最简单的安装方法,旨在能快速使用,若需要更多的配置,则需要你自行查阅官方文档,或互联网搜索答案咯,哈哈哈哈本文安装步骤共分4步:第1步:下载RabbitMQ与依赖Erl......
  • RabbitMQ部署安装
    1、RabbitMQ部署1.1.概述RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件),由以高性能、健壮以及可伸缩性出名的 Erlang 写成。因此使用RabbitMQ必须安装Erlang环境。说明:1、演示部署服......
  • docker 部署 rabbitmq 集群
     单机部署dockerrun-id-p15672:15672-p56732:5672\--namerabbitmq\--restartalways\-v/docker/rabbitmq:/var/lib/rabbitmq\-eRABBITMQ_DEFAULT_USER=admin\-eRABBITMQ_DEFAULT_PASS=******\rabbitmq:3.12.0-management 集群部署 #node01dock......
  • rabbitmq的五种模式
    第一种:简单模式Simple       一个消费者消费一个队列 第二种:工作模式Work        多个消费者消费一个队列 第三种:发布订阅模式             X代表交换机消息产生者将消息放入交换机,交换机发布订阅把消息......
  • 程序员的20大RabbitMQ面试问题及答案
    文章目录1、什么是RabbitMQ?为什么使用RabbitMQ?2、RabbitMQ有什么优缺点?3.rabbitmq的使用场景4.RabbitMQ基本概念5.RabbitMQ中的broker是指什么?cluster又是指什么?6、RabbitMQ概念里的channel、exchange和queue是逻辑概念,还是对应着进程实体?分别起什么作用?7vhost是什......
  • rabbitmq 的一些简单纪要
    安装Erlang百度下载下载rabbitmq安装好rabbitmq-pluginsenablerabbitmq_management添加web界面http://localhost:15672/默认地址rabbitmq-serverstart启动mqrabbitmqctladd_userliujian123添加用户密码window11添加报错,通过guest添加用户rabbit......
  • RabbitMQ学习三 管理后台
    一、RabbitMQ模型核心概念Broker一个RabbitMQ服务实例,如果一台硬件服务器上运行两次RabbitMQ进程的话,那就有两个RabbitMQ服务实例。Connection连接,应用程序与Broker的网络连接TCP/IP/三次握手和四次挥手Channel网络信道,几乎所有的操作都在Channel中进行,Channel是进行消......
  • 华为云耀云服务器L实例-微人事前后端分离人力资源管理系统-RabbitMQ配置
     华为云耀云服务器L实例-微人事前后端分离人力资源管理系统-RabbitMQ配置   产品官网:https://www.huaweicloud.com/product/hecs-light.html 项目源代码地址:https://github.com/lenve/vhr  今天我们采用可靠更安全、智能不卡顿、价优随心用、上手更简单、管理......
  • docker安装rabbitmq3.11.9镜像集群
    准备3台服务器安装配置镜像集群IP1:192.168.0.1IP2:192.168.0.2IP3:192.168.0.3yuminstall-ylrzsztelnetnciftopunzipyum-utilsepel-releasesystemctlstopfirewalld.service&&systemctldisablefirewalld.serviceyum-config-manager--add-repohttp://mirrors.aliyu......