Netty的深入浅出--45.server客户端总结和我们应该如何进行源码分析

bossGroup只是负责连接,不在其他任何事情;

workGroup处理所有连接事件

serverBootstrap对于连接信息进行了大量的对象和参数,方便开发者调用快速的将服务启动起来

 

channel对象:创建方式是通过class对象反射的方式newInstance创建出来的。

 handler是对于bossGroup使用的(里面的LoggingHandler是对于处理日志的处理器);

childHandler是对于workerGroup使用的

对于自定义的处理器,管道我们可以使用netty提供的管道处理器。

LengthFieldFrameDecoder():用来处理tcp的连包和拆包的问题,也就是断包的问题。

 

 MyServerHandler()是自定义的处理器:当相关事件被触发的时候就会被执行

 最后通过一个端口号绑定来启动服务器。

如何分析源码总结 :我们到现在为止基本上将整个netty服务端的源码分析的差不多了。

分析源码三个注意事项:

1.一定要一步步跟进;

2.适当的使用debug的方式判断;

3.我们分析源码一定要是为了分析源码而分析源码,也就是你懂得了它创建对象,然后调用了什么对象,执行了什么操作,然后返回了什么类型。但是你这样做是没有任何价值的。那么怎么才能有价值呢?

其实我们主要要理解netty为什么要这么做,它的动机是什么。

提出几个问题:

1.我们可以想想为什么netty要用两个EventLoopGroup来完成服务端的启动,不是一个EventLoopGroup就可以完成了吗?

2.在channel方法中封装的这些nio的对象是怎么封装的?

3.整个服务端采用这种调用方式,理论基础是什么?

猜你喜欢

转载自blog.csdn.net/qq_37909508/article/details/91346606