Netty权威指南
  • 推荐0
  • 收藏7
  • 浏览1.7K

Netty权威指南

李林锋 (作者) 

  • 书  号:978-7-121-23343-2
  • 出版日期:2014-06-18
  • 页  数:524
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:孙学瑛
《Netty权威指南》是异步非阻塞通信领域的经典之作,基于最新版本 Netty 5.0编写,是国内首本深入介绍 Netty原理和架构的技术书籍,也是作者多年实战经验的总结和浓缩。内容包含基础功能、高级应用、系统架构、源码分析和行业应用,深入阐述了 Java I/O的 Netty NIO开发、Netty编解码开发、Netty多协议开发等各方面的技术要点,包含了对源码的深刻解读,并且对 Netty的应用现状和未来趋势进行分析,旨在帮助从业人员提升自我,更快更明确地发展职业道路。
本书适合架构师、设计师、软件开发工程师、测试人员和其他对 Java NIO框架、Java通信感兴趣的相关人士阅读,相信通过学习本书,能够熟悉和掌握 Netty这一优秀的异步通信框架,实现高可用分布式系统的构建。
1. Netty是最出色、应用最广泛的NIO框架,目前中国市场上并没有同类书籍,国外英文版的书籍售价50多$;
2. 从社区的活跃度看,想要深入了解Netty的架构师、设计师和软件工程师非常多,但是其源码没有注释、架构比较复杂、部分代码很晦涩,造成阅读源码难度比较大,很多人期待有本专门介绍Netty架构和源码的书籍。
大约在 2008年的时候,我参与设计和开发的一个电信系统在月初出帐期,总是发生大量的连接超时和读写超时异常,业务的失败率相比于平时高了很多,报表中的很多指标都差强人意。后来经过排查,发现问题的主要原因出现在下游网元的处理性能上,月初的时候 BSS出帐,在出帐期间 BSS系统运行缓慢,由于双方采用了同步阻塞式的 HTTP+XML进行通信,导致任何一方处理缓慢都会影响对方的处理性能。按照故障隔离的设计原则,对方处理速度慢或者不回应答,不应该影响系统的其他功能模块或者协议栈,但是在同步阻塞 I/O通信模型下,这种故障传播和相互影响是不可避免的,很难通过业务层面解决。
受限于当时 Tomcat和 Servlet的同步阻塞 I/O模型,以及在 Java领域异步 HTTP协议栈的技术积累不足,当时我们并没有办法完全解决这个问题,只能通过调整线程池策略和 HTTP超时时间来从业务层面做规避。
2009年,由于对技术的热爱,我作为业务骨干被领导派去参加一个重点业务平台的研发工作,与两位资深的架构师(其中一位工作 20年,做华为交换机出身)共同参与。这是我第一次全面接触异步 I/O编程和高性能电信级协议栈的开发,眼界大开 ——异步高性能内部协议栈、异步 HTTP、异步 SOAP、异步 SMPP……所有的协议栈都是异步非阻塞。后来的性能测试表明:基于 Reactor模型统一调度的长连接和短连接协议栈,无论是性能、可靠性还是可维护性,都可以“秒杀”传统基于 BIO开发的应用服务器和各种协议栈,这种差异本质上是一种代差。
在我从事异步 NIO编程的 2009年,业界还没有成熟的 NIO框架,那个时候 Mina刚刚开始起步,功能和性能都达不到商用标准。最困难的是,国内 Java领域的异步通信还没有流行,整个业界的积累都非常少。那个时候资料匮乏,能够交流和探讨的圈内人很少,一旦踩住“地雷”,就需要夜以继日地维护。在随后 2年多的时间里,经历了 10多次的在通宵、凌晨被一线的运维人员电话吵醒等种种磨难之后,我们自研的 NIO框架才逐渐稳定和成熟。期间,解决的 BUG总计 20~30个。
从 2004年 JDK1.4首次提供 NIO 1.0类库到现在,已经过去了整整 10年。JSR 51的设计初衷就是让 Java能够提供非阻塞、具有弹性伸缩能力的异步 I/O类库,从而结束 Java在高性能服务器领域的不利地位。然而,在相当长的一段时间里, Java的 NIO编程并没有流行起来,究其原因如下。
1.大多数高性能服务器,被 C和 C++语言盘踞,由于它们可以直接使用操作系统的异步 I/O能力,所以对 JDK的 NIO并不关心;
2.移动互联网尚未兴起,基于 Java的大规模分布式系统极少,很多中小型应用服务对于异步 I/O的诉求不是很强烈;
3.高性能、高可靠性领域,例如银行、证券、电信等依然以 C++为主导, Java充当打杂的角色, NIO暂时没有用武之地;
4.当时主流的 J2EE服务器,几乎全部基于同步阻塞 I/O构建,例如 Servlet、Tomcat等,由于它们应用广泛,如果这些容器不支持 NIO,用户很难具备独立构建异步协议栈的能力;
5.异步 NIO编程门槛比较高,开发和维护一款基于 NIO的协议栈对很多中小型公司来说像是一场噩梦;
一 NIO框架不成熟,很难商用;
一 NIO的陌生和认识不足,没有充分重视。

