文章目录
-
-
- org.apache.rocketmq.namesrv.NamesrvController
- org.apache.rocketmq.remoting.RemotingServer
- org.apache.rocketmq.remoting.netty.NettyRemotingServer
-
可以看到我们其实才读了一行代码,在这里KVConfigManager的头部,声明了log,LoggerName为“RocketmqNamesrv”,这也对应我们当前在读的总包,是在namesrv包下。
到了第二行:
这里声明了一个NamesrvController,然后接下来我们去看下这里面做了哪些事。
org.apache.rocketmq.namesrv.NamesrvController
进来之后首先是之前我们已经看过的InternalLogger,与KVConfigManager里声明的一模一样。接着下面是两个Config,内部就是一些常规的配置参数,不过并没有使用注解开发,全部是原生的get set方法。
还声明了一个单线程实例的ExecutorService
进入第一个比较重要的接口:
org.apache.rocketmq.remoting.RemotingServer
RemotingServer是一个接口,我们直接进入它的唯一实现类看看:
org.apache.rocketmq.remoting.netty.NettyRemotingServer
此处的日志工具的LoggerName是RocketmqRemoting了,因为此时其实已经调到了remoting包下,不在namesrv包了。
先不追究RemotingHelper,继续读NettyRemotingServer
接下来声明的,是RocketMq中为数不多依赖的东西,netty中的ServerBootstrap,EventLoopGroup,EventLoopGroup,ChannelEventListener,DefaultEventExecutorGroup,使用过netty的同学应该对这几个类并不陌生,我们先不去看netty的源码了,一会看他怎么用。
除这几个netty的类以外,还有一个声明为守护进程的Timer,一个来自JUC包下提交异步任务的ExecutorService
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93529 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!