基本信息

  • 出版社 : 人民邮电出版社; 第1版 (2017年7月28日)
  • 出版日期 : 2017年6月1日
  • 品牌 : 异步社区
  • 语言 : 简体中文
  • 文件大小 : 12091 KB
  • 纸书页数 : 250页
  • 诺曼·毛瑞尔(Norman Maurer) (作者), 马文·艾伦·沃尔夫泰尔(Marvin Allen Wolfthal) (作者), 何品 (译者)
  • 下载格式:azw3、epub、mobi 

编辑推荐

  - Netty之父”Trustin Lee作序推荐
  - 阿里巴巴中间件高级技术专家为本书中文版作序推荐
  - 系统而详细地介绍了Netty的各个方面并附带了即用型的优质示例
  - 附带行业一线公司的案例研究
  - 极实用的Netty技术书
  无论是构建高性能的Web、游戏服务器、推送系统、RPC框架、消息中间件还是分布式大数据处理引擎,都离不开Netty,在整个行业中,Netty广泛而成功的应用,使其成为了Java高性能网络编程的卓绝框架。
  Netty的现Tech Lead Norman在本书中循序渐进地讲解了Netty的各个关键部分,在看完本书后,你不但可以熟练地使用Netty来构建以上系统,并且还可以避免很多常见的陷阱。
  无论是想要学习Spring 5 、Spark、Cassandra等这样的系统,还是通过学习Netty来构建自己的基于Java的高性能网络框架,或者是更加具体的高性能Web或者游戏服务器等,本书都将是你的超强拍档。
  本书中文版基于Netty4.1.9做了修订,希望本书能够给你带来一个接近完美的阅读体验,并能帮到你。

内容简介

  本书是为想要或者正在使用Java 从事高性能网络编程的人而写的,循序渐进地介绍了Netty各个方面的内容。
  本书共分为4 个部分:第一部分详细地介绍Netty 的相关概念以及核心组件,第二部分介绍自定义协议经常用到的编解码器,第三部分介绍Netty 对于应用层高级协议的支持,会覆盖常见的协议及其在实践中的应用,第四部分是几个案例研究。此外,附录部分会还简单地介绍Maven,以及如何通过使用Maven 编译和运行本书中的示例。
  阅读本书不需要读者精通Java 网络和并发编程。如果想要更加深入地理解本书背后的理念以及Netty 源码本身,可以系统地学习一下Java 网络编程、NIO、并发和异步编程以及相关的设计模式。

作者简介

  Norman Maurer,是苹果公司的资深软件工程师,同时也是Netty的核心开发人员。
  Marvin Allen Wolfthal,是Dell Services的顾问,他使用Netty实现了多个任务关键型的企业系统。
  何品,目前是淘宝的一名资深软件工程师,热爱网络、并发、异步相关的主题以及函数式编程,同时也是Netty、Akka等项目的贡献者,活跃于Scala社区,目前也在从事GraphQL相关的开发工作。

