全站最硬核 百万字强肝RocketMq源码 火热更新中~(五)

文章目录

      • 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进行处理,非常感谢!

上一篇 2022年1月15日
下一篇 2022年1月15日

相关推荐