Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序,是一个java开源框架,是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了网络应用的编程开发过程,例如,TCP和UDP的socket服务开发。
“快速”和“简单”并不意味着会让你的最终应用产生维护性或性能上的问题。Netty 是一个吸收了多种协议的实现经验,这些协议包括FTP,SMTP,HTTP,各种二进制,文本协议,并经过相当精心设计的项目,最终,Netty 成功的找到了一种方式,在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。
体系结构图
在线Javadoc:http://tool.oschina.net/apidocs/apidoc?api=netty
Netty 4.1.50.Final,除了 Bugfix 外,还添加了一些新功能,例如首次为原生 epoll 传输支持 AARCH64。
主要变化
- 如果不使用 mTLS,OpenSslSession.getLocalCertificates() 和 getLocalPrincipal() 必须在客户端返回 null (#10275)
- 为 CNAME 选择合适的 nameServer (#10272)
- 根据 RFC 2616 的规定,修改 header 中的日期格式,改为使用两位数的月/日 (#10259)
- 将 GlobalEventExecutor#addTask 添加到 BlockHound 异常 (#10262)
- 增加选项来配置回收器延迟队列的丢包率 (#10255)
- 可直接使用
io.netty.recycler.ratio
(#10253) - 不在 WebSocketProtocolHandler 中重复使用 ChannelPromise (#10248)
- 在 addFlattenedComponents() 中合理处理 WrappedCompositeByteBufs (#10247)
- 修复 HttpPostMultipartRequestDecoder 中的内存泄漏问题 (#10227)
- 检测 CNAME 缓存中的 CNAME 循环,并尝试解析 (#10221)
- Dns resolver: honor resolv.conf timeout, rotate and attempts options (#10207)
- 在 AbstractTrafficShapingHandler 中增加对 DefaultFileRegion 的检查,以计算 msg 的大小 (#10215)
- HTTP2: 防范多个 ctx.close(…) 调用时,使用相同的 ChannelPromise (#10201)
- 添加 epoll aarch64 maven 配置和 Dockerfile (#9804)
详细更新内容查看发布公告 https://netty.io/news/2020/05/13/4-1-50-Final.html