【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:执行具体操作的信道。
相关推荐
q5673152339 分钟前
IBM官网新闻爬虫代码示例
开发语言·分布式·爬虫
不爱学英文的码字机器1 小时前
数据网格的革命:从集中式到分布式的数据管理新范式
分布式
season_zhu1 小时前
Swift:优雅又强大的语法糖——Then库
ios·架构·swift
hstar95272 小时前
二、即时通讯系统设计经验
java·架构
江梦寻2 小时前
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
开发语言·后端·python·macos·架构·策略模式
优秀的颜4 小时前
计算机基础知识(第五篇)
java·开发语言·分布式
打码人的日常分享10 小时前
物联网智慧医院建设方案(PPT)
大数据·物联网·架构·流程图·智慧城市·制造
白水baishui11 小时前
搭建强化推荐的决策服务架构
架构·推荐系统·强化学习·决策服务·服务架构
何双新11 小时前
第23讲、Odoo18 邮件系统整体架构
ai·架构
雪碧聊技术11 小时前
将单体架构项目拆分成微服务时的两种工程结构
微服务·架构·module·project·工程结构