`
snoopy7713
  • 浏览: 1131379 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

主要几种通信协议的性能比较

    博客分类:
  • java
阅读更多

总体性能比较:
Socket(BIO/NIO)>RMI>HTTPInvoker>=Hessian>REST>>Burlap>EJB>>Web Service

  1. 如果协议设计的比较好,Socket性能毫无疑问是最高,同时灵活性和复杂度也最高,如果采用高效的网络框架如:Mina、Netty等可以降低开发复杂度,一般在对性能有非常苛刻的条件下使用。
  2. RMI 的性能相对略低,但是与Socket还在同1个数量级,同时只能在Java系统间通信,如果是基于互联网使用,还存在穿越防火墙的问题。采用Spring 封装的方式使用比原始RMI方式性能略高,主要原因是:Spring采用了代理和缓存机制,节省了对象重新获取的时间。
  3. HTTPInvoker是Spring特有的,只能在客户端和服务器端都采用Spring框架下使用,与RMI本质相同,使用java的序列化技术传输对象,两者性能差别较小。
  4. Hessian 在数据量较小时性能表现出众,甚至比RMI还高,在数据结构复杂的对象或者大量数据对象时,较RMI要慢20%左右;Hessian的优点是精简高效,同 时可以跨语言使用,目前支持Java,C++, .net, python, ruby等语言。另外Hessian可以充分利用web容器的成熟功能,在处理大量用户访问时很有优势,在资源分配、线程排队、异常处理等方面都可以由 web容器保证,而RMI本身不提供多线程的服务器。
  5. REST架构也是一种比较简单、高效的Web服务架构,相对于Hessian性能略低,但还在同一个数量级,同时也是基于HTTP协议,目前也有比较多的成功案例。
  6. Burlap 在数据量非常小时性能尚可,同时性能随着数据量的增加急剧降低,通常性能耗时是RMI的3倍左右,主要原因是:Hessian采用二进制传输数据,而 Burlap采用XML格式,而XML描述内容太多,同样的结构,其传输量要大很多,同时,XML的解析是比较耗资源的,尤其大数据量情况下更是如此。
  7. EJB基于RMI协议,性能不高,同时只能在Java系统内使用,不能跨语言,目前使用越来越少,目前阿里巴巴内部已经完全放弃EJB。
  8. 在 这些远程调用协议中,Web Service的性能是最低的,一般情况下,Web Service的性能相对于Hessian性能要慢10~20倍左右,同时,对于同样的访问请求,Web Service的传输数据量约为Hessian的6倍左右,对网络带宽消耗非常大,同时XML的解码器普遍性能不高,XML<->Java Bean的编码、解码非常耗费资源,对于并发和负载比较高的网站不是一个好的选择。同时,Web Service的使用也不太方便。

总结:

         Hessian和REST架构个人认为是比较优秀的高性能通信协议,如果对性能要求特别苛刻可以直接采用Socket方式,目前,阿里巴巴内部的远程调用主要采用Hessian和Dubbo(基于Mina框架),经受了苛刻的高并发、高负载考验。

主要几种协议远程调用消耗大致时间(小数据量):
Socket/RMI/Hessian: 0.5ms
REST:0.7ms

Web Service(Axis): 约10ms,其中如果采用wsdl2java的方式,效率更低些。
Socket/RMI/Hessian/REST之间选择还需要在传输数据量,性能要求等各方面考量,合适的场景选择合适的协议。

分享到:
评论

相关推荐

    网络层匿名通信协议综述

    介绍了网络层匿名通信协议的分类标准,简述其创新点和具体加密思想,并对它们如何在安全性和性能二者之间的权衡进行分析,也指出了这几种网络匿名通信协议的优势和不足,最后提出在匿名通信系统发展的过程中所面临的...

    MELSEC通信协议参考手册-1801.pdf

    MELSEC通信协议是三菱电机开发的一种通信协议,广泛应用于工业自动化控制系统。为了确保安全和正确地使用MELSEC通信协议,用户必须了解相关的安全注意事项和设计注意事项,并在使用之前熟读本手册及关联手册。

    浅析计算机网络通信协议.docx

    TCP/IP 协议是目前最常用到的一种通信协议,它是计算机世界里的一个通用协议。在局域网中,TCP/IP 最早出现在 Unix系统中,现在几乎所有的厂商和操作系统都开始支持它。同时,TCP/IP 也是 Internet的基础协议。 在...

    通信协议软件开发工程师岗位职责范本.pdf

    * 熟悉 Onvif 或 GB28181 等安防标准,熟悉流媒体协议 RTP/RTSP/RTMP 其中一种或几种 因此,通信协议软件开发工程师需要具备丰富的技术知识和经验,良好的代码编写和调试技能,强的分析和解决问题的能力,良好的...

    几种通信总线详尽总结.doc

    "几种通信总线详尽总结" 本文将对嵌入式系统设计的串行总线、驱动器和物理接口进行详细介绍,并为总线最优选择提供指导和性能比对。 1. 串行总线的优点 串行总线相比于并行总线的主要优点是要求的线数较少。例如...

    基于Modbus通信协议数据采集系统的设计.docx

    本文主要讨论了基于Modbus通信协议的数据采集系统的设计,旨在解决能源供给系统的安全、经济和可持续发展问题。Modbus协议是一种常用的现场总线通信协议,广泛应用于过程自动化、能源管理、火灾报警和家庭网络自动化...

    nanomsg 0 4 高性能通信库

    nanomsg是一个实现了几种“可扩展协议”的高性能通信库;可扩展协议的任务是定义多个应用系统如何通信,从而组成一个大的分布式系统。当前版本nanomsg支持以下协议: 配对模式:简单的一对一的通信; 总线模式:...

    西门子ModbusRTU通信.doc

    ModbusRTU通信协议的主要特点是使用RS485总线进行通信,最高支持9600个节点的连接。ModbusRTU协议还支持多种数据类型,包括数字量、模拟量和保持存放器。 在西门子S7-200系列PLC设备中,ModbusRTU通信协议可以通过...

    PROFINET RT通信技术研究.pdf

    1. PROFINET RT通信协议的分析和实现:PROFINET RT通信协议是PROFINET RT通信技术的核心,研究该协议的分析和实现对于PROFINET RT通信技术的发展至关重要。 2. PROFINET RT通信技术的性能分析:PROFINET RT通信技术...

    PLC控制器上位机通信控制.doc

    目前PLC与上位机PC(计算机)通信方式主要有以下几种:1)通过PLC开发商提供的系统协议与网络适配器,构成特定公司产品的内部网络,其通信协议不公开;2)购买通用的上位组态软件,实现上位机与PLC的通信;3)利用PLC厂商...

    通讯板协议转换

    该解决方案基于STC12C5A60S2单片机,搭载MAX232、MAX485等通信芯片,以Modbus为通信协议,加以外围电路,构成了一个可以实现数据中转的转接板。 通讯板协议转换具有以下几个特点: 1. 可以实现RS232接口或RS485...

    CAN总线通信控制协议的仿真及性能分析

    由于其通信速率高、工作可靠、调试方便、使用灵活和性价比高等优点,己经在汽车业、航空业、工业控制、安全防护等领域中得到了广泛应用,被公认为几种有前途的总线之一,其协议也发展为重要的国际标准。  随着CAN...

    tr069-CPE WAN 管理协议

    该协议定义了CPE与自动配置服务器(ACS)之间的通信协议,实现了CPE的自动配置、状态监视和诊断等功能。 自动配置是TR-069协议的核心功能之一。该功能允许ACS远程配置CPE,包括IP地址、子网掩码、默认网关、DNS...

    大学毕业设计---协作通信系统中的选择df中继协议研究.doc

    DF中继协议是一种常用的协作通信协议,了解DF中继协议的优缺点是选择合适的中继协议的关键。 进度和要求 ------------ ### 第 1-2 周:查阅资料,整理读书笔记 查阅相关文献,了解协作通信系统中的选择DF中继协议...

    通信与网络中的CAN总线通信控制协议的仿真及性能分析

    由于其通信速率高、工作可靠、调试方便、使用灵活和性价比高等优点,己经在汽车业、航空业、工业控制、安全防护等领域中得到了广泛应用,被公认为几种最有前途的总线之一,其协议也发展为重要的国际标准。...

    第3章嵌入式总线网络通信.pptx

    CAN总线是一种串行通信协议,具有高性能和可靠性,已被广泛应用于工业自动化、船舶、医疗设备、工业设备等方面。 现场总线是自动化领域的热点之一,为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强...

    为什么说zigbee是最适合智能家居设备的通信协议

    Zigbee是一种无线通信协议,是基于IEEE820.15.4标准的低功耗局域网协议。是根据国际标准规定的,zigbee技术是一种短距离、低功耗的无线通信技术,该技术支持恒温器到冰箱灯泡等各种智能家居设备。Zigbee是由zigbee...

    WebSocket 协议实现.pdf

    WebSocket 协议是一种基于 TCP 协议的双向通信协议,旨在解决浏览器和服务器之间的全双工通信问题。它可以让浏览器和服务器之间建立一个持久的连接,实现实时的双向通信。 二、WebSocket 协议的握手过程 WebSocket...

    Linux环境下基于Socket的网络通信.pdf

    Socket 是一种编程接口,它提供了访问下层通信协议的系统调用和相应的数据结构功能。在 Linux 系统中,Socket 接口是应用程序访问下层网络协议的唯一方法。Socket 在用户级实现了两个应用程序之间的网络连接和数据...

    OTN 协议介绍(通信).ppt

    OTN 的体系架构主要包括 OTN 体系、接口结构、开销、路径层次和维护信号、告警和性能等几个方面。 OTN 体系是指 OTN 网络的总体架构,包括 OTN 的定义、特点、层次结构及接口等。 OTN 接口结构是指 OTN 网络中的接口...

Global site tag (gtag.js) - Google Analytics