RocketMQ NameServer 背后的设计理念

Nameserver 在 RocketMQ 整体架构中所处的位置就相当于 ZooKeeper、Dubbo 服务化架构体系中的位置,即充当“注册中心”,在 RocketMQ 中路由信息主要是指主题(Topic)的队列信息,即一个 Topic 的队列分布在哪些 Broker 中。

Nameserver 工作机制

1

Topic 的注册与发现主要的参与者:Nameserver、Producer、Consumer、Broker。其交互特性与联通性如下:

  • Nameserver:命名服务器,多台机器组成一个集群,每台机器之间互不联通。
  • Broker:Broker 消息服务器,会向 Nameserver 中的每一台 NamServer 每隔 30s 发送心跳包,即 Nameserver 中关于 Topic 路由信息来源于 Broker。正式由于这种注册机制,并且 Nameserver 互不联通,如果出现网络分区等因素,例如 broker-a 与集群中的一台 Nameserver 网络出现中断,这样会出现两台 Nameserver 中的数据出现不一致。具体会有什么影响下文会继续探讨。
  • Producer、Consumer:消息发送者、消息消费者,在同一时间只会连接 Nameserver 集群中的一台服务器,并且会每隔 30s 会

猜你喜欢

转载自blog.csdn.net/prestigeding/article/details/109335909