netty简介-金沙1005

netty简介_netty客户端[通俗易懂]1.简述netty是一个高性能、异步事件驱动的nio框架,它提供了对tcp、udp和文件传输的支持,作为一个异步nio框架,netty的所有io操作都是异步非阻塞的,通过future-listener机制,用户可以方便的主动获取或者通过通知机制获得io操作结果。netty在互联网领域、大数据分布

1.简述

  netty是一个高性能、异步事件驱动的nio框架,它提供了对tcp、udp和文件传输的支持,作为一个异步nio框架,netty的所有io操作都是异步非阻塞的,通过future-listener机制,用户可以方便的主动获取或者通过通知机制获得io操作结果。

  netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也基于netty的nio框架构建。

2.netty的优缺点

  netty的优点

  1. api使用简单,开发门槛低。
  2. 功能强大,预置了多种编解码功能,支持多种主流协议。
  3. 定制能力强,可以通过channelhandler对通信框架进行灵活地扩展。
  4. 性能高,通过与其他业界主流的nio框架对比,netty的综合性能最优。
  5. 成熟、稳定,netty修复了已经发现的所有jdk nio bug,业务开发人员不需要再为nio的bug而烦恼。
  6. 社区活跃,版本迭代周期短,发现的bug可以被及时修复,同时,更多的新功能会加入。
  7. 经历了大规模的商业应用考验,质量得到验证。

  netty的缺点

  1. 大版本不兼容,3.x/4.x同时维护,5.x放弃维护,主要原因是netty抛弃了jboss单独发展了。

3.为什么选择netty

  netty的特点

  1. 高性能、异步事件驱动的nio框架,提供了对tcp、udp和文件传输的支持。
  2. 使用更高效的socket底层,对epoll空轮询引起的cpu占用飙升在内部进行了处理,避免了直接使用nio的陷阱,简化了nio的处理方式。
  3. 采用多种decoder/encoder 支持,对tcp粘包/分包进行自动化处理。
  4. 可使用接受/处理线程池,提高连接效率,对重连、心跳检测的简单支持。
  5. 可配置io线程数、tcp参数, tcp接收和发送缓冲区使用直接内存代替堆内存,通过内存池的方式循环利用bytebuf。
  6. 通过引用计数器及时申请释放不再引用的对象,降低了gc频率。
  7. 使用单线程串行化的方式,高效的reactor线程模型。
  8. 大量使用了volitale、使用了cas和原子类、线程安全类的使用、读写锁的使用。

  netty的设计

  1. 适用于各种传输类型的统一api – 阻塞和非阻塞套接字。
  2. 基于灵活且可扩展的事件模型,可以清晰地分离关注点。
  3. 高度可定制的线程模型 – 单线程,一个或多个线程池,如seda。
  4. 真正的无连接数据报套接字支持(自3.1起)。

  netty的性能

  1. 更高的吞吐量,更低的延迟。
  2. 减少资源消耗。
  3. 最小化不必要的内存复制。

  netty的安全

  1. 完整的ssl / tls和starttls支持。

4.netty的应用场景

  netty的应用场景

  1. 作为rpc框架的网络通讯工具,如dubbo。
  2. 实现即时通讯系统。
  3. 实现消息推送系统。
js555888金沙老品牌的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/370092.html

(0)


相关推荐

  • 怎样查看ip跳转_php页面跳转方法php判断ip跳转的方法:首先把“ip.zip”里的全部文件放在lib目录下;然后通过“if($iplimit->setup($userip)){…}”方式实现判断ip跳转即可。

  • strstr函数的使用[通俗易懂]例://找出字符串中所有的is//找出字符串中所有的is#include#includeintmain(intargc,charconst*argv[]){chars[200]="workis

  • linux切换到root用户失败原因linux(fedora\centos\ubuntu等)终端窗口运行su输入密码,提示鉴定失败。原因:1.安装linux时,未输入root密码;或新建用户,勾选“设为管理员”,仅为新用户设置密码。未设置root密码,系统检测失败解决办法:运行 sudopasswdroot(重新设置root密码)退

  • (转)一些经典的计算机书籍[亲测有效]以下列表中的计算机书籍(中文版)来自微博:@程序员的那些事粉丝的推荐。按推荐次数,从高到低往下排。如果大家还有其他计算机相关的经典书籍推荐,请在评论中留言,或者在这条微博的评论中留言,我们将继续扩充这个列表。1. 算法导论(第2版)2. 代码大全(第2版)3. c primer中文版(第4版)

  • pki与证书加密pki与证书加密1、pki(公钥基础设施)a.功能(数据加密、信息完整性)b.pki根据公开密钥密码学来提供上述信息加密与身份验证功能2、公开密钥密码学(用户需要有一组密钥来支持这些功能)a.公开密钥(publickey)//用户可以将他的公钥发送给其他用户b.私有密钥(privatekey)//用户私有的,且存储在此用户的计算机中…

    2022年11月21日
  • 各种电子元件名称及作用_电子元件名称大全图[通俗易懂]文章浏览阅读1.1w次,点赞15次,收藏67次。电工知识:一、电阻二、二极管三、电容器四、继电器大家好我是小豆,最近有朋友留言说让小豆总结一下电子元件对照表,小豆今天给大家总结一些电子元件对照表。一、电阻电阻(resistance,通常用“

    2023年12月15日
  • coap协议_协议和合同在法律上的区别corba公用对象请求代理(调度)程序体系结构(commonobjectrequestbrokerarchitecture),缩写为corba,是对象管理组织(objectmanagementgroup)对应当今快速增长的软硬件的协同工作能力的要求而提出的方案。简而言之,corba允许应用程序和其他的应用程序通讯,而不论他们在什么地方或者由谁来设计。corba曾经是分布式计算的主流技术,在电信等领域使用广泛。开发和部署成本较高,目前属于已经基本被遗弃的技术,被轻量级的web服务、rest

  • vo(视图模型) 与 dto(数据传输对象)的区别[通俗易懂]vo(视图模型)与dto(数据传输对象)的区别[toc]1.vo与dto概念vo(viewobject):vo是显示视图模型,视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。举例:展示层将dto传送过来男性显示成帅哥(客户端1),或者显示成靓仔(客户端2);将

发表回复

您的电子邮箱地址不会被公开。

联系金沙1005

关注“java架构师必看”公众号

回复4,添加站长微信。

附言:ispacesoft.com网而来。

关注微信
网站地图