RocketMQ NameSrv、Broker、Producer和Consumer之间的关系
2021-04-21 16:46:01 19 举报
RocketMQ NameSrv、Broker、Producer和Consumer之间的关系
作者其他创作
大纲/内容
向broker发送心跳
保持长连接发送消息
broker分组1
+
NameSrv 集群
发送commitLog 数据同步
broker 群
broker分组2
跟namesrv中其中一台保持长连接(若挂,则自动连接另一台)1、定时拉取最新的topic信息(30秒)2、获取发送的topic存在哪些broker上然后跟broker建立长连接,直接向broker发送消息
上报本地commitLog已经同步到的位置
和有关联的broker全部保持长连接。默认情况下,每隔30秒向所有broker发送心跳(DefaultMQProducer的heartbeatBrokerInterval参数决定)。broker每隔10秒扫描存活的链接,若2分钟内没有发送心跳,则断开
拉取消费进度,topic配置
Broker (S2)
每隔10秒扫描存活的broker若2分钟内没有接收到心跳则断开(10秒无法更改)
nameSrv本身无状态,不产生数据的存储,是通过broker心跳将topic信息同步到nameSrv中,多个nameSrv之间不会有数据的同步,是通过broker向多个nameSrv同步。性能开销小,稳定性高
broker每隔30秒向namesrv发送心跳包。保持长连接
Broker (M1)
Producer 集群
跟namesrv中其中一台保持长连接(若挂,则自动连接另一台)1、定时拉取最新的topic信息(30秒)2、获取当前订阅topic存在哪个broker上然后直接和broker建立长连接,开始消费3、DefaultMQPushConsumer的pollNameServerInteval参数调整时间
和有关联的broker全部保持长连接。默认情况下,每隔30秒向所有broker发送心跳(DefaultMQPushConsumer的heartbeatBrokerInterval参数决定)。broker每隔10秒扫描存活的链接,若2分钟内没有发送心跳,则断开。向消费者分组的所有消费者发出通知,重新分配队列继续消费
Broker (M2)
Consumer 集群
30秒时间无法更改心跳包内容:当前broker信息(IP+端口)以及存储的Topic信息。 发送后namesrv中就有topic和broker的映射关系
Broker (S1)
broker可以配置同步或异步刷盘根据消息的持久化可靠性配置
0 条评论
回复 删除
下一页