Netty 实战精髓篇
教程说明:
关于《Netty 实战精髓篇》
《Netty 实战精髓篇》原标题《Netty 实战(精髓)》,经作者waylau授权转载至W3Cschool.cn。
《Netty 实战精髓篇》是对 Norman Maurer 的 《Netty in Action》(基于 MEAP v10)的一个中文精简。《Netty 实战 精髓篇》取其精华,去其糟粕,带你快速掌握 Netty ,其中插入的配图,以图文并茂的方式减少用户在理解上的困难。本书是作者利用业余时间编写的,所以在时间的分配上较为紧凑,作者受限于精力和能力,因此书中未免有纰漏和错误,望读者能够热忱斧正。
对于初学者,也推荐参阅《Netty 4.x 用户指南》。与之类似的 NIO 框架还有 MINA, 可参阅《Apache MINA 2 用户指南》
Netty的介绍
Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户,服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了网络应用的编程开发过程,例如,TCP和UDP的socket服务开发。
Netty有哪些新增特性?
- 能够更简单地处理大容量数据流;
- 能够更简单地处理协议编码和单元测试;
- I/O超时和idle状态检测;
- 应用程序的关闭更简单,更安全;
- 更可靠的OutOfMemoryError预防。
Netty与Mina相比有什么优势?
- 都归于Trustin Lee名下,但是Netty更晚;
- Mina将内核和一些特性的联系过于紧密,使得用户在不需要这些特性的时候无法脱离,相比下性能会有所下降,Netty解决了这个设计问题;
- Netty中包含了许多Mina的特性,Netty的文档更清晰;
- Netty更新周期更短,新版本的发布比较快;
- 它们的架构差别不大,Mina靠apache生存,而Netty靠jboss,和jboss的结合度非常高,Netty有对google protocal buf的支持,有更完整的ioc容器支持(spring,guice,jbossmc和osgi);
- Netty比Mina使用起来更简单,Netty里你可以自定义的处理upstream events 或/和 downstream events,可以使用decoder和encoder来解码和编码发送内容;
- Netty和Mina在处理UDP时有一些不同,Netty将UDP无连接的特性暴露出来;而Mina对UDP进行了高级层次的抽象,可以把UDP当成"面向连接"的协议,而要Netty做到这一点比较困难。
在线阅读
W3Cschool https://www.w3cschool.cn/essential_netty_in_action