Netty框架基础-创新互联

Netty原理

在南宁等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、网站制作 网站设计制作专业公司,公司网站建设,企业网站建设,品牌网站设计,营销型网站,外贸网站制作,南宁网站建设费用合理。

Netty是一个高性能、异步事件驱动的NIO框架,基于Java NIO提供的API实现。Netty提供了对TCP、UDP和文件传输的支持,作为NIO的异步框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便地主动获取或者通过通知机制获得IO操作结果。

Netty高性能

Netty的IO线程NioEventLoop由于聚合了多路复用器Selector,可以同时并发处理成百上千个客户端Channel,由于读写操作都是非阻塞的,这就可以充分提升IO线程的运行效率,避免由于频繁IO阻塞导致的线程挂起。由于Netty采用了异步通信模式,一个IO线程可以并发处理N个客户端连接和读写操作,这从根本上解决了“同步阻塞IO—连接—线程”模型,架构的性能、弹性伸缩能力和可靠性都得以极大提升。

Netty架构按照Reactor模式设计和实现,其通信序列图如下:

Netty Server端:

Netty Client端:

Netty的“零拷贝”机制

Netty的接收和发送ByteBuffer采用Direct Buffers,使用对外直接内存进行Socket读写,不需要进行字节缓冲区的二次拷贝。如果使用传统的堆内存进行Socket读写,JVM会将堆内存Buffer拷贝一份到直接内存中,然后才写入Socket中,这样比堆外内存的方式就会多一次缓冲区的内存拷贝。

Netty同时提供组合Buffer对象,可以根据需要对多个ByteBuffer对象进行聚合,然后可以像操作一个Buffer一样,直接操作这个组合Buffer,避免了传统通过内存拷贝的方式将几个小Buffer合并成一个大的Buffer。

Netty的文件传输采用transferTo方法,它可以直接将文件缓冲区的数据发送到目标Channel,避免了传统通过循环write方式导致的内存拷贝问题。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享题目:Netty框架基础-创新互联
文章转载:http://ybzwz.com/article/jcgdg.html