Netty介绍:概念与作用
Netty介绍:概念与作用
小车车 发表于10个月前
Netty介绍:概念与作用
  • 发表于 10个月前
  • 阅读 29
  • 收藏 1
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: 网络,io,netty介绍

一、Netty是什么?

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

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

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

如果没有Netty?

jdk_1.4以前:io。

jdk_1.4以后:nio。

其他框架:Mina,Grizzly。

   1.1 与Mina相比有什么优势?

        1、都是Trustin Lee的作品,Netty更晚;

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

        3、Netty的文档更清晰,很多Mina的特性在Netty里都有;

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

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

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

       7、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。

二、Netty 在哪些行业得到了应用?

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

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



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

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

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

  • 2、游戏行业:无论是手游服务端、还是大型的网络游戏,Java 语言得到了越来越广泛的应用。Netty 作为高性能的基础通信组件,它本身提供了 TCP/UDP 和 HTTP 协议栈,非常方便定制和开发私有协议栈。账号登陆服务器、地图服务器之间可以方便的通过 Netty 进行高性能的通信,架构示意图如下:


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

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

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

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

  • 5、通信行业:Netty 的异步高性能、高可靠性和高成熟度的优点,使它在通信行业得到了大量的应用。

三、资料

        官网:http://netty.io/

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

共有 人打赏支持
粉丝 5
博文 69
码字总数 49076
×
小车车
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: