• Netty是什么?


    Netty是什么?

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

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

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

    通俗的说:一个好使的处理Socket的东东

    如果没有Netty?

    远古:java.net + java.io

    近代:java.nio

    其他:Mina,Grizzly

    Netty的特性

    1)设计

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

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

    高度可定制的线程模型

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

    2)性能

    更好的吞吐量,低延迟

    更省资源

    尽量减少不必要的内存拷贝


    3)安全

    完整的SSL/TLS和STARTTLS的支持

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


    4)健壮性

    不再因过快、过慢或超负载连接导致OutOfMemoryError

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


    5)易用

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

    简洁简单

    仅信赖于JDK1.5

    作者:郭无心
    链接:https://www.zhihu.com/question/24322387/answer/78947405
    来源:知乎
    著作权归作者所有,转载请联系作者获得授权。

    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 的异步高性能、高可靠性和高成熟度的优点,使它在通信行业得到了大量的应用。

    
    
  • 相关阅读:
    数据校验
    Struts2中OGNL
    Struts2 入门(新手必看)
    transactionManager 以及datasource type解析
    MyBatis
    rails 布署
    ubuntu ssh
    ubutun 下配置php和postgresql
    MS SQL 数据库所在C盘变得很大解决办法
    将表里的数据批量生成INSERT语句的存储过程 增强版
  • 原文地址:https://www.cnblogs.com/advise09/p/6339829.html
Copyright © 2020-2023  润新知