跟着大神一起研究netty。
很久之前跟着公司前辈搞过一次netty写的支付系统,当时刚入门,代码写的是稀里糊涂的,后来用dubbo开发过一个简单的小项目,算是对rpc架构入门了,但是dubbo对代码的封装太强了,导致傻子都会用,对学习分布式架构真心一点帮助都没有,所以这次专门找了fengjiachun的netty项目来研究,争取尽量了解多一些的分布式架构的技术内幕吧,这里写下学习笔记,以便以后温习。
首先先去git上把项目搞下来
git地址: https://github.com/fengjiachun/Jupiter.git
下载下来的项目如下:
我们来仔细看看项目的结构,会发现项目看起来有好多模块,20个模块共10个类型,是不是太复杂了,别急,先看模块都有什么再把它简单化,模块类型有:
ok,再来看看项目的流程
看到没?其实关键的就4个
Registry
注册中心, 包括注册服务, 订阅服务, 服务变更自动通知等功能; 所有Client和Server需要与Registry维持长连接并保持心跳.
Provider
服务提供者, Server端会在启动时自动注册所有服务到Registry.
Consumer
服务消费者, Client端会在启动时向Registry发送要订阅的服务列表, 当所订阅服务发生变更时Registry会将信息推动到Client端.
Monitor
Server(Provider)与Registry(默认实现, 不包括ZK)内置Monitor监控模块, 通过telnet查看监控信息.
这4个对应项目里的模块其实就是
jupiter-registry,jupiter-rpc,jupiter-monitor,就这3个,因为jupiter-rpc对应了Provider和Consumer
那么我们只需要研究这3个模块吗?并不是,我们还要先研究一下另外2个,serialization(序列化)和transport(传输)
OK,最后我们看看,其实只需要研究5个模块就好,下面章节我们再来研究