RocketMQ探索-namesrv

  1. Namesrv:无状态,可集群部署,横向扩展
  • 每个broker(包括master和slave)在启动的时候向namesrv注册自己
  • Producer发送消息的时候根据topic从namesrv中获取路由到broker的信息(根据namesrv的注册信息)
  • Consumer根据topic到namesrv获取topic的路由到broker的信息

Namesrv流程图:

181849_jf6b_3134950.png

namesrv启动时做了哪些事情:

  • 加载Netty的server的配置项(NettyServerConfig),namesrv使用Netty与其他模块进行通信,比如和broker模块进行通信。
  • 设置监听端口:9876
  • 初始化服务控制对象NamesrvController。NamesrvController实例中包含:namesrvConfig(namesrv相关配置),nettyServerConfig(netty的相关配置),KVConfigManager(KV配置管理),RouteInfoManager(路由信息、topic信息管理),BrokerHousekeepingService(broker管理服务)
  • NamesrvController.initialize():加载KV配置;初始化通信层(Netty的初始化:remotingServer对象);初始化线程池(remotingExecutor);定义RequestCode用来作为netty的通信协议字段(registerProcessor():向remotingServer对象中注册DefaultRequestProcessor(namesrv中处理请求的类)对象);启动定时扫描notActive的broker任务;启动定时将configTable相关信息记录到日志文件中任务
  • 设置一个jvm退出勾子函数,即jvm退出时,此处线程调用controller.shutdown(),清理controller相关资源

转载于:https://my.oschina.net/u/3134950/blog/1142637

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值