本资源由 伯乐在线 – John Smith 整理
Netty是一种异步事件驱动的网络应用框架,用以支持高性能协议服务器应用和客户端程序的快速开发。其健壮性、功能、性能、可定制和可扩展行在同类NIO框架中都是首屈一指,并得到大量商业项目的验证。
简介
Netty是一种基于Java NIO的网络应用框架,能够简单快速开发网络应用,如客户端和服务端协议。它极大的简化和流程化了网络编程的开发过程,如TCP和UDP的socket开发。
开发上的”简单快速”并不意味着开发出的应用程序会存在维护或性能上的问题。Netty是一个精心设计的框架,它从许多网络协议如FTP、SMTP、HTTP、二进制协议和传统文本协议的实现中吸收了宝贵经验,使得Netty易于简单快速开发的同时具有高性能、稳定性、灵活性等特点。
上图展示了Netty的构架,其中最下面是Netty的核心core:具有ZeroCopy特性的ByteBuffer,其实就是ChannelBuffer里面的操作,所有Netty的Server和Client端的传输,最终都是byte传输,也就是说必须得经过ChannelBuffer的操作,转化成二进制传输;niversal Communication API,这个是Netty的核心底层内容;还有Extensible Event Model。这些都是底层的东西,已经封装好,仅供拿来使用或者只需要修改自己感兴趣的内容即可。
右上角是跟跟传输相关的协议:最下面是Legacy-Text传统文本协议,也就是二进制协议,这个实际上是传输的协议;上面的各种协议都是基于文本协议的操作,如HTTP、WebSocket、zlib/gzip压缩、SSL(http)、Google-Protobuf、Large-File、RTSP(Real Time StreamingProtocol)传输多媒体数据。这些协议是内置的,如果自己有需要,也可以定制自己的传输方式。
左上角是传输层支持的内容:Pipeline、Tunnel、Datagram和Socket,这些都是传输层支持的内容。
特性
设计
简单易用
性能
安全
社区
开发资源
官方网站:http://netty.io/index.html
开源地址:http://github.com/netty/netty