MST

星途 面试题库

面试题:消息队列RocketMQ中Broker与NameServer如何进行通信

请阐述RocketMQ的Broker与NameServer之间通信的具体机制,包括建立连接的过程、信息交互的频率以及通信过程中传递的关键信息有哪些。
16.4万 热度难度
后端开发消息队列

知识考点

AI 面试

面试题答案

一键面试

建立连接过程

  1. Broker启动:Broker在启动时,会向所有配置的NameServer地址发起连接请求。这是基于TCP协议的长连接建立过程。
  2. NameServer响应:NameServer接收到Broker的连接请求后,会验证Broker的合法性(如是否配置允许连接等),若合法则接受连接,建立起两者之间的TCP长连接。

信息交互频率

  1. 心跳机制:Broker每隔30秒向NameServer发送心跳包。这个心跳包用于维持连接的有效性,同时告知NameServer自己仍然存活且处于正常运行状态。
  2. 定期更新:Broker会在每次心跳时,向NameServer同步或更新自身的Topic路由信息等关键数据,确保NameServer上的信息是最新的。

通信过程中传递的关键信息

  1. 基本信息:包括Broker的名称、所属集群名称、Broker角色(Master或Slave)等标识性信息。
  2. Topic路由信息:每个Broker负责的Topic列表,以及这些Topic对应的Queue分布情况等,用于客户端进行消息发送和消费时的路由指引。
  3. Broker自身状态信息:如Broker的负载情况(例如可用内存、CPU使用率等),以便NameServer在进行路由决策时能综合考虑各Broker的实际状态。