消息中间件RocketMQ原理解析 - 斩秋一: Broker 接收 client 心跳 ClientManageProcessor 处理 client 的心跳请求 1. 构建 ClientChannelInfo 对象 1) 持有 channel 对象,表示与客户端的连接通道 2) ClientID 表示客户端 ….. 2. 每次心跳会更新 ClientChannelInfo 的时间戳,来表示 client 还活着 3. 注册或者更新 broker 按照集群分组 MapBrokerLiveInfo 代表一个活的 broker 链接由最后更新时间,一个链接 channel,数据版本和 Ha 地址组成 Broker 定时向 namesrv 注册并更新 BrokerLiveInfo 的时间戳 方法来定时清理 不活动的 broker (默认两分钟没有 向 namesrv 发送心跳更 新 BrokerLiveInfo 时间戳的),比较 BrokerLiveInfo 的时间戳,如果过期关闭 channel 连接 第五章 Remoting 通信层: Rocketmq 的通信层是基于通信框架 netty 4.0.21.Final 0 码力 | 57 页 | 2.39 MB | 1 年前3
王强-Apache RocketMQ事务消息executeLocalTransaction() checkLocalTransaction() TransactionalMessageCheckService Half Msgs channel PID: Available Netty Channels 1 2 3 客户端代码示例例 基于Spring-Boot的客户端示例例 https://github.com/ap0 码力 | 34 页 | 6.17 MB | 1 年前3
Apache RocketMQ 从入门到实战brokerController.getConsumerOffsetManager().commitOffset(Remoting Helper.parseChannelRemoteAddr(channel), requestHeader.getConsumerGroup(), requestHeader.getTopic(), reque stHeader.getQueueId(), requestHeader 14:53 才切换呢? 接下来我们将目光投向 NameServer 的切换代码,其代码片段如下图所示: 上图中的几个关键分析如下: 客户端能通过缓存中的连接发送 RPC 请求的前提条件是 channel 的 isActive 方法返 回 true,即底层 TCP 连接处于激活状态。 本文来自『中间件兴趣圈』公众号,仅作技术交流,未授权任何商业行为。 113 > 1.11 从年末生产故障解锁0 码力 | 165 页 | 12.53 MB | 1 年前3
共 3 条
- 1













