Netty介绍:概念与做用

1、Netty是什么?spring

    1)本质:JBoss作的一个Jar包。apache

    2)目的:快速开发高性能、高可靠性的网络服务器和客户端程序。安全

    3)优势:提供异步的、事件驱动的网络应用程序框架和工具。服务器

若是没有Netty?网络

jdk_1.4之前:io。架构

jdk_1.4之后:nio。并发

其余框架:Mina,Grizzly。框架

   1.1 与Mina相比有什么优点?异步

        一、都是Trustin Lee的做品,Netty更晚;分布式

        二、Mina将内核和一些特性的联系过于紧密,使得用户在不须要这些特性的时候没法脱离,相比下性能会有所降低,Netty解决了这个设计问题;

        三、Netty的文档更清晰,不少Mina的特性在Netty里都有;

        四、Netty更新周期更短,新版本的发布比较快;

        五、它们的架构差异不大,Mina靠apache生存,而Netty靠jboss,和jboss的结合度很是高,Netty有对google protocal buf的支持,有更完整的ioc容器支持(spring,guice,jbossmc和osgi);

       六、Netty比Mina使用起来更简单,Netty里你能够自定义的处理upstream events 或/和 downstream events,可使用decoder和encoder来解码和编码发送内容;

       七、Netty和Mina在处理UDP时有一些不一样,Netty将UDP无链接的特性暴露出来;而Mina对UDP进行了高级层次的抽象,能够把UDP当成"面向链接"的协议,而要Netty作到这一点比较困难。

    1.2Netty的特性

    1)设计

    统一的API,适用于不一样的协议(阻塞和非阻塞)。

    基于灵活、可扩展的事件驱动模型。

    高度可定制的线程模型。

    可靠的无链接数据Socket支持(UDP)。

    2)性能

    更好的吞吐量,低延迟。

    更省资源。

    尽可能减小没必要要的内存拷贝。

    3)安全

    完整的SSL/TLS和STARTTLS的支持。

    能在Applet与Android的限制环境运行良好。

    4)健壮性

    再也不因过快、过慢或超负载链接致使OutOfMemoryError。

    再也不有在高速网络环境下NIO读写频率不一致的问题。

    5)易用

    完善的JavaDoc,用户指南和样例。

    简洁简单。

    仅信赖于JDK1.5。

2、Netty 在哪些行业获得了应用?

  • 一、互联网行业:随着网站规模的不断扩大,系统并发访问量也愈来愈高,传统基于 Tomcat 等 Web 容器的垂直架构已经没法知足需求,须要拆分应用进行服务化,以提升开发和维护效率。从组网状况看,垂直的架构拆分以后,系统采用分布式部署,各个节点之间须要远程服务调用,高性能的 RPC 框架必不可少,Netty 做为异步高性能的通讯框架,每每做为基础通讯组件被这些 RPC 框架使用。

  典型的应用有:阿里分布式服务框架 Dubbo 的 RPC 框架使用 Dubbo 协议进行节点间通讯,Dubbo 协议默认使用 Netty 做为基础通讯组件,用于实现各进程节点之间的内部通讯。它的架构图以下:



其中,服务提供者和服务消费者之间,服务提供者、服务消费者和性能统计节点之间使用 Netty 进行异步/同步通讯。

  除了 Dubbo 以外,淘宝的消息中间件 RocketMQ 的消息生产者和消息消费者之间,也采用 Netty 进行高性能、异步通讯。

  除了阿里系和淘宝系以外,不少其它的大型互联网公司或者电商内部也已经大量使用 Netty 构建高性能、分布式的网络服务器。

  • 二、游戏行业:不管是手游服务端、仍是大型的网络游戏,Java 语言获得了愈来愈普遍的应用。Netty 做为高性能的基础通讯组件,它自己提供了 TCP/UDP 和 HTTP 协议栈,很是方便定制和开发私有协议栈。帐号登录服务器、地图服务器之间能够方便的经过 Netty 进行高性能的通讯,架构示意图以下:


  图1-2 Netty 在游戏服务器架构中的应用

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

  大数据计算每每采用多个计算节点和一个/N个汇总节点进行分布式部署,各节点之间存在海量的数据交换。因为 Netty 的综合性能是目前各个成熟 NIO 框架中最高的,所以,每每会被选中用做大数据各节点间的通讯。

  • 四、企业软件:企业和 IT 集成须要 ESB,Netty 对多协议支持、私有协议定制的简洁性和高性能是 ESB RPC 框架的首选通讯组件。事实上,不少企业总线厂商会选择 Netty 做为基础通讯组件,用于企业的 IT 集成。

  • 五、通讯行业:Netty 的异步高性能、高可靠性和高成熟度的优势,使它在通讯行业获得了大量的应用。

3、资料

        官网:http://netty.io/

        博客(我的认为写的不错):http://blog.csdn.net/kobejayandy/article/details/11493717

相关文章
相关标签/搜索