0
点赞
收藏
分享

微信扫一扫

深入研究消息队列03 各消息队列架构对比

10 RabbitMQ的架构设计与实现

系统架构

深入研究消息队列03 各消息队列架构对比_架构设计

RabbitMQ 由 Producer、Broker、Consumer 三个大模块组成。生产者将数据发送到 Broker,Broker 接收到数据后,将数据存储到对应的 Queue 里面,消费者从不同的 Queue 消费数据。

深入研究消息队列03 各消息队列架构对比_系统架构_02

协议和网络模块

深入研究消息队列03 各消息队列架构对比_架构设计_03

深入研究消息队列03 各消息队列架构对比_架构设计_04

主要包含 tcp_listener、tcp_acceptor、rabbit_reader 三个进程。如下图所示,RabbitMQ 服务端通过 tcp_listener 监听端口,tcp_acceptor 接收请求,rabbit_reader 处理和返回请求。本质上来看是也是一个多线程的网络模型。

深入研究消息队列03 各消息队列架构对比_架构设计_05

数据存储

RabbitMQ 的存储模块也包含元数据存储与消息数据存储两部分。如下图所示,RabbitMQ 的两类数据都是存储在 Broker 节点上的,不会依赖第三方存储引擎。我们先来看一下元数据存储。

深入研究消息队列03 各消息队列架构对比_系统架构_06

深入研究消息队列03 各消息队列架构对比_系统架构_07

深入研究消息队列03 各消息队列架构对比_系统架构_08

深入研究消息队列03 各消息队列架构对比_系统架构_09


举报

相关推荐

0 条评论