《 Netty权威指南(第2版)》 试读

Netty是什么?

       大概用Netty的,无论新手还是老手,都知道它是一个“网络通讯框架”。所谓框架,基本上都是一个作用:基于底层API,提供更便捷的编程模型。

 

       Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

 

       Netty 是一个基于NIO的客户,服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了网络应用的编程开发过程,例如,TCP和UDP的socket服务开发。

 

使用Netty能够做什么?

       现如今我们使用通用的应用程序或者类库来实现系统之间地互相访问,比如我们经常使用一个HTTP客户端来从web服务器上获取信息,或者通过web service来执行一个远程的调用。

 

       然而,有时候一个通用的协议和他的实现并没有覆盖一些场景。比如我们无法使用一个通用的HTTP服务器来处理大文件、电子邮件、近实时消息比如财务信息和多人游戏数据。我们需要一个合适的协议来处理一些特殊的场景。例如你可以实现一个优化的Ajax的聊天应用、媒体流传输或者是大文件传输的HTTP服务器,你甚至可以自己设计和实现一个新的协议来准确地实现你的需求。

 

        Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

 

       换句话说,Netty是一个NIO框架,使用它可以简单快速地开发网络应用程序,比如客户端和服务端的协议。Netty大大简化了网络程序的开发过程比如TCP和UDP的 Socket的开发。并结合线程组(group)的概念,可以很好的支持高并发,慢连接的场景。

 

       “快速和简单”并不意味着应用程序会有难维护和性能低的问题,Netty是一个精心设计的框架,它从许多协议的实现中吸收了很多的经验比如FTP、SMTP、HTTP、许多二进制和基于文本的传统协议,Netty在不降低开发效率、性能、稳定性、灵活性情况下,成功地找到了解决方案。

 

       有一些用户可能已经发现其他的一些网络框架也声称自己有同样的优势,所以你可能会问是Netty和它们的不同之处。答案就是Netty的哲学设计理念。Netty从第一天开始就为用户提供了用户体验最好的API以及实现设计,并且也较好的解决了TCP粘包/拆包的问题。

 

       相比于jdk的ByteBuffer和channel来说更简便灵活操作, 并提供了pipeline的概念,并针对每个contextHandler都可以由用户定义, 方便直接。

 

谈谈你对这本书试读章节的看法

       试读章节对原生NIO类库的使用复杂性进行讲解,然后对Netty服务端创建的时序图和步骤进行了详细地说明,随后结合Netty的源码对服务端创建进行波西,最后对新的客户端的接入进行源码层面的分析和讲解。

       相比通过传统方式进行处理,需要建立Socket连接,建立线程,处理内容:读取Socket内容,并对协议进行解析,进行逻辑处理,回写响应内容,如果是多次交互的应用(SMTP、FTP),则需要保持连接多进行几次交互,最后关闭连接。

在这整个过程中,任何一个环节都需要手动处理,而且在考虑并发、创建连接池的问题上需要有一定的处理经验。但是通过Netty框架,他帮我们简化了许多工作内容,引导我们将工作注意力集中到业务的处理上,提高了开发效率并减少了出错可能性(相对来说)。

       书中对Netty源码的分析,更进一步帮助我们理解此网络框架的工作处理过程,理解其领域概念及设计思想。

 

引用:

http://ifeve.com/netty5-user-guide/#more-13749

http://my.oschina.net/flashsword/blog/162936

猜你喜欢

转载自airball.iteye.com/blog/2221284