Netty框架

Netty是由JBOSS提供的一个java开源框架。
Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。
也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程,例如:基于TCP和UDP的socket服务开发。
“快速”和“简单”并不用产生维护性或性能上的问题。Netty 是一个吸收了多种协议(包括FTP、SMTP、HTTP等各种二进制文本协议)的实现经验,并经过相当精心设计的项目。最终,Netty 成功的找到了一种方式,在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性

为什么选择Netty,不使用原生NIO

1)跨平台与兼容性: NIO 算是底层的 API需依赖系统的 IO API。但 Java NIO 发现在不同系统平台会出现问题。大量测试也耗不少时间; NIO2 只支持 JDK1.7+,而且没提供 DatagramSocket,故 NIO2不支持 UDP协议。而 Netty 提供统一接口,同一语句无论在 JDK6.X还是 JDK7.X 都可运行,无需关心底层架构功能!  
 2) JAVA NIO的 ByteBuffer 构造函数私有,无法扩展。 Netty提供了自己的 ByteBuffer实现,通过简单 API 对其进行构造、使用和操作,一此解决 NIO的一些限制。  
 3) NIO对缓冲区的聚合与分散操作可能会导致内存泄漏。直到 JDK1.7 才解决此问题。  
 4) NIO 的类库和 API繁杂,使用麻烦,你需要熟练掌握 Selector、 ServerSocketChannel、 SocketChannel、 ByteBuffer等。
 5)使用 JAVA NIO 需要具备其他的额外技能做铺垫,例如熟悉 Java多线程编程。这是因为 NIO编程涉及到 Reactor模式,你必须对多线程和网路编程非常熟悉,才能编写出高质量的 NIO程序。  
 6)可靠性能力不齐,工作量和难度都非常大。例如客户端面临断连重连、网络闪断、半包读写、失败缓存、网络拥塞和异常码流的处理等

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值