Netty异步和事件驱动

Netty简介

    Netty 是一款异步的事件驱动的网络应用程序框架,支持快速地开发可维护的高性能的面向协议的服务器和客户端。

    Netty 是javar 卓越框架,它驾驭了Java的高级API的能力。

 

Netty 的特性总结

  

分类 Netty 的特性
设计

统一的API,支持多种种传输类型, 阻塞的和非阻塞的

简单而强大的线程模型

真正的无连接数据报套接字支持

连接逻辑组件以支持复用

易于使用

详实的javadoc 和大量的示例

不需要超过JDK1.6

性能

拥用比Java的核心API更高的吞吐量以级更低的 延迟

得益于池

健壮性

不会因为慢速,快速或者超载的连接而导致 OutofMemoryError

消除在高速网络中NIO 应用程序常见的不公平读/写比率

安全性

完整的SSL、TLS以 及StartTLS 支持

可用于受限环境下,如Applet 和OSGI

社区驱动 发布快速而且频繁

相关资料

Netty源码在线阅读:

Netty-4.1.x地址是:http://docs.52im.net/extend/docs/src/netty4_1/

Netty-4.0.x地址是:http://docs.52im.net/extend/docs/src/netty4/

Netty在线API文档:

Netty-4.1.x API文档(在线版):http://docs.52im.net/extend/docs/api/netty4_1/

Netty-4.0.x API文档(在线版):http://docs.52im.net/extend/docs/api/netty4/

 

Netty 的特点

Netty 对 JDK 自带的 NIO 的 API 进行了封装,解决了上述问题。

Netty的主要特点有:

1)设计优雅

2)使用方便

3)高性能、吞吐量更高:延迟更低;减少资源消耗;最小化不必要的内存复制。

4)安全:完整的 SSL/TLS 和 StartTLS 支持。

5)社区活跃、不断更新:社区活跃,版本迭代周期短,发现的 Bug 可以被及时修复,同时,更多的新功能会被加入。

 

使用 Netty 能够做什么?

 

  • 开发异步、非阻塞的 TCP 网络应用程序;
  • 开发异步、非阻塞的 UDP 网络应用程序;
  • 开发异步文件传输应用程序;
  • 开发异步 HTTP 服务端和客户端应用程序;
  • 提供对多种编解码框架的集成,包括谷歌的 Protobuf、Jbossmarshalling、Java 序列化、压缩编解码、XML 解码、字符串编解码等,这些编解码框架可以被用户直接使用;
  • 提供形式多样的编解码基础类库,可以非常方便的实现私有协议栈编解码框架的二次定制和开发;
  • 基于职责链模式的 Pipeline-Handler 机制,用户可以非常方便的对网络事件进行拦截和定制;
  • 所有的 IO 操作都是异步的,用户可以通过 Future-Listener 机制主动 Get 结果或者由 IO 线程操作完成之后主动 Notify 结果,用户的业务线程不需要同步等待;
  • IP 黑白名单控制;
  • 打印消息码流;
  • 流量控制和整形;
  • 性能统计;
  • 基于链路空闲事件检测的心跳检测

Netty 常见使用场景

Netty 常见的使用场景如下:

1)互联网行业

2)游戏行业

3)大数据领域:经典的 Hadoop 的高性能通信和序列化组件 Avro 的 RPC 框架,默认采用 Netty 进行跨界点通信,它的 Netty Service 基于 Netty 框架二次封装实现。

 

Netty异步和事件驱动

上一篇:js知识的在理解。


下一篇:把Cloud for Customer的attachment视图直接放到工作中心视图去