RocketMQ物理架构和消息

RocketMQ是一款高性能的消息中间件,基于发布订阅模型。NameServer作为元数据中心,Broker负责消息存储和传输,Producer发送消息,Consumer接收并消费。消息以Group、Topic、Tag组织,通过MessageQueue和Offset管理。RocketMQ支持同步、异步、单向发送,集群和广播消费模式,以及普通、顺序、延时、批量和事务消息。

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

1.RocketMQ的物理架构

RocketMQ是阿里巴巴的一款开源产品,性能可以和kafka相媲美,在业务开发领域非常好用。RocketMQ基于发布订阅模型,提供了丰富的功能和多功能消息。
在这里插入图片描述

1.1 NameServer

NameServer是RocketMQ的元数据管理中心、注册中心。所以RocketMQ需要首先启动NameServer,再启动其它的Broker节点。
Broker在启动的时候向所有的NameServer节点注册,Producer在发送消息之前首先向NameServer获取Broker服务地址列表,然后通过一定的负载算法进行消息发送。Consumer消费逻辑也一样。
NameServer与每台Broker服务保持长链接,每30S检查Broker是否存活,如果检测到Broker宕机,则从路由表中踢出。

1.2 Broker

RocketMQ暂存、持久化、传输消息的节点。

1.3 Producer

生产者,负责消息的产生和发送。

1.4 Consumer

消费者,负责对消息的接收和消费。

1.5 Message

消息本身,对于RocketMQ而言,底层就是一个字节数组。

2.Rocket概念模型

2.1 Group

对于生产者而言,分组用来标识同一类消息的Producer,仅做标识使用,没有特别的意义,RocketMQ的生产者Group更多是在事务消息会用到(Broker回查,遇到Producer宕机可以选择Producer同一个组的生产者回查消息是否提交or回滚。)
对于消费者而言,标识一类Consumer的集合。同一个Consumer Group的各个实例将共同消费Topic的消息,可以起到负载均衡的作用。组间共享,组内竞争。
消费进度是以Consumer Group为单元管理,不同的消费者组的消费进度彼此不受影响。

2.2 Topic

标识一类消息的逻辑标识,无论生产者和消费者都要指定Topic。

2.3 Tag

消息的二级分类。

2.4 Message Queue

管理消息的物理单元,一个Topic主题有若干个消息队列,如果一个Topic创建在不同的Broker上,则不同的Broker上都有若干个消息队列。每一个消息队列都对应了一个文件,该文件提供了存储实际消息索引的信息。
Message Queue是一个逻辑无限长的数组,

2.5 Offset

偏移量的概念在RocketMQ中很多,但是一般特Message Queue中的消费偏移量。

3.Rocket支持的各种消息

3.1 消息发送的方式

     - 同步发送:可靠的一种发送方式,需等待消息同步响应后才能成功。
     - 异步发送:异步方式进行消息发送,可通过回调函数来处理失败的业务。
     - 单向发送:Producer只负责发送消息,不负责服务器响应和回调。

3.2 消息的消费方式

     - 集群消费:同一个消息只会分给一个Group消费者组的某一台客户端进行消费。
     - 广播消费:同一个消息会给消费者组里面每一个客户端都投递消息进行消费。

3.3 普通消息

3.4 顺序消息

RocketMQ本身没有提供顺序消息的功能,但是可以借助一个方式来实现消息的顺序性。消息的顺序性分为:全局顺序、局部顺序。
全局顺序:如果生产者和消费者参与的Message Queue只有一个,就能够保证全局顺序性。
局部顺序:如果生产者和消费者参与的Message Queue有多个,只能保证每一个队列里的消息能够顺序消费。

3.5 延时消息

生产者发送某个消息,但是希望一段时间后消费者才能进行消费的情况。RocketMQ开源版只提供了一部分延时时间level选项,ONS商业版支持任意毫秒的延迟消息。

3.6 批量消息

批量发送普通消息,能够提高整体的传输效率,但是最大也不能大于4MB。

3.7 事务消息

在这里插入图片描述

事务消息一共有3个状态:已提交、回滚、中间态(未知)。
RocketMQ的事务消息一般用在分布式事务的最终一致性场景中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Minor王智

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值