rocketmq 发送json对象_RocketMQ的心脏:Broker

本文深入探讨RocketMQ的核心组件Broker,详细解析了SendMessageProcessor如何处理发送消息和Consumer重试消息,以及PullMessageProcessor的拉取消息机制。同时介绍了ClientManageProcessor在处理客户端心跳和管理方面的功能。
摘要由CSDN通过智能技术生成

RocketMQ的心脏:Broker

这节介绍下RocketMQ中最后的一个部分,也是内容较多的一部分:Broker。

Broker的启动同其他几个组件一样,从XXXStartup(BrokerStartup)类的main方法开始,首先加载对应的配置文件XXXConfig(BrokerConfig、NettyServerConfig、NettyClientConfig、MessageStoreConfig),然后实例化XXXController(BrokerController),接着调用Controller的initialize方法,最后注册ShutdownHook。

Broker在构造方法中,会进行如下的实例化动作:

0a2c5c36261af7a986cdada9d5c28c1f.png

包括:

  1. 配置类:BrokerConfig、NettyServerConfig、NettyClientConfig、MessageStoreConfig
  2. 管理类:ConsumerOffsetManager(偏移量管理)、TopicConfigManager(topic配置管理)、ConsumerManager(消费者管理)、ConsumerFilterManager(消费者过滤管理)、ProducerManager(生产者管理)、SubscriptionGroupManager(订阅组管理)、FilterServerManager(服务端过滤管理)、BrokerStatsManager(broker状态管理)
  3. 服务类:PullMessageProcessor(拉取消息处理器)、PullRequestHoldService(拉取请求缓存服务)、ClientHousekeepingService(客户端长连接服务)、SlaveSynchronize(slave同步)
  4. 监听类:NotifyMessageArrivingListener(通知消息到达监听器)、DefaultConsumerIdsChangeListener(客户端id改变监听器)
  5. 工具类:Broker2Client、BrokerOuterAPI
  6. 线程队列类:发送线程、拉取线程、查询线程、客户端管理线程、消费者管理线程、心跳线程、事务线程

Broker的初始化和启动过程如下:

1ac136288292d90868d3b3795e0dd8db.png

初始化的步骤为:

  1. 加载配置文件,由TopicConfigManager处理:存储每个topic的配置信息;ConsumerOffsetManager:缓存所有topic@group对应的queue的偏移量;SubscriptionGroupManager:存储每个group的配置信息;ConsumerFilterManager:Topic
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值