驽马十驾 驽马十驾

驽马十驾,功在不舍

目录
Netty中各个组件的联系
/  

Netty中各个组件的联系

开篇

Netty 是一个性能强健的 网络通信库。

很多开源项目都是使用其作为底层的通信框架,比如 Dubbo,Kafka等。之前用 Netty做过项目,写了一个基于命令模式的通信框架,后续有机会整理后,分享出来,哪个命令模式的框架其实很简单,我都不好写出来,不过它确实是支撑了有些利国利民的项目。后续有机会分享。

Netty概念很多,写 demo 很容易,但是要精通的或者说是入门的话,不下一番苦功夫是不行的。

今天翻看了之前的 Netty 记录的比较,将所有的概念整理后出了一副图,我们围绕图来说说 Netty的架构。

架构图

下面是我简单画的设计图,大概意思是这样,可能存在细节问题,还请指正!

简单解读

  • Channel:客户端同服务端建立连接之后,传统变成模式是通过Socket进行数据交互的,NIO中数据交互是通过Channel进行传输的。
  • ChannelPipeline: 每一个 Channel在创建的时候,在其中就会创建一个ChannelPipeline(pipeline 的中文意思是管道) 。
  • ChanneHandler: 在这个ChannePipeline中会有一连串的ChannelHandler按照顺序组成
  • ByteBuf:在这些 ChannelHander 之间的数据承载体就是 ByteBuf。
  • Eventloop:中文意思是事件循环,很显然其中是一个死循环用来处理 多个Channel的是否可读,是否可写的状态。
  • EventLoopGroup:就是多个 EventLoop 的聚合Group

结语

其中每一个组件都可以独立成文,今天就写在这里,后面有机会再慢慢写!

骐骥一跃,不能十步。驽马十驾,功在不舍。