当前位置: 首页 > news >正文

【RabbitMQ】RabbitMQ的基本架构是什么?包括哪些核心组件?

RabbitMQ基于AMQP协议实现,由多个核心组件组成,确保消息的可靠传递。

Rabbit的架构图:

请添加图片描述

1.RabbitMQ的基本架构:

1.核心组件:

1.Producer(生产者): 发送消息到RabbitMQ。
2.Exchange(交换机):接受生产者发送的消息,并根据路由规则将消息分发到队列。
3.Queue(队列):存储消息,等待消费者消费。
4.Binding(绑定):将交换机和队列关联起来,定义消息的路由规则。
5.Consumer(消费者):从队列中获取消息并进行处理。
6.Connection(连接):生产者或消费者与RabbitMQ之间的TCP连接。
7.Channel(信道):在连接的基础上创建的虚拟连接,用于执行具体的操作(如发送消息、消费消息)。

2.消息流转过程

2.1生产者发送消息:

  • 生产者通过连接和信道,将消息发送到交换机。
  • 消息包含路由键和消息体。

2.2交换机路由消息:

  • 交换机根据路由键和绑定规则,将消息发送到对应的队列。

2.3队列存储消息:

  • 队列接收并存储消息,等待消费者消费。

2.4消费者消费消息:

  • 消费者通过连接和信道从队列中获取消息并处理。
  • 消费者可以手动或自动发送确认(ACK)给RabbitMQ。

3.核心组件的详细说明:

3.1Producer(生产者)

  • 作用:发送消息到RabbitMQ。
  • 关键操作
    • 创建连接(Connection)。
    • 创建信道(Channel)。
    • 发送消息到交换机。

3.2Exchange(交换机)

  • 作用接收生产者发送的消息,并根据路由规则将消息分发到队列。
  • 类型
    • Direct Exchange:根据路由键精确匹配队列。
    • Fanout Exchange:将消息广播到所有绑定的队列。
    • Topic Exchange:根据路由键的模式匹配队列。
    • Headers Exchange:根据消息头属性匹配队列。

3.3Queue(队列):

  • 作用存储信息,等待消费者消费。
  • 特性
    • 消息先进先出(FIFO)。
    • 设置持久化、优先级、TTL等属性。

3.4Binding(绑定)

  • 作用:将交换机和队列关联起来,定义消息的路由规则。
  • 关键属性:
    • 路由键(Routing Key):用于匹配消息和队列

3.5Consumer(消费者)

  • 作用:从队列中获取消息并进行处理。
  • 关键操作
    • 创建连接(Connection)。
    • 创建信道(Channel)。
    • 订阅队列并消费消息。

3.6Connection(连接)

  • 作用:生产者或消费者与RabbitMQ之间的TCP连接。
  • 特性
    • 一个连接可以创建多个信道。
    • 连接是长连接,避免频繁建立和断开连接的开销。

3.7Channel(信道)

  • 作用:在连接基础上创建的虚拟连接,用于执行具体的操作(如发送消息、消费消息)。
  • 特性
    • 一个连接可以创建多个信道
    • 信道是轻量级的,减少资源消耗。

4.总结:

  • Producer:发送消息。
  • Exchange:路由消息
  • Queue:存储消息。
  • Binding:定义路由规则。
  • Consumer:消费消息。
  • Connection:建立与RabbitMQ的连接。
  • Channel:执行具体操作的信道。

相关文章:

  • 建筑安全员考试:“时间管理” 关键词统筹的备考规划
  • 考研课程安排(自用)
  • Ubuntu 系统安装 Redis 的详细步骤
  • 一键部署 GPU Kind 集群,体验 vLLM 极速推理
  • CUDA 学习(2)——CUDA 介绍
  • 三层网络 (服务器1 和 服务器2 在不同网段)
  • MATLAB 绘制空间分布图 方法总结
  • 蓝桥杯算法精讲:二分查找实战与变种解析
  • CentOS 7扩容 /dev/shm
  • MyBatis-Plus的加载和初始化
  • macOS 使用 iconv 转化文件编码
  • C#里使用libxl来对列或行进行分组显示
  • CTF题目 《FinalSQL》(极客大挑战 2019)WriteUp
  • idea接入 AI 编程助手:Copilot
  • KiLog2MaximumIncrement的由来和KiMaximumIncrementReciprocal的由来
  • 策略模式 vs. 工厂模式:对比与分析
  • 15:视图
  • T113-i开发板的休眠与RTC定时唤醒指南
  • git | 回退版本 并保存当前修改到stash,在进行整合。[git checkout | git stash 等方法 ]
  • 【安全运营】安全运营关于告警降噪的一些梳理
  • 印巴开始互袭军事目标,专家:冲突“螺旋式升级”后果或不可控
  • 中国一重集团有限公司副总经理陆文俊被查
  • 马上评丨行人转身相撞案:走路该保持“安全距离”吗
  • 悬疑推理联合书单|虫神山事件
  • 洞天寻隐·学林纪丨玉洞桃源:仇英青绿山水画中的洞天与身体
  • 黄玮接替周继红出任国家体育总局游泳运动管理中心主任