Python 官方文档:入门教程 => 点击学习
Netty的介绍 netty是一个异步的基于事件的框架,主要针对在tcp协议下,开发面向clients端的高
netty是一个异步的基于事件的框架,主要针对在tcp协议下,开发面向clients端的高并发应用。
netty本质是一个NIO框架。
Java共支持3中io模型 : BIO,aiO,NIO
同步阻塞,一个连接一个线程,有连接请求时服务端就需要启动一个线程处理。如果这个线程不做任何事就会造成不必要的开销。当并发数较大时,需要创建大量线程来处理连接。
同步非阻塞,可以做到一个线程处理多个操作。
NIO 有三大核心部分,Channel,Buffer ,selector
一个可以读写数据的内存块,可以理解成一个容器对象。它负责从channel中读取数据,封装成Buffer对象。Buffer为每一个基本数据类型都提供了实现类。它主要有三个属性:
内存块的固定大小值
下一个要进行读写位置的索引
在写模式下,limit = position ,在读模式下,它表示你最多读到之前写入的最大值
重要的方法
allocate(int count) 初始化buffer容量
get () 从 position 位置读
flip() 由写模式切换为读模式
作用类似于流,但是可以同时进行读写,可以异步读写。
Channel在NIo中是一个接口,它的实现类有:
主要方法:
能够监测多个注册的通道上是否有事件发生,如果有事件发生获取事件交给通道处理。
主要方法:
原生NIo存在的问题
类库与api复杂,开发难度大,有bug
netty中所有操作都是异步的,所以我们需要一个能够确定其结果的方法。通过addListener() 方法获取通知。
处理入站和出栈逻辑的容器。
生命周期方法
handlerAdded 当ChannelHandler 添加到ChanelPipeLine中调用
handlerRemoved 移除时调用
它主要有2个子接口, ChannelInboundHandler 和 ChannelOutBoundHandler
它是ChannelHandler 的容器,内部定义了一组ChannelHandler,是一组过滤器链
用于ChannelPipe 和 ChannelHandler的关联,同一个ChannelPipeline 里的ChannelHandler的交互。
netty的数据容器,是netty实现数据传输的数据结构。
内部维护了两个不同的索引,readIndex ,writeIndex。通过这两个索引将数据划分为3个区域。已经读过的字节,可读字节,可写字节。相比于jdk原生的bytebuf ,它有两个指针,在读写转换时不需要进行flip()
到此这篇关于对Netty组件的基本介绍的文章就介绍到这了,更多相关Netty组件介绍内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: 对Netty组件的基本介绍
本文链接: https://www.lsjlt.com/news/129509.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0