rocketmq发送、存储、消费流程
1.路由中心NameServer
1.1 NameServer架构设计

1)Broker每隔30s向NameServer集群的每一台机器发送心跳包,包含自身创建的topic路由等信息。
2)消息客户端每隔30s向NameServer更新对应topic的路由信息。
3)NameServer收到Broker发送的心跳包时会记录时间戳。
4)NameServer每隔10s会扫描一次brokerLiveTable(存放心跳包的时间戳信息),如果在120s内没有收到心跳包,则认为Broker失效,更新topic的路由信息,将失效的Broker信息移除。
1.2 路由核心元数据
保存在RouteInfoManager中
1)topicQueueTable:topic消息队列的路由信息,消息发送时根据路由表进行负载均衡。
2)brokerAddrTable:Broker基础信息,包含brokerName、所属集群名称、主备Broker地址。
3)clusterAddrTable:Broker集群信息,存储集群中所有Broker的名称。
4)brokerLiveTable:Broker状态信息,NameServer每次收到心跳包时会替换该信息。
5)filterServerTable:Broker上的FilterServer列表,用于类模式消息过滤。类模式过滤机制在4.4及以后版本被废弃。

Roc

文章详细介绍了RocketMQ的消息处理流程,包括NameServer的架构设计和路由元数据,消息的发送、存储机制(CommitLog、ConsumeQueue和Index文件),以及消息的并发消费流程。此外,还提到了消息拉取的核心步骤和RocketMQ的客户端线程池设计。
最低0.47元/天 解锁文章
4597

被折叠的 条评论
为什么被折叠?