前言

  前言
  回首过去,我仍然不敢相信我做到了。
  当我从2011年年末开始为Netty 做贡献时,我怎么也想不到我会写一本关于Netty 的书,并且成为该框架本身的核心开发者之一。
  这一切都始于我在2009 年参与的Apache James 项目,一个在Apache 软件基金会下开发的基于Java 的邮件服务器。
  像许多应用程序一样,Apache James 需要构建在一个坚实的网络抽象之上。在考察提供网络抽象的项目领域时,我偶然地发现了Netty,并且立即就爱上了它。在我从用户的角度更加地熟悉了Netty 之后,我便开始转向改进它和回馈社区。
  尽管我第一次贡献的范围有限,但是很快变得明显的是,进行贡献以及和社区进行相关问题的讨论,尤其是和项目的创始人Trustin Lee,对于我的个人成长非常有益。这样的经验牢牢地吸引了我,我喜欢将我的空闲时间更多地投入到社区中。我在邮件列表上提供帮助,并且加入了IRC频道的讨论。致力于Netty 开始是一种爱好,但很快就演变成了一种激情。
  我对Netty 的激情最终导致我在Red Hat 就业。这简直是美梦成真,因为Red Hat 雇佣我来致力于我所热爱的项目。我最终知道了Claus Ibsen 在那时正(现在仍然)致力于Apache Camel。Claus 和我认识到,虽然Netty 拥有坚实的用户基础以及良好的JavaDoc,但是它缺乏一个更加高级别的文档。Claus 是《Camel in Action》(Manning,2010)的作者,他给了我为Netty 写一本类似的书的想法。关于这个想法,我考虑了几个星期,最终接受了。这也就有了本书。
  在编写本书的过程中,我也越来越多地参与到了社区中。伴随着超过1000 次的提交①,我最终成为了仅次于Trustin Lee 的最活跃的贡献者。我经常在世界各地的各种会议以及技术聚会上演讲Netty。最终Netty 开启了另一个在苹果公司的就业机会,我目前在云基础设施工程团队(Cloud Infrastructure Engineering Team)担任资深软件工程师。我继续致力于Netty,并且经常贡献回馈社区,同时也帮助推动该项目。
  Norman Maurer
  苹果公司云基础设施工程
  我在马萨诸塞州韦斯顿的Harvard Pilgrim Health Care 担任Dell Services 的顾问时,就主要侧重于构建可复用的基础设施组件。我们的目标是找到这样一种扩展通用代码库的方式:它不仅对通常软件过程有利,而且还能将应用程序开发者从编写既麻烦又平凡的管道代码(plumbingcode)责任中解脱出来。
  我一度发现,有两个相关的项目都在使用一个第三方的理赔处理系统,该系统只支持直接的CP/IP 通信。其中一个项目需要使用Java 重新实现一个文档不太详细的构建在供应商的专有的基于分隔的格式上的遗留COBAL 模块。这个模块最终被另一个项目取代了,那个项目将使用较新的基于XML的接口来连接到该相同理赔系统上。(但是使用的仍然是裸套接字,而不是SOAP!)在我看来,这是一个理想的开发一个通用API 的机会,而且也充满了乐趣。我知道将会有严格的吞吐量和可靠性要求,并且设计也仍然在不断地演进。显然,为了支持快速的迭代周期,底层的网络代码必须完全和业务逻辑解耦。
  我对于Java 的高性能网络编程框架的调研把我直接带到了Netty 面前。(在第1 章开头读者会读到一个假设的项目,它其实基本上取材自现实生活。)我很快就确信了Netty 的方式,使用可动态配置的编码器和解码器,能够完美地满足我们的需求:两个项目将可以使用相同的API,并部署所使用的特定数据格式所需的处理器。在我发现该供应商的产品也是基于Netty 的之后,我变得更加坚信了!
  就在那时,我得知有一本我一直都在期待的叫《Netty 实战》的书正在编写中。我读了早期的草稿,并带着一些问题和建议很快和Norman 取得了联系。在我们多次的交流过程中,我们常常会谈到要记住最终用户的视角,而且因为我当时正在参与一个实实在在的Netty 项目,所以我很高兴地担当了这个(合著者/最终用户)角色。
  我希望,通过这种方式,我们能够成功地满足开发者们的需求。如果您有任何关于我们如何能够使得本书变得更加有用的建议,请在https://forums.manning.com/forums/netty-in-action 联系我们。
  Marvin Allen Wolfthal
  Dell Services

精彩书摘

  如果你和大多数人一样,通过这样的方式发现了Netty,那么你的下一步多半是:浏览该网站,下载源代码,仔细阅读Javadoc和一些相关的博客,然后写点儿代码试试。如果你已经有了扎实的网络编程经验,那么可能进展还不错,不然则可能是一头雾水。
  这是为什么呢?因为像我们例子中那样的高性能系统不仅要求超一流的编程技巧,还需要几个复杂领域(网络编程、多线程处理和并发)的专业知识。Netty优雅地处理了这些领域的知识,使得即使是网络编程新手也能使用。但到目前为止,由于还缺乏一本全面的指南,使得对它的学习过程比实际需要的艰涩得多——因此便有了这本书。
  我们编写这本书的主要目的是:使得Netty能够尽可能多地被更加广泛的开发者采用。这也包括那些拥有创新的内容或者服务,却没有时间或者兴趣成为网络编程专家的人。如果这适用于你,我们相信你将会非常惊讶自己这么快便可以开始创建你的第一款基于Netty的应用程序了。当然在另一个层面上讲,我们也需要支持那些正在寻找工具来创建他们自己的网络协议的高级从业人员。


资源下载付费资源价格2立即支付
支付后请复制提取码进入网盘下载,电子书格式请参考“基本信息”说明, 如未显示下载按钮,请刷新网页或扫码关注公众号联系客服处理。