MST

星途 面试题库

面试题:消息队列RocketMQ集群搭建中的Namesrv有什么作用及搭建要点

在RocketMQ集群搭建过程中,NameServer扮演着怎样的角色?请简述其主要功能。另外,若要搭建一个高可用的NameServer集群,在配置方面有哪些关键要点需要注意?
24.4万 热度难度
后端开发消息队列

知识考点

AI 面试

面试题答案

一键面试

NameServer角色与功能

  1. 角色:NameServer 是 RocketMQ 中的路由中心,为整个集群提供元数据管理服务,类似服务发现组件。
  2. 主要功能
    • 服务注册:Broker 启动时向 NameServer 注册自己的信息,包括 IP、端口、topic 配置等。
    • 服务发现:Producer 和 Consumer 通过 NameServer 获取 Broker 的路由信息,从而知道如何与 Broker 进行通信。
    • 保持心跳:Broker 定期向 NameServer 发送心跳包,NameServer 根据心跳检测 Broker 的存活状态。

搭建高可用 NameServer 集群配置要点

  1. 多实例部署:在不同的服务器或容器上部署多个 NameServer 实例,形成集群。
  2. 相互独立:每个 NameServer 实例都是独立运行的,彼此之间不进行数据同步,依靠 Broker 向所有 NameServer 实例注册和发送心跳来保证数据一致性。
  3. 配置相同:各个 NameServer 实例的配置文件,如监听端口、存储路径等关键配置项需要保持一致。
  4. 客户端配置:Producer 和 Consumer 端需要配置多个 NameServer 地址,格式为 ip1:port1;ip2:port2,以便在某个 NameServer 不可用时,能自动切换到其他可用的 NameServer 获取路由信息。