Apache RocketMQ官方文档中文精简版-体系结构

Apache RocketMQ是一个分布式消息和流媒体平台,由Name Server、Broker、Producer和Consumer组成。Name Server提供服务发现和路由信息,Broker处理消息存储和容错,Producer支持分布式部署,Consumer支持推送和拉取模式。RocketMQ的client包括Producer和Consumer,它们通过Name Server获取路由信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RocketMQ体系结构

概述

Apache RocketMQ是一个分布式消息和流媒体平台,具有低延迟、高性能、高可靠性、万亿级容量和灵活的可扩展性。它由四个部分组成:name servers名称服务器、brokers代理、producers 生产者和consumers消费者。它们中的每一个都可以水平扩展,而不会出现单点故障。如上图所示。

Name Server集群

Name Servers提供轻量级服务发现和路由信息。每个Name Server记录着完整的路由信息,提供相应的读写服务,支持快速的存储扩展。

Broker集群

Brokers通过提供轻量级的TOPIC和QUEUE机制来处理消息存储。它们支持消息推送和消息拉取模型,包含容错机制(2个副本或3个副本),并提供强有力的削锋能力,具有数千亿条消息的存储能力,并且保持消息的原有顺序。此外,Brokers 还提供灾难恢复、丰富的度量统计数据,和警报机制,这些都是传统消息传递系统所缺少的。

Producer集群

Producers支持分布式部署。分布式的Producers通过多种负载均衡模式,向Broker集群发送消息。发送消息的进程支持快速失效和低延迟。

Consumer集群

Consumers也支持推送和拉取模式的分布式部署。它还支持集群消费和消息广播。它提供了实时消息订阅机制,可以满足大多数消费者的需求。RocketMQ的网站为感兴趣的用户提供了一个简单的快速入门指南。

RocketMQ client

MQ的client指的是Producer/Consumer。

Name Server

NameServer是一个功能齐全的服务器,主要包括两个功能:

  • Broker管理, Broker 集群的broker注册到NameServer,NameServer接受注册,并提供心跳机制来检查broker是否alive。
  • 路由管理, 每个NameServer保存有关broker集群的完整的路由信息,和用于clients查询的队列信息.

如我们所知,RocketMQ clients(生产者/消费者)将从NameServer查询队列路由信息,但是clients如何找到NameServer地址?

向 clients(生产者/消费者)提供NameServer地址列表有四种方法:

  1. 编程方式,如 producer.setNamesrvAddr("ip:port").
  2. JAVA选项,使用 rocketmq.namesrv.addr.
  3. 环境变量,使用NAMESRV_ADDR.
  4. HTTP Endpoint。

有关如何查找NameServer地址的更多详情,请参阅这里.

Broker服务器

Broker服务器负责消息存储、传递和查询、HA保证等。

如下图所示,Broker服务器有几个重要的子模块:

  1. 远程模块,是broker的入口,处理来自clients的请求。
  2. client管理,管理clients (生产者/消费者)并维护消费者的主题订阅。
  3. 存储服务,提供简单的API来存储或查询物理磁盘中的消息。
  4. HA服务,在主从broker服务器之间提供数据同步功能。
  5. 索引服务,通过指定的键为消息建立索引,并提供快速消息查询。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值