Netty入门-深入理解设计思想

在了解Netty之前,我们需要理解其实现思路,先介绍以下几个核心的组件概念:

1、Bootstrap

Netty中的引导类负责引导Netty。引导过程包括启动线程、打开套接字等。引导将在它自己的教程中进行更详细的解释.

2、EventLoopGroup

Netty EventLoopGroup是EventLoop的一组。可以将多个EventLoop组合在一起。这样,EventLoop就可以共享一些资源,比如线程等

3、EventLoop

Netty EventLoop是一个不断寻找新事件的循环,例如来自网络套接字(来自SocketChannel)实例的传入数据。当事件发生时,事件被传递给适当的事件处理程序,例如ChannelHandler。

4、SocketChannel

Netty SocketChannel表示通过网络连接到另一台计算机的TCP连接。无论您使用Netty作为客户机还是服务器,与网络上其他计算机交换的所有数据都通过一个SocketChannel实例传递,该实例表示计算机之间的TCP连接。

SocektChannel由一个EventLoop管理,并且始终只由同一个EventLoop管理。因为EventLoop总是由同一个线程执行,所以SocketChannel实例也只能由同一个线程访问。因此,在从套接字通道读取数据时,不必担心同步问题。

5、ChannelInitializer

Netty通道初始化器是一种特殊的通道处理程序,它在创建SocketChannel时附加到SocketChannel的ChannelPipeline上。然后调用ChannelInitializer,以便它可以初始化SocketChannel。

在初始化SocketChannel之后,ChannelInitializer将自己从ChannelPipeline中移除。

6、ChannelPipeLine

每个Netty套接字通道都有一个通道管道。ChannelPipeline包含ChannelHandler实例的列表。当EventLoop从SocketChannel读取数据时,数据被传递给ChannelPipeline中的第一个ChannelHandler。第一个ChannelHandler处理数据,可以选择将数据转发给ChannelPipeline中的下一个ChannelHandler,下一个ChannelHandler也处理数据,可以选择将数据转发给ChannelPipeline中的下一个ChannelHandler等。

当将数据写入SocketChannel时,写入的数据在最终写入SocketChannel之前也会通过ChannelPipeline传递。

7、ChannelHandler

Netty ChannelHandler处理从Netty SocketChannel接收的数据。ChannelHandler还可以处理被写入SocketChannel的数据。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值