Netty 是一个性能强健的 网络通信库。
很多开源项目都是使用其作为底层的通信框架,比如 Dubbo,Kafka等。之前用 Netty做过项目,写了一个基于命令模式的通信框架,后续有机会整理后,分享出来,哪个命令模式的框架其实很简单,我都不好写出来,不过它确实是支撑了有些利国利民的项目。后续有机会分享。
Netty概念很多,写 demo 很容易,但是要精通的或者说是入门的话,不下一番苦功夫是不行的。
今天翻看了之前的 Netty 记录的比较,将所有的概念整理后出了一副图,我们围绕图来说说 Netty的架构。
下面是我简单画的设计图,大概意思是这样,可能存在细节问题,还请指正!
Socket
进行数据交互的,NIO
中数据交互是通过Channel
进行传输的。ChannelPipeline
(pipeline 的中文意思是管道) 。ChannePipeline
中会有一连串的ChannelHandler
按照顺序组成死循环
用来处理 多个Channel
的是否可读,是否可写的状态。Group
其中每一个组件都可以独立成文,今天就写在这里,后面有机会再慢慢写!