Netty框架

简介: Netty框架 新版本:3.0.2.GA,于2008年11月19日发布。Netty项目致力于提供一个异步的、事件驱动的网络应用框架和工具,用于快速开发可维护的、高性能的、高扩展性的服务器和客户端之间的协议。

Netty框架



新版本 :3.0.2.GA,于2008年11月19日发布。

Netty项目 致力于提供一个异步的、事件驱动的网络应用框架和工具,用于快速开发可维护的、高性能的、高扩展性的服务器和客户端之间的协议。换句话说,Netty式一个NIO客户端服务器框架,能够快速、轻松地开发网络应用例如服务器和客户端间的协议。它简化了网络编程如TCP/IP socket服务器。

JBOSSes Netty 的设计吸取了大量的协议如FTP、SMTP、HTTP和各种二进制、基于文本的继承协议等协议的设计经验,成功地找到了一种方法实现易于开发、性能、稳定、灵活的协议开发。

特征
Netty为用户提供了很多创新和更好的网络开发体验。
1)设计Design
为各种传输类型(块和非块socket)提供了统一的API;
建立在灵活和可扩展的事件模型;
高度可定制的线程模式——单线程,一个或多个线程池(如SEDA);
可信的五连接数据报socket支持。
2)易于使用
良好文档化的Javadoc、用户向导和例子;
结构并不臃肿;
无其它的依赖,只需JDK1.5或以上。
3)性能
高吞吐量、低延迟时间;
很小的资源消耗;
最小化不必要的内存复制。
4)健壮性
不会因为快速连接、慢速连接或超载连接引起OutOfMemoryError错误;
高速网络下不会引起NIO程序的读写异常。
5)安全
完全支持SSL/TLS和StartTLS;
在Java Applet环境下运行正常。
6)社区
至少每两周一个版本发布。

项目主页 : http://www.jboss.org/netty/
文档地址 : http://www.jboss.org/netty/documentation.html
下载地址 : http://www.jboss.org/netty/downloads.html
目录
相关文章
|
编解码 前端开发 Java
Netty实战(三)Netty的组件和设计
对于 Channel、EventLoop 和 ChannelFuture 类进行的讨论
132 0
|
弹性计算 缓存 网络协议
netty学习(三)
Java NIO 编程
126 0
|
Java
netty学习(二)
Java BIO 编程
135 0
netty学习(二)
|
分布式计算 Dubbo 网络协议
netty学习(一)
netty的介绍和应用场景
175 0
netty学习(一)
|
前端开发 网络协议 Java
Netty(一)Netty核心功能与线程模型1
Netty(一)Netty核心功能与线程模型
181 0
|
消息中间件 Dubbo 前端开发
Netty学习二
前面我们已经了解了官方的Netty的example,知道要编写一个一个聊天demo或者一个简单的rpc,或者应答模式的demo,在Netty中通常需要写服务端和客户端的引导,而引导是启动服务用的,而服务端和客户端的Handler则是用于处理具体的业务逻辑。这个通常在RPC框架中比如Dubbo,通常会在服务进行暴露或者进行引用的时候,需要调用Netty服务进行启动,然后进行暴露或者调用的,此时采用协议适配的时候,采用适配器模式,而我们知道生产者端最重要的方法就是doBind方法,而在消费者端最重要的方法是doConnect方法。而在RocketMQ中,我们也可以看到服务端和消费端中produce
113 1
Netty学习二
|
消息中间件 Java
Netty学习三
前面我们已经知道Netty服务端启动的时候最重要的是进行bind操作,这个操作不仅进行了run()操作进行死循环,而且将线程任务添加到队列中,进行runAllTasks操作。 首先,我们可以看Netty的架构图,图片来自即时通讯网:
116 1
Netty学习三
|
网络协议 前端开发 API
Netty入门
Netty入门
120 0
|
编解码 弹性计算 网络协议
【Netty】Netty高性能原理剖析
我们在实际项目中必然会遇到网络间的通信,也就是RPC,大家肯定都用过Dubbo,那么你对Dubbo底层---Netty了解多少呢?对于它为什么性能如此之高又了解多少呢?这篇文章就简单的介绍下Netty高性能原理。
240 0
【Netty】Netty高性能原理剖析
|
Java 调度
Netty学习一
三大组件:ByteBuffer、Channel、Selector。知道ByteBufffer是数据,而Channel是数据的载体通道,selector为多路复用。如果说线程池为线程提供了重复利用的途径,而Selector则为起到了调度线程的目的,也即高效率的使用线程。下面我们开始Netty的学习。 首先,我们来了解一下mmap、sendFile、零拷贝。在java中,由于传统的IO读写需要进行四次拷贝、四次切换(如图),因此效率上,通常在传输大文件的时候比较低。因此引入了mmap和sendFile进行优化。同时这里,我们就需要了解DMA,在计算机原理中,我们可以看到它的身影,全称Direct
109 0
Netty学习一