带着问题 往下看 (namesrv)
- 我们在写组件的时候 怎么管理version
- 如果现在让你 维护一个 各个jar包公用的属性, 你怎么做?
- System.exit(-1); 0 -1 -2 各种数都是干什么的,什么时候 用哪个
- 环境变量如果不想使用 ROCKETMQ_HOME, 想变为 xxx 这怎么做,能做么?
- 我们启动broker 老是用 -n ip:9876 9876是什么,我们可以改变么?怎么改
- 大家如果想 把命令启动带着的 -c -p等参数放到 我们的属性中,怎么写代码?
- 如果我们想 自己设置使用的log 组件,怎么办
- 遍历 Field[] 的时候 想跳过 static的属性 怎么写代码?
- 多个对象的 属性需要进行聚合到一个对象中,要是你 怎么写
- KVConfigManager 有什么作用,怎么保证的 并发操作的数据正确性?你感觉有什么问题么?
- KVConfigManager 怎么保证的 持久化?
- 怎么在 并发操作的时候 保证数据的安全性?
- 方法的参数 使用final 有什么用?
- 怎么判断的broker 是不是master
- netty 怎么让nameserver 通知broker 信息的。
- nameserver 是否存活的判断标准是什么? 能修改么? 怎么修改
- Runtime.getRuntime().addShutdownHook 有什么用,没有不行么?
- @ImportantField 干什么的? 什么时候 使用
- 在同一台计算机上部署多个代理时 想区分日志路径 用哪个参数,调成什么?
- broker 为什么 -p 和 -m 同时有的时候 -m的总是不生效呢?
请思考下 写写你的答案 再往下看
nameserver 启动的逻辑
nameserver 功能
- 管理broker 集群
- 属于注册中心 业务端 和nameserver 进行连接,获取broker地址
- 负责维护broker 连接/心跳/监控
nameserver 问题解答
我们在写组件的时候 怎么管理version
一方面是 在父类的 pom.xml 通过 进行 控制版本,然后 业务端通过
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.xxx</groupId>
<artifactId>xxx</artifactId>
<version>4.0.0-SNAPSHOT</version>