面试题答案
一键面试NameServer角色与功能
- 角色:NameServer 是 RocketMQ 中的路由中心,为整个集群提供元数据管理服务,类似服务发现组件。
- 主要功能:
- 服务注册:Broker 启动时向 NameServer 注册自己的信息,包括 IP、端口、topic 配置等。
- 服务发现:Producer 和 Consumer 通过 NameServer 获取 Broker 的路由信息,从而知道如何与 Broker 进行通信。
- 保持心跳:Broker 定期向 NameServer 发送心跳包,NameServer 根据心跳检测 Broker 的存活状态。
搭建高可用 NameServer 集群配置要点
- 多实例部署:在不同的服务器或容器上部署多个 NameServer 实例,形成集群。
- 相互独立:每个 NameServer 实例都是独立运行的,彼此之间不进行数据同步,依靠 Broker 向所有 NameServer 实例注册和发送心跳来保证数据一致性。
- 配置相同:各个 NameServer 实例的配置文件,如监听端口、存储路径等关键配置项需要保持一致。
- 客户端配置:Producer 和 Consumer 端需要配置多个 NameServer 地址,格式为
ip1:port1;ip2:port2
,以便在某个 NameServer 不可用时,能自动切换到其他可用的 NameServer 获取路由信息。