当前位置:天才代写 > tutorial > 其他教程 > Netty:异步事件驱动的网络应用框架

Netty:异步事件驱动的网络应用框架

2018-05-18 08:00 星期五 所属: 其他教程 浏览:1033

本资源由 伯乐在线 – John Smith 整理

Netty是一种异步事件驱动的网络应用框架,用以支持高性能协议服务器应用和客户端程序的快速开发。其健壮性、功能、性能、可定制和可扩展行在同类NIO框架中都是首屈一指,并得到大量商业项目的验证。

 netty

简介

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,这些都是传输层支持的内容。

特性

设计

  • 为不同类型的传输提供统一阻塞式和非阻塞式通信API
  • 基于可变的和可延伸的事件模型,能够清晰地对重点事件进行分离
  • 高度可定制化线程模型——单线程,一个或多个线程池,例如SEDA
  • 支持真实的无连接报文通信(从3.1版本开始)
  • 简单易用

  • 完善的文档Javadoc,用户指南和用例
  • 没有多余的依赖,只需要JDK5(Netty 3.x)或JDK6(Netty 4.x)
  • 性能

  • 高吞吐量、低延迟
  • 资源消耗更少
  • 简化不必要的内存拷贝
  • 安全

  • 完整的SSL/TLS和StartTLS支持
  • 社区

  • 社区非常活跃,版本迭代周期短,发现的BUG可以被及时修复
  • 开发资源

  • 下载
  • 用户手册
  • Javadoc
  • 相关文章
  • 官方网站:http://netty.io/index.html
    开源地址:http://github.com/netty/netty

     

      关键字:

    天才代写-代写联系方式