RocketMQ——Name Server篇

1 NameServer的功能

1、每个Broker启动的时候会向Namesrv发送注册请求,Namesrv接收Broker的请求注册路由信息,NameServer保存活跃的broker列表,包括Master和Slave;

2、用来保存所有topic和该topic所有队列的列表;

3、NameServer用来保存所有broker的Filter列表

4、接收client(Producer和Consumer)的请求根据某个topic获取所有到broker的路由信息;

2 NameServer的初始化及启动过程

1、KVConfigManager类加载NameServer的配置参数,配置参数的路径是 $HOME /namesrv/kvConfig.json;将配置参数加载保存到KVConfigManager.configTable:HashMap<String/*namespace*/,HashMap<String/*key*/,String/*value*/>>变量中。

2、以初始化BrokerHousekeepingService对象为参数初始化NettyRemotingServer对象,BrokerHousekeepingService对象作为该Netty连接中Socket链接的监听器(ChannelEventListener);监听与Broker建立的渠道的状态(空闲、关闭、异常三个状态),并调用BrokerHousekeepingService的相应onChannel****方法。其中渠道的空闲、关闭、异常状态均调用RouteInfoManager.onChannelDestory方法处理。清理RouteInfoManager类的几个成员变量数据:

变量名称 变量类型 含义
topicQueueTable HashMap<String/*topic*/, List<QueueData>> 主题与topic配置的对应关系,topics.json的topicConfigTable数据,在QueueData对象中记录了该topic的BrokerName
brokerAddrTable HashMap<String/*brokerName*/, BrokerData> Broker名称与broker属性的map
clusterAddrTable HashMap<String/* clusterName */, Set<String/* brokerName */>> 集群与broker集合的对应关系
brokerLiveTable HashMap<String/* brokerAddr */, BrokerLiveInfo> Broker的信息集合
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值