Preface前言
The Problem 问题
现在,我们使用通用的应用或者类库来解决互相之间的通讯问题。举个例子,我们经常使用HTTP client类库去从一个web服务器上取回数据或者通过web service调用一个远程的生产者方法。然而,一个通用的协议或者他的实现有时候并不容易扩展。这就像我们不用通用的http服务器去交换大文件、邮件信息、实时的信息比如金融信息和网游数据。被要求的是一个高度优化的针对特定领域的协议实现。举个例子,你可能想要实现一个基于ajax的聊天应用、多媒体流、或者大文件传输的http服务器。你甚至可能想要设计和实现一整套的对你的需要量身定做的协议。另一个必然的情况是当你需要处理遗留的协议以维护旧系统的时候。这种情况的问题就是,你实现这个协议有多快,而不影响应用的稳定性和性能。
The Solution 解决方案
Netty项目是一个为了提供异步的事件驱动的网络应用框架,也是一个快读开发高性能高可扩展性易维护的协议服务器和客户端的工具集。
换句话说,Netty是一个可以让你简单快速开发一个网络应用(比如说协议客户端和服务器)的客户端服务器框架。它极大地简化了网络编程并且使它们流水化。
简单快速并不意味着导致应用难以维护或者性能低下。netty在被设计的时候已经很小心的考虑了例如FTP,SMTP,HTTP和一些二进制和基于文本的协议的实现。所以,netty就可以使应用的更高性能、更稳定、更灵活,而不需要损失什么。
一些用户可能已经发现了其他的网络应用框架要求相同的优势,所以你可能想问netty和他们有什么不同。答案就是netty的设计理念。netty被设计的目的就是为了让你在使用api和实现api层面上有最爽的用户体验。这并不是有形的,不过你会意识到这些理念会让你的开发变得非常容易。