试读《Netty 权威指南》
Java领域中比较有挑战性的技术应当是网络I/O和多线程并发编程,它们是构建高可用高性能分布式系统必备技术。Java在1.4版本中发布了NIO,提供了非常优秀的面向对象解决方案,方便编写高性能的网络应用程序。而Netty是一个异步NIO通信的框架,越来越广泛应用于互联网、大数据处理等领域。许多著名的开源框架如Hadoop、Storm以及著名IT公司Facebook、Twitter、阿里巴巴等都在使用Netty技术。
《Netty 权威指南》内容包括基础与高级功能介绍、系统架构与源码分析以及行业方面的应用等。书中提供的Netty NIO开发、Netty编解码开发、Netty多协议扩展开发等方面的详细实例能快速帮助读者快速上手,并应用Netty解决实际研发中的问题,同时书中对Netty源代码的深入研读和对Netty架构深入分析可以帮助读者更深入更好地理解Netty的实现原理。
书中试读章节给出了一个简单的订购系统,Server与Client采用HTTP+XML来实现通信。从这个实例中,我们可以学习到如何基于Netty通信框架、设计自己的协议栈来完成Server与Client之间的信息交换。本章节中可以不需要过多关注代码细节,掌握怎么利用Netty扩展协议和实现encoder与decoder,如何加入到Netty的pipeline中才是本部分的重点。
Netty技术使得处理大容量数据流更简单、处理协议编码和单元测试更简单、I/O超时和idle状态检测更方便、应用程序的关闭更简单安全可靠。Netty的IO线程模型、异步通信以及零拷贝机制等几个方面处理得很好。Netty IO线程NioEventLoop聚合了多路复用器Selector,可以同时并发处理成百上千个客户端Channel,并且读写操作都是非阻塞的,避免了由于IO频繁阻塞导致的线程挂起,可以充分提升IO线程的运行效率,避免由于频繁IO阻塞导致的线程挂起。Netty异步通信模式中一个IO线程可以并发处理多个客户端连接和读写操作,根本上解决了传统同步阻塞IO一连接一线程模型,使得架构的性能、弹性伸缩能力和可靠性都得到了极大的提升。另外还值得一提是Netty的零拷贝机制:接收和发送ByteBuffer采用Direct Buffers,使用堆外直接内存进行Socket读写,而不是进行字节缓冲区的二次拷贝;聚合多个ByteBuffer对象,可以像操作一个Buffer那样方便对组合Buffer进行操作,而不是像传统内存拷贝方式那样合并小Buffer;文件传输采用transferTo直接将文件缓冲区的数据发送到目标Channel中,而不是传统循环的write的内存拷贝方式。上面这些内容也可以从这本书得到。
《Netty 权威指南》这本书是作者多年实践Netty经验的总结,可以帮助你全面快速地掌握Netty这个Java 高并发异步通信框架,是一本不可多得的Netty技术进阶指南。