Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。
Netty的优点有:
a、功能丰富,内置了多种数据编解码功能、支持多种网络协议。
b、高性能,通过与其它主流NIO网络框架对比,它的综合性能最佳。
c、可扩展性好,可通过它提供的ChannelHandler组件对网络通信方面进行灵活扩展。
d、易用性,API使用简单。
e、经过了许多商业应用的考验,在互联网、网络游戏、大数据、电信软件等众多行业得到成功商用。
Netty采用了典型的三层网络架构进行设计,逻辑架构图如下:
第一层:Reactor通信调度层。该层的主要职责就是监听网络的连接和读写操作,负责将网络层的数据读取到内存缓冲区中,然后触发各种网络事件,例如连接创建、连接激活、读事件、写事件等,将这些事件触发到Pipeline中,再由Pipeline充当的职责链来进行后续的处理。
第二层:职责链Pipeline层。负责事件在职责链中有序的向前(后)传播,同时负责动态的编排职责链。Pipeline可以选择监听和处理自己关心的事件。
第三层:业务逻辑处理层,一般可分为两类:a. 纯粹的业务逻辑处理,例如日志、订单处理。b. 应用层协议管理,例如HTTP(S)协议、FTP协议等。
我们都知道影响网络服务通信性能的主要因素有:网络I/O模型、线程(进程)调度模型和数据序列化方式。
在网络I/O模型方面,Netty采用基于非阻塞I/O的实现,底层依赖的是JDKNIO框架的Selector。
在线程调度模型方面,Netty采用Reactor线程模型。常用的Reactor线程模型有三种,分别是:
a、Reactor单线程模型:Reactor单线程模型,指的是所有的I/O操作都在同一个NIO线程上面完成。对于一些小容量应用场景,可以使用单线程模型。
b、Reactor多线程模型:Rector多线程模型与单线程模型最大的区别就是有一组NIO线程处理I/O操作。主要用于高并发、大业务量场景。
c、主从Reactor多线程模型:主从Reactor线程模型的特点是服务端用于接收客户端连接的不再是一个单独的NIO线程,而是一个独立的NIO线程池。利用主从NIO线程模型,可以解决一个服务端监听线程无法有效处理所有客户端连接的性能不足问题。Netty线程模型并非固定不变的,它可以支持三种Reactor线程模型。
在数据序列化方面,影响序列化性能的主要因素有:
a、序列化后的码流大小(网络带宽占用)。
b、序列化和反序列化操作的性能(CPU资源占用)。
c、并发调用时的性能表现:稳定性、线性增长等。
Netty默认提供了对GoogleProtobuf二进制序列化框架的支持,但通过扩展Netty的编解码接口,可以实现其它的高性能序列化框架,例如Avro、Thrift的压缩二进制编解码框架。
以上这篇基于NIO的Netty网络框架(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# NIO的Netty框架
# java基于netty NIO的简单聊天室的实现
# Java NIO框架Netty简单使用的示例
# Netty与NIO超详细讲解
# 序列化
# 单线程
# 是一个
# 高性能
# 多线程
# 给大家
# 编解码
# 服务端
# 主要因素
# 的是
# 客户端
# 都是
# 互联网
# 都在
# 希望能
# 采用了
# 三种
# 它可以
# 可以使用
# 可以实现
相关文章:
高端网站建设与定制开发一站式解决方案 中企动力
魔方云NAT建站如何实现端口转发?
建站为何优先选择香港服务器?
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
黑客如何通过漏洞一步步攻陷网站服务器?
,石家庄四十八中学官网?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
制作网页的网站有哪些,电脑上怎么做网页?
怀化网站制作公司,怀化新生儿上户网上办理流程?
高端云建站费用究竟需要多少预算?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
制作销售网站教学视频,销售网站有哪些?
网站按钮制作软件,如何实现网页中按钮的自动点击?
如何在万网ECS上快速搭建专属网站?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
如何快速使用云服务器搭建个人网站?
内部网站制作流程,如何建立公司内部网站?
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
建站主机默认首页配置指南:核心功能与访问路径优化
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
在线制作视频网站免费,都有哪些好的动漫网站?
Java解压缩zip - 解压缩多个文件或文件夹实例
怎么将XML数据可视化 D3.js加载XML
如何用y主机助手快速搭建网站?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
建站主机选哪家性价比最高?
智能起名网站制作软件有哪些,制作logo的软件?
网站代码制作软件有哪些,如何生成自己网站的代码?
网站制作说明怎么写,简述网页设计的流程并说明原因?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
Android自定义控件实现温度旋转按钮效果
海南网站制作公司有哪些,海口网是哪家的?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
网站制作需要会哪些技术,建立一个网站要花费多少?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
建站VPS选购需注意哪些关键参数?
金*站制作公司有哪些,金华教育集团官网?
,怎么在广州志愿者网站注册?
宁波自助建站系统如何快速打造专业企业网站?
css网站制作参考文献有哪些,易聊怎么注册?
网站专业制作公司有哪些,做一个公司网站要多少钱?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
如何在阿里云域名上完成建站全流程?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
如何在服务器上三步完成建站并提升流量?
如何通过主机屋免费建站教程十分钟搭建网站?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
*请认真填写需求信息,我们会在24小时内与您取得联系。