- 浏览: 1131379 次
- 性别:
- 来自: 火星郊区
-
博客专栏
-
-
OSGi
浏览量:0
文章分类
- 全部博客 (695)
- 项目管理 (48)
- OSGi (122)
- java (79)
- Vaadin (5)
- RAP (47)
- mysql (40)
- Maven (22)
- SVN (8)
- 孔雀鱼 (10)
- hibernate (9)
- spring (10)
- css (3)
- 年审 (6)
- ant (1)
- jdbc (3)
- FusionCharts (2)
- struts (4)
- 决策分析 (2)
- 生活 (10)
- 架构设计 (5)
- 破解 (2)
- 狼文化 (4)
- JVM (14)
- J2EE (1)
- 应用服务器 (1)
- 我的链接 (5)
- 数学 (2)
- 报表 (1)
- 百科 (6)
- Flex (7)
- log4j (2)
- PHP (1)
- 系统 (2)
- Web前端 (7)
- linux (6)
- Office (1)
- 安全管理 (5)
- python (2)
- dom4j (1)
- 工作流 (3)
- 养生保健 (4)
- Eclipse (8)
- 监控开发 (1)
- 设计 (3)
- CAS (1)
- ZK (41)
- BluePrint (3)
- 工具 (1)
- SWT (7)
- google (2)
- NIO (1)
- 企业文化 (2)
- Windoes (0)
- RCP (7)
- JavaScript (10)
- UML (1)
- 产品经理 (2)
- Velocity (10)
- C (1)
- 单元测试 (1)
- 设计模式 (2)
- 系统分析师 (2)
- 架构 (4)
- 面试 (2)
- 代码走查 (1)
- MongoDB (1)
- 企业流程优化 (1)
- 模式 (1)
- EJB (1)
- Jetty (1)
- Git (13)
- IPV6 (1)
- JQuery (8)
- SSH (1)
- mybatis (10)
- SiteMesh (2)
- JSTL (1)
- veloctiy (1)
- Spring MVC (1)
- struts2 (3)
- Servlet (1)
- 权限管理 (1)
- Java Mina (1)
- java 系统信息 (6)
- OSGi 基础 (3)
- html (1)
- spring--security (6)
- HTML5 (1)
- java爬虫搜索 (1)
- mvc (3)
最新评论
-
Tom.X:
http://osgia.com/
将web容器置于OSGi框架下进行web应用的开发 -
chenyuguxing:
你好, 为什么我的bundle export到felix工程中 ...
在Apache Felix中运行bundle -
string2020:
<niceManifest>true</ni ...
Bundle Plugin for Maven -
jsonmong:
OSGI,是未来的主流,目前已相当成熟。应用OSGI比较好的, ...
基于OSGi的声明式服务 -
zyhui98:
貌似是翻译过来的,有很少人在linux上做开发吧
如何成为“10倍效率”开发者
总体性能比较:
Socket(BIO/NIO)>RMI>HTTPInvoker>=Hessian>REST>>Burlap>EJB>>Web Service
- 如果协议设计的比较好,Socket性能毫无疑问是最高,同时灵活性和复杂度也最高,如果采用高效的网络框架如:Mina、Netty等可以降低开发复杂度,一般在对性能有非常苛刻的条件下使用。
- RMI 的性能相对略低,但是与Socket还在同1个数量级,同时只能在Java系统间通信,如果是基于互联网使用,还存在穿越防火墙的问题。采用Spring 封装的方式使用比原始RMI方式性能略高,主要原因是:Spring采用了代理和缓存机制,节省了对象重新获取的时间。
- HTTPInvoker是Spring特有的,只能在客户端和服务器端都采用Spring框架下使用,与RMI本质相同,使用java的序列化技术传输对象,两者性能差别较小。
- Hessian 在数据量较小时性能表现出众,甚至比RMI还高,在数据结构复杂的对象或者大量数据对象时,较RMI要慢20%左右;Hessian的优点是精简高效,同 时可以跨语言使用,目前支持Java,C++, .net, python, ruby等语言。另外Hessian可以充分利用web容器的成熟功能,在处理大量用户访问时很有优势,在资源分配、线程排队、异常处理等方面都可以由 web容器保证,而RMI本身不提供多线程的服务器。
- REST架构也是一种比较简单、高效的Web服务架构,相对于Hessian性能略低,但还在同一个数量级,同时也是基于HTTP协议,目前也有比较多的成功案例。
- Burlap 在数据量非常小时性能尚可,同时性能随着数据量的增加急剧降低,通常性能耗时是RMI的3倍左右,主要原因是:Hessian采用二进制传输数据,而 Burlap采用XML格式,而XML描述内容太多,同样的结构,其传输量要大很多,同时,XML的解析是比较耗资源的,尤其大数据量情况下更是如此。
- EJB基于RMI协议,性能不高,同时只能在Java系统内使用,不能跨语言,目前使用越来越少,目前阿里巴巴内部已经完全放弃EJB。
- 在 这些远程调用协议中,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之间选择还需要在传输数据量,性能要求等各方面考量,合适的场景选择合适的协议。
发表评论
-
一个例子全部说明java泛型中的K,V,T,E,?,object的意思及其用法
2013-03-07 11:09 70181.意思 jdk中的K,V,T,E等泛型名称很多人以为 ... -
Log4j 把不同包的日志打印到不同位置
2012-11-29 08:23 1132需要的包和测试的代码下载附件! 如果需要将不同的日 ... -
Java多线程发展简史
2012-09-16 14:25 1018转自:http://www.raychase.ne ... -
Java编码易疏忽的十个问题
2012-09-06 08:52 893在Java编码中,我们容易 ... -
网络编程
2012-09-04 13:30 948计算机网络基础 什么是计算机网络 把分布在 ... -
获取Java程序运行的路径 | 获取当前jar包的路径
2012-09-04 11:55 14045经过试验,不管是否是 Jar 包,不管是否是 Tom ... -
java的concurrent用法详解
2012-08-03 11:28 983我们都知道,在JDK1.5之前,Java中要进行业务并发时 ... -
Java程序员必知的8大排序
2012-07-05 09:56 10128 种排序之间的关系: ... -
Comparator与Comparable的区别
2012-07-05 08:38 1196当需要排序的集合或数组不是单纯的数字类型的时候,通常可以使用C ... -
RSA算法Java实现
2012-06-27 08:22 1389Java代码 package c ... -
队列阻塞浅析
2012-06-17 18:10 908这几天所做的项目中涉及到了队列阻塞机制,通过研究整理如下 ... -
Java面试过程中会遇到的问题
2012-06-13 13:04 11011、abstract的method是否可同时是static,是 ... -
【解惑】深入jar包:从jar包中读取资源文件
2012-06-13 13:02 1078我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等)。 ... -
java 处理文件路径中的空格
2012-06-13 12:57 1508问题背景: windows下有个目录名称Program ... -
java内存分配机制
2012-06-13 12:52 1140通过这几天对一个 ... -
byte[]转化成其他数据类型
2012-05-14 16:41 1620Java与其他语言数据类型之间的转换方法实例程序 /*** ... -
java中byte转换int时为何与0xff进行与运算
2012-05-14 16:39 1041java中byte转换int时为何 ... -
java整型数与网络字节序的 byte[] 数组转换关系
2012-05-14 16:31 6427工作项目需要在 java 和 c/c++ 之间进行 ... -
利用 Base64 缩短 UUID 至22位
2012-04-15 18:57 7133UUID还是比较常用的,尤其在web应用里。 有时在UR ... -
图解Java中的值传递与引用传递(更新版)
2012-04-09 12:49 1156编程的人,都会遇到值传递与引用传递的困惑,不过很快都会迎 ...
相关推荐
介绍了网络层匿名通信协议的分类标准,简述其创新点和具体加密思想,并对它们如何在安全性和性能二者之间的权衡进行分析,也指出了这几种网络匿名通信协议的优势和不足,最后提出在匿名通信系统发展的过程中所面临的...
MELSEC通信协议是三菱电机开发的一种通信协议,广泛应用于工业自动化控制系统。为了确保安全和正确地使用MELSEC通信协议,用户必须了解相关的安全注意事项和设计注意事项,并在使用之前熟读本手册及关联手册。
TCP/IP 协议是目前最常用到的一种通信协议,它是计算机世界里的一个通用协议。在局域网中,TCP/IP 最早出现在 Unix系统中,现在几乎所有的厂商和操作系统都开始支持它。同时,TCP/IP 也是 Internet的基础协议。 在...
* 熟悉 Onvif 或 GB28181 等安防标准,熟悉流媒体协议 RTP/RTSP/RTMP 其中一种或几种 因此,通信协议软件开发工程师需要具备丰富的技术知识和经验,良好的代码编写和调试技能,强的分析和解决问题的能力,良好的...
"几种通信总线详尽总结" 本文将对嵌入式系统设计的串行总线、驱动器和物理接口进行详细介绍,并为总线最优选择提供指导和性能比对。 1. 串行总线的优点 串行总线相比于并行总线的主要优点是要求的线数较少。例如...
本文主要讨论了基于Modbus通信协议的数据采集系统的设计,旨在解决能源供给系统的安全、经济和可持续发展问题。Modbus协议是一种常用的现场总线通信协议,广泛应用于过程自动化、能源管理、火灾报警和家庭网络自动化...
nanomsg是一个实现了几种“可扩展协议”的高性能通信库;可扩展协议的任务是定义多个应用系统如何通信,从而组成一个大的分布式系统。当前版本nanomsg支持以下协议: 配对模式:简单的一对一的通信; 总线模式:...
ModbusRTU通信协议的主要特点是使用RS485总线进行通信,最高支持9600个节点的连接。ModbusRTU协议还支持多种数据类型,包括数字量、模拟量和保持存放器。 在西门子S7-200系列PLC设备中,ModbusRTU通信协议可以通过...
1. PROFINET RT通信协议的分析和实现:PROFINET RT通信协议是PROFINET RT通信技术的核心,研究该协议的分析和实现对于PROFINET RT通信技术的发展至关重要。 2. PROFINET RT通信技术的性能分析:PROFINET RT通信技术...
目前PLC与上位机PC(计算机)通信方式主要有以下几种:1)通过PLC开发商提供的系统协议与网络适配器,构成特定公司产品的内部网络,其通信协议不公开;2)购买通用的上位组态软件,实现上位机与PLC的通信;3)利用PLC厂商...
该解决方案基于STC12C5A60S2单片机,搭载MAX232、MAX485等通信芯片,以Modbus为通信协议,加以外围电路,构成了一个可以实现数据中转的转接板。 通讯板协议转换具有以下几个特点: 1. 可以实现RS232接口或RS485...
由于其通信速率高、工作可靠、调试方便、使用灵活和性价比高等优点,己经在汽车业、航空业、工业控制、安全防护等领域中得到了广泛应用,被公认为几种有前途的总线之一,其协议也发展为重要的国际标准。 随着CAN...
该协议定义了CPE与自动配置服务器(ACS)之间的通信协议,实现了CPE的自动配置、状态监视和诊断等功能。 自动配置是TR-069协议的核心功能之一。该功能允许ACS远程配置CPE,包括IP地址、子网掩码、默认网关、DNS...
DF中继协议是一种常用的协作通信协议,了解DF中继协议的优缺点是选择合适的中继协议的关键。 进度和要求 ------------ ### 第 1-2 周:查阅资料,整理读书笔记 查阅相关文献,了解协作通信系统中的选择DF中继协议...
由于其通信速率高、工作可靠、调试方便、使用灵活和性价比高等优点,己经在汽车业、航空业、工业控制、安全防护等领域中得到了广泛应用,被公认为几种最有前途的总线之一,其协议也发展为重要的国际标准。...
CAN总线是一种串行通信协议,具有高性能和可靠性,已被广泛应用于工业自动化、船舶、医疗设备、工业设备等方面。 现场总线是自动化领域的热点之一,为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强...
Zigbee是一种无线通信协议,是基于IEEE820.15.4标准的低功耗局域网协议。是根据国际标准规定的,zigbee技术是一种短距离、低功耗的无线通信技术,该技术支持恒温器到冰箱灯泡等各种智能家居设备。Zigbee是由zigbee...
WebSocket 协议是一种基于 TCP 协议的双向通信协议,旨在解决浏览器和服务器之间的全双工通信问题。它可以让浏览器和服务器之间建立一个持久的连接,实现实时的双向通信。 二、WebSocket 协议的握手过程 WebSocket...
Socket 是一种编程接口,它提供了访问下层通信协议的系统调用和相应的数据结构功能。在 Linux 系统中,Socket 接口是应用程序访问下层网络协议的唯一方法。Socket 在用户级实现了两个应用程序之间的网络连接和数据...
OTN 的体系架构主要包括 OTN 体系、接口结构、开销、路径层次和维护信号、告警和性能等几个方面。 OTN 体系是指 OTN 网络的总体架构,包括 OTN 的定义、特点、层次结构及接口等。 OTN 接口结构是指 OTN 网络中的接口...