基于上述几种原因, NIO编程的推广和发展长期滞后。值得欣慰的是,随着大规模分布式系统、大数据和流式计算框架的兴起,基于 Java来构建这些系统已经成为主流, NIO编程和 NIO框架在此期间得到了大规模的商用。在互联网领域,阿里的分布式服务框架 Dubbo、RocketMQ,大数据的基础序列化和通信框架 Avro,以及很多开源的软件都已经开始使用 Netty来构建高性能、分布式通信能力, Netty社区的活跃度也名列前茅。根据目前的信息, Netty已经在如下几个领域得到了大规模的商业应用。
1 互联网领域;
2 电信领域;
3 大数据领域;
4 银行、证券等金融领域;
5 游戏行业;
6 电力等企业市场。
2014年春节前,我分享了一篇博文《 Netty5.0架构剖析和源码解读》,短短 1个月下载量达到了 4000多。很多网友向我咨询 NIO编程技术、 NIO框架如何选择等问题,也有一些圈内朋友和出版社邀请我写一本关于 Netty的技术书籍。作为最流行、表现最优异的 NIO框架, Netty深受大家喜爱,但是长期以来除了 UserGuide之外,国内鲜有 Netty相关的技术书籍供广大 NIO编程爱好者学习和参考。由于 Netty源码的复杂性和 NIO编程本身的技术门槛限制,对于大多数读者而言,通过自己阅读和分析源码来深入掌握 Netty的设计原理和实现细节是件困难的事情。从 2011年开始我系统性的分析和应用了 Netty和 Mina,转瞬间已经过去了 3年多。在这 3年的时间里,我们的系统经受了无数严苛的考验,在这个过程中,对 Netty和 Mina有了更深刻的体验,也积累了丰富的运维和实战经验。我们都是开源框架 Netty的受益者,为了让更多的朋友和同行能够了解 NIO编程,深入学习和掌握 Netty这个 NIO利器,我打算将我的经验和大家分享,同时也结束国内尚无 Netty学习教材的尴尬境地。
联系方式
尽管我也有技术洁癖,希望诸事完美,但是由于 Netty代码的庞杂和涉及到的知识点太多,一本书籍很难涵盖所有的功能点。如有遗漏或者错误,恳请大家能够及时批评和指正,如果你有好的建议或者想法,也可以联系我。我的联系方式如下。
邮箱:neu_lilinfeng@sina.com。
新浪微博: Nettying。
微信:Nettying。
致谢
如果说个人能够改变自己命运的话,对于程序员来说,唯有通过不断的学习和实践,努力提升自己的技能,才有可能找到更好的机会,充分发挥和体现自己的价值。我希望本
书能够为你的成功助一臂之力。
感谢博文视点的策划编辑丁一琼和幕后的美编,正是你们的辛苦工作才保证了本书能够顺利出版;感谢华为 Netty爱好者和关注本书的领导同事们的支持,你们的理解和鼓励为我提供了足够的勇气。感谢我的家人和老婆的支持,写书占用了我几乎所有的业余时间,没有你们的理解和支持,我很难安心写作。
最后感谢 Netty中国社区的朋友,我的微博粉丝和所有喜欢 Netty的朋友们,你们对技术的热情是鼓励我写书的最重要动力,没有你们,就没有本书。希望大家一如既往的喜欢 NIO编程,喜欢 Netty,以及相互交流和分享,共同推动整个国内异步高性能通信领域的技术发展。
李林锋
5月 11日于南京紫轩阁

目录

目录 阅读
第1章 Java的IO演进之路
第2章 NIO入门
第3章 Netty入门应用
第4章 TCP粘包、拆包问题的解决之道
第5章 分隔符和定长解码器的应用
第6章 编解码技术
第7章 Java序列化
第8章 Google Protobuf编解码
第9章 JBoss Marshalling编解码
第10章 HTTP协议开发应用
第11章 WebSocket协议开发
第12章 UDP协议开发
第13章 文件传输
第14章 私有协议栈开发
第15章 ByteBuf和相关辅助类
第16章 Channel和Unsafe
第17章 ChannelPipeline和ChannelHandler
第18章 EventLoop和EventLoopGroup
第19章 Future和Promise
第20章 Java多线程编程在Netty中的应用
第21章 Netty架构剖析
第22章 Netty行业应用
第23章 Netty未来展望

读者评论

电子书版本

  • PDF

图书类别

相关图书

深入集群:大型数据中心资源调度与管理

李雨前 (作者)

本书内容聚焦资源侧:集群调度和管理,非一般性的应用集群调度和管理。尽管按集群调度和集群管理两大部分来进行内容组织,实质上这两部分是一体的。集群管理是为了保障集群...

¥89.00

Netty源码剖析与应用

刘耀林 (作者)

Netty涉及多线程技术、复杂数据结构与内存管理模型,它运用了各种设计模式及一些TCP的底层技术。本书对这些难点一一进行攻破,让读者能快速掌握相关知识。 本书...

¥62.30

架构解密:从分布式到微服务(第2版)

吴治辉 (作者)

微服务、云原生、Kubernetes、Service Mesh是分布式领域的热点技术,它们并不是凭空出现的,一定继承了某些“前辈”的优点。我们不仅要了解这些技术...

 

趣谈网络协议

刘超 (作者)

网络协议是每个程序员入门的必修课,但是完全掌握网络协议知识并进行实际应用却并非易事。在本书中,作者将结合自己从业多年的“泣血”经验,以通俗易懂、更加贴近日常生活...

¥108.00

大型系统应用架构实战:部署、容灾、性能优化

李彦超 郭东白 陈禹 谢松林 周志伟 桑植 (作者)

本书理论与实战相结合,以AliExpress 网站为基础,全面介绍大型系统的总体技术方案、全球区域化部署技术、全球网络调度技术、性能优化,以及SRE 在AliE...

 

Java微服务测试:基于Arquillian、Hoverfly、AssertJ、JUnit、Selenium与Mockito

Alex Soto Bueno, Jason Porter, Andy Gumbrecht (作者) 刘梦馨 (译者)

本书从实战出发,介绍微服务架构所带来的测试方面的挑战,以及如何利用新的技术来应对这些挑战。通过本书,读者可以学会如何编写微服务架构下的单元测试、组件测试、集成测...

¥89.00