rocketmq3.26研究之三NameServer
来源:互联网 发布:java工程师刚入职 编辑:程序博客网 时间:2024/06/01 08:55
- NamesrvStartup
该类主要用于读取配置文件,初始化并启动NamesrvController。
NamesrvController
该类两个重要功能:
1 接受broker的注册,并返回master地址和ha地址,这样slave注册时就能知道master以及数据同步地址。
broker注册详细过程如下:
BrokerController启动的时候会进行注册,之后每30秒注册一次。
broker注册时携带的信息如下:- cluster name
- broker 地址
- broker name
- broker id //0为master 1为slave
- HA地址,即slave可以通过该地址与master进行数据同步
- topic信息 包含topic name,read queue num, write queue num, permission等。
2 在接受broker注册的同时,它还维护了一个最后注册时间,并每隔10秒扫描一次,如果最后注册时间超过2分钟,则认为此broker已死,剔除broker。
解释一下NameServer与broker,NameServer,consumer,producer之间的关系
1 NameServer与NameServer之间没有关系
2 broker与NameServer
broker与每个NameServer进行定时注册,以便告知NameServer自己还活着
3 consumer与NameServer
consumer与一个NameServer长连,如果该NameServer断开,则从NameServer列表中查找下一个进行连接。
consumer主要从NameServer中根据topic查询broker的地址,查到就会缓存到客户端。如果broker宕机,则NameServer会将其剔除,而consumer端的定时任务MQClientInstance.this.updateTopicRouteInfoFromNameServer每30秒执行一次,会将topic对应的broker地址拉取下来,此地址已经为slave地址了,故此时consumer会从slave上消费。具体请参见rocketmq问题汇总-Failover下consumer的表现
4 producer与NameServer
具体请参见rocketmq问题汇总-Failover下producer的表现
- rocketmq3.26研究之三NameServer
- rocketmq3.26研究之四DefaultMQProducer
- rocketmq3.26研究之二broker
- rocketmq3.26研究之五DefaultMQPushConsumer
- rocketmq3.26研究之Failover下producer的表现
- rocketmq3.26研究之Failover下consumer的表现
- rocketmq3.26研究之六DefaultMQPushConsumer消费流程
- rocketmq3.26研究之一存储层
- 《RocketMq》三、NameServer
- RocketMQ源码分析之NameServer
- 研究心得之三
- HLSL研究学习之三
- HLSL研究学习之三
- function object研究之三
- OFBIZ研究心得之三
- 5.NameServer
- 第一章 NameServer
- 数据仓库研究之三--JPivot入门
- Php_Memcache_详解
- 2016_02_14_新的开始
- 概率统计基础:知识框架
- log4j.properties配置文件详解
- rocketmq问题汇总-一个consumerGroup只对应一个topic
- rocketmq3.26研究之三NameServer
- Protobuf Lesson 2: Data Model for Multiple Message Types
- c++基础——类的大小
- 设计模式-工厂
- 序列化和反序列化
- qemu cracks when shutdown vm
- Eclipse快捷键1
- 安装 XAMPP中FileZilla和Tomcat无法启动的解决办法
- iOS字符串处理详解