Rocket源码分析之NameServer

11 篇文章 0 订阅
4 篇文章 0 订阅

系列文章目录

Rocket源码分析之Broker
https://yuanzhicun.blog.csdn.net/article/details/115671517



前言

很多人都说源码难,下不去手,买了书看也不行,看视频别人讲解也是很迷茫,那么源码到底难不难呢?难。但是如果你掌握了一个好的方法,看下去还是很轻松的。那么如何看呢?这里简单的说下:其实你要带着问题去看源码?为什么这么说呢? 就拿我今天给大家分享的rocketmq的源码,了解rocket的大家都知道 它的启动需要 NameServer, broker 依次启动, 消费者,生产者都需要跟nameServer进行通信,broker需要注册信息等等 那么是如何完成的呢?这就是一个问题。但是研究这个问题前大家是不是会想NameServer是如何启动的呢?又是如何能监听到客户端的请求呢?来吧,由我带你去依次解决这个问题。


一、NameServer的启动?

大家先对下面这个图有个映像再往下看
在这里插入图片描述

大家有过使用经验的都知道 启动都会有脚本,根据你系统环境选择不同的脚本,如下
在这里插入图片描述
我这里不想拉的篇幅特别大,就直接告诉大家,他其实就是通过一个脚本找入口类的main()方法 NamesrvStartup.class
tip:runserver.sh 这个脚本其实就是设置这个rocketmq的jvm的一些参数,生产配置优化 需要调整
在这里插入图片描述

二、NamesrvStartup 入口类

其实看代码就看关键的,不懂的直接跳,千万别扣细节,千万别扣细节,千万别扣细节。
在这里插入图片描述

三、createNamesrvController

在看 createNamesrvController 方法前,带着大家整理下思路。看这名称就是知道这个方法是要创建一个controller方法,那么创建出是干什么用的呢?大胆的猜想:controller一般就是接收用户请求,那对mq中所谓的用户都有谁呢?不就是 broker像NameServer注册,其他生产者,消费者获取元数据请求,这样一想是不是清楚多了
在这里插入图片描述

上面的看懂了,就通过工具直接点进去看 createNamesrvController 这个方法呗
其实这个方法代码特别多,但是对于我们只是想研究其中的逻辑,其实不用全部看的,下面我只说明关键的一部分:
在这里插入图片描述

其实这里就可以给你一个结论:这个方法主要就是创建了 2个对象, NamesrvConfig 和 NettyServerConfig

NamesrvConfig

在这里插入图片描述

NettyServerConfig

rocketmq通信大量用了netty,这里不讲解netty相关的,大家不用理解,只需要知道干嘛即可。有机会我给大家讲解下netty的api大家就懂了,netty难的是底层网络io,而不是api的使用。
在这里插入图片描述

在这里插入图片描述

四、start方法

controller已经创建完成,那么就开始启动了。看代码
在这里插入图片描述

五、initialize()初始化

在这里插入图片描述
详细介绍initialize
在这里插入图片描述

NettyServer构造
在这里插入图片描述

六、然后start收尾

其实NameServer的启动没啥的,基本就是创建Netty服务器,都是对netty Api的封装。
在这里插入图片描述

总结

NameServer相信大家看完了,感觉so easy吧。 其实 rocketMQ源码没那么难,只要带着问题去看,不懂就跳,爱谁谁。后面等我研究研究broker的最近更新。主要是成迷于狼人杀无法自拔最近,更新的少了哈哈哈

写在最后,感谢点赞关注收藏转发

欢迎关注我的微信公众号 【猿之村】
在这里插入图片描述

来聊聊Java面试
加我的微信进一步交流和学习,微信手动搜索
【codeyuanzhicunup】添加即可
如有相关技术问题欢迎留言探讨,公众号主要用于技术分享,包括常见面试题剖析、以及源码解读、微服务框架、技术热点等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值