Netty2: 事件驱动的NIO框架(基础知识)
来源:互联网 发布:java 半角转全角处理 编辑:程序博客网 时间:2024/05/11 11:17
Netty2: 事件驱动的NIO框架
Netty 2 提供了一组很容易的基于事件的API(类似于Swing)来开发高性能, 可管理的TCP/IP服务端或客户端应用程序. 对于要求建立高性能的的网络应用来说,Netty提供许多基本特性,像readiness selection, 线程池, 写缓冲DoS的预防, 可重用的缓冲等.
特性:
* 基于事件的API: Netty处理所有低级I/O调用
* 信息格式与工作流程是相互独立的
* 以面向对象的方式实现通讯协议
* Java NIO
* 内建线程池
* 字节缓冲池
* 可自定的事件分发: 具有弹性的线程调度
* '写缓冲溢出'的预防:
??? * 侦测过慢的客记端
??? * 清除已发送信息,避免资源不足
* JMX兼容: 线程池和公共配置就是MBean.
架构:
* I/O Processor执行I/O操作, 将它们解释为session事件, 并传递到EventDispatcher.
* EventDispatcher分发事件到相关的SessionListeners.
* 读信息总是调用MessageRecognizer来从socket通道读取送来的数据, 从而识别出相关信息对象。
Message接口:
在Netty中,Message是通讯的基本单位。它提供了read和write方法来存取缓冲中的信息。
MessageRecognizer接口:
通过前面的架构图我们知道Netty的工作是基于Session的。当条件成立的,session会自动触发相应的I/O事件,在session内部,当数据收到时,I/O工作线程会调用MessageRecognizer的recognize(ByteBuffer buf)方法,从字节重组得到Message对象。然后再触发messageReceived事件。所以如果你定义了自己的消息格式,还要实现MessageRecognizer接口来将缓冲区中接收到的字节码重组为你的Message格式。
接收Message:
为了方便,这里没有画出MessageRecognizer。
发送Message:
?
Netty的首页,请访问http://gleamynode.net/dev/projects/netty2/index.html
我的Blog是http://blog.csdn.net/turbochen
- Netty2: 事件驱动的NIO框架(基础知识)
- Netty2: 事件驱动的NIO框架(实践)
- Netty2: 事件驱动的NIO框架(实践)
- 基于事件驱动、使用NIO的Netty2库
- 介绍一个很好用的NIO Socket开发框架--Netty2
- netty2
- 事件驱动模型的角度来看看 JAVA NIO
- Linux基于事件驱动的程序框架
- 基于C++11的事件驱动框架
- javascript事件驱动框架
- 事件驱动框架(五)——框架的实现
- java的nio框架
- javascript事件驱动框架 收藏
- 事件驱动框架(一)
- JavaWorld:基于Mule框架构建事件驱动服务的SOA
- Echo2一个基于事件驱动的web框架(开源)
- Linux基于事件驱动的程序框架(转载)
- ruby 异步事件驱动的Ruby Web应用框架 Cramp
- 天津的高人,谁有笔记本呀
- 最常用的网络命令精萃 wjrong [原作]
- 泛型:实施(Enforcements)
- cookies
- 学用Eclipse
- Netty2: 事件驱动的NIO框架(基础知识)
- 真TMD不平衡
- EJB核心技术及其应用
- DOS下常用的相关网络命令 ixue [原作]
- 从商业角度分析J2EE与WINDOWS DNA体系结构
- 我的Thinking in Java学习笔记(四)
- XQuery数据查询语言[1-1] (转载)
- Visual Web Developer 2005 Express Edition Beta 1 Manual Setup Instructions
- 组建J2EE开发团队