Alibaba Spring Cloud 二十五 RocketMQ NameServer

在 RocketMQ 的整体架构中,NameServer 扮演着“服务发现”或“路由管理中心”的重要角色。Producer 和 Consumer 都需要从 NameServer 获取 Topic 的路由信息,然后才能与相应的 Broker 节点进行消息发送或消费。下面将详细介绍 RocketMQ NameServer 的定位、工作机制、部署方式以及常见问题。


一、NameServer 的主要功能

  1. 存储路由信息

    • NameServer 会维护当前可用的 Broker 信息(包括 Broker IP、端口、BrokerId、所属集群以及 Topic 和 Queue 的分布情况)。
    • 当新 Broker 启动时,会向所有 NameServer 注册;当 Broker 下线或发生故障时,也会通知 NameServer 进行更新。
  2. 提供路由查询

    • Producer 在发送消息前,会向 NameServer 请求某个 Topic 的路由信息,从而获得可用的 Broker 列表和 Queue 分布;
    • Consumer 同样需要从 NameServer 获取 Topic 对应的 Broker、Queue 信息,才能订阅并拉取消息。
  3. 轻量且无状态

    • NameServer 本身非常简单,默认没有依赖外部存储(如数据库),路由信息都在内存中;
    • 可以水平扩展多台 NameServer,每个都独立工作,不进行数据同步;Producer/Consumer 会按照配置的地址列表去顺序访问多个 NameServer,直到获取到路由信息。

二、工作原理

  1. 注册和心跳

    • Broker 启动后会定时(默认 30 秒)向 NameServer 发送心跳包,包括自身配置信息、Topic 配置等,以便 NameServer 保持最新的路由信息。
    • 如果超过一定时间(默认 120 秒)没有收到 Broker 的心跳,NameServer 会认为该 Broker 已不可用,自动将其路由信息移除。
  2. 查询路由

    • Producer 或 Consumer 在启动时,首先向 NameServer 发送 GET_ROUTE_INFO_BY_TOPIC 请求,NameServer 返
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十方来财

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值