首页 > Web开发 > 详细

Netty异步和事件驱动

时间:2020-09-05 17:47:20      阅读:109      评论:0      收藏:0      [点我收藏+]

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异步和事件驱动

原文:https://www.cnblogs.com/shu-java-net/p/13618864.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!