`
zhang_xzhi_xjtu
  • 浏览: 524932 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

web service设计中的性能问题

    博客分类:
  • SOA
阅读更多
SOA架构已经成为很多系统的架构选择,在基于SOA架构的系统的编程开发中,可以从以下三个点来关注性能问题。

1 web service的调用。
众所周知,web service的调用中,网络上的时间消耗是一个比较大的部分。这里有两个可以注意的地方。soap消息的大小,标准的soap消息以是xml文档的形式传送的,而一个重型的web service的结果可以达到几十甚至更大,可以考虑用压缩后的形式传送比较大的soap消息。web service的调用频率,在一次业务中,有可能调用同一个系统多次web service,可以考虑设计一些重型的service来减少调用次数。

2 业务逻辑编程时的考量
一般来说,代码中的性能bug会比较少,但是,质量很差的代码一样有可能是性能杀手。对关键系统的代码一定要做性能测试,以便尽早发现低质量的代码。

3 数据库优化
数据库访问一直是性能杀手,对数据库的优化应该持续的测量与改进。加索引,分表,加缓存等等任何常见的优化措施都有可能对性能有一个大的提升。

4 对ws约定的理解
很多时候大家都忘了性能同样是ws的一个约定。只不过是隐含的。
一个ws在发布之前,应该有充分的性能测试。

性能的问题,永远都不会有一个最终的完美方案。其要点在于,设计,编程,配置,测试时要有性能的概念。要思考自己的每一个动作会对性能造成什么样的影响。性能的改进依赖于测试,任何改进都必须有性能测试报告来证明其是行之有效的,而不是yy出来的。性能的改进依赖于团队对于性能持久的关注,而不是有了问题才解决。
分享到:
评论
20 楼 zhang_xzhi_xjtu 2010-08-23  
miwucc 写道
请问楼主~如果一个ws服务遇到高并发访问的情况下该如何来保证他的稳定性呢?

一个ws服务的并发性应该在发布之前就测试好。这个也是ws的一个约定。
19 楼 miwucc 2010-08-23  
请问楼主~如果一个ws服务遇到高并发访问的情况下该如何来保证他的稳定性呢?
18 楼 neo_q 2010-06-30  
mp_juan 写道
todd_liu 写道
哪这么多的“唧唧歪歪”,直接socket,解决

直接支持,socket完全搞定的事,东扯西扯的

兄弟,WS是规范的、自描述的,如果是放在真正的互联网上,你难道额外放一个文档来描述你的socket字节意义?当然在有限客户端的情况下socket从某种意义上来说是可以作为解决方案的。
17 楼 mercyblitz 2010-06-30  
mp_juan 写道
todd_liu 写道
哪这么多的“唧唧歪歪”,直接socket,解决

直接支持,socket完全搞定的事,东扯西扯的


如果是Socket的实现,连接的两方都需要实现通讯协议,意义就不同了。 WS的意义就是标准化,通讯终端只需要实现SOAP。

现有的方案都提供了相应语言的实现。
16 楼 mp_juan 2010-06-29  
todd_liu 写道
哪这么多的“唧唧歪歪”,直接socket,解决

直接支持,socket完全搞定的事,东扯西扯的
15 楼 andot 2010-06-29  
mercyblitz 写道
Hprose在浏览器是怎么支持的?看了你的测试结果,貌似比PHPRPC还快!

Hprose提供了一种可以高效解析的格式,对于各种语言都非常友好。因此在浏览器中,可以通过js快速的完成构造和解析。Hprose是从PHPRPC发展而来的商业化版本,其性能是PHPRPC的10倍甚至更高,如果比PHPRPC还要慢的话,那商业化就没有意义了。
14 楼 todd_liu 2010-06-29  
哪这么多的“唧唧歪歪”,直接socket,解决
13 楼 mercyblitz 2010-06-29  
andot 写道
mercyblitz 写道
andot 写道
zhang_xzhi_xjtu 写道
berlou 写道
其实现在看webservice调用也可以考虑不用xml传输,用json或者其他更轻量级的格式貌似都可以。

json貌似减轻了一些性能负担,但是不如2进制来的爽快。


跨平台的话,二进制不见得会多爽。至少javascript里面没办法处理二进制。


javascript传递XML?速度更慢,要提供好的性能,最好不要使用解释型语言。


当然不是XML,XML在远程调用中是最不可取的东西。javascript作为ajax实现中必须的技术,在浏览器中具有不可替代性,所以想要不使用也是不现实的。最好的方式就是使用Hprose,不但可以高效的支持JavaScript,还可以实现跨域调用,另外还能跨语言,跨平台,对于各种常见语言都有非常好的支持,是其他技术所无法相比的。


Hprose在浏览器是怎么支持的?看了你的测试结果,貌似比PHPRPC还快!
12 楼 andot 2010-06-29  
mercyblitz 写道
andot 写道
zhang_xzhi_xjtu 写道
berlou 写道
其实现在看webservice调用也可以考虑不用xml传输,用json或者其他更轻量级的格式貌似都可以。

json貌似减轻了一些性能负担,但是不如2进制来的爽快。


跨平台的话,二进制不见得会多爽。至少javascript里面没办法处理二进制。


javascript传递XML?速度更慢,要提供好的性能,最好不要使用解释型语言。


当然不是XML,XML在远程调用中是最不可取的东西。javascript作为ajax实现中必须的技术,在浏览器中具有不可替代性,所以想要不使用也是不现实的。最好的方式就是使用Hprose,不但可以高效的支持JavaScript,还可以实现跨域调用,另外还能跨语言,跨平台,对于各种常见语言都有非常好的支持,是其他技术所无法相比的。
11 楼 mp_juan 2010-06-29  
传递XML怎么会有那么多的性能问题呢,难道非要用WS才能解决问题吗,socket都能解决问题吧,传递二进制可能在网络上面的消耗比较低,如果LZ没有比较妥善的二进制处理机制的话,建议还是使用xml报文传输数据
10 楼 shuiguozheng 2010-06-29  
mercyblitz 写道
如果要用WS的话,建议可以使用二进制协议的Hession或者PHPRPC,如果不用的话,用REST。

   我们都是用hessian 提供出去的!至于传输的数据过大也遇到过,当时调用方是。net,我们服务端这边返回的结果集就有9w多条,对方直接超时了。
9 楼 mercyblitz 2010-06-29  
andot 写道
zhang_xzhi_xjtu 写道
berlou 写道
其实现在看webservice调用也可以考虑不用xml传输,用json或者其他更轻量级的格式貌似都可以。

json貌似减轻了一些性能负担,但是不如2进制来的爽快。


跨平台的话,二进制不见得会多爽。至少javascript里面没办法处理二进制。


javascript传递XML?速度更慢,要提供好的性能,最好不要使用解释型语言。
8 楼 andot 2010-06-28  
zhang_xzhi_xjtu 写道
berlou 写道
其实现在看webservice调用也可以考虑不用xml传输,用json或者其他更轻量级的格式貌似都可以。

json貌似减轻了一些性能负担,但是不如2进制来的爽快。


跨平台的话,二进制不见得会多爽。至少javascript里面没办法处理二进制。
7 楼 zhang_xzhi_xjtu 2010-06-28  
berlou 写道
其实现在看webservice调用也可以考虑不用xml传输,用json或者其他更轻量级的格式貌似都可以。

json貌似减轻了一些性能负担,但是不如2进制来的爽快。
6 楼 zhang_xzhi_xjtu 2010-06-28  
恩,以前用xml是为了标准简单,真正关键时刻要性能的话,还是得用2进制。
5 楼 zhang_xzhi_xjtu 2010-06-28  
berlou 写道
这个有点问题, 如果是SOA架构,那必须面对的就是原有系统和异构系统。
如果你的SOAP被压缩为某一个格式,你怎么确定接收方会识别你的压缩格式,正确解压缩?改造所有的旧有系统?
不过对于新系统内部可以考虑用自己的实现去传输。


旧系统也可以考虑加一个薄层,这个薄层可以加在应用服务器上,也可以加在一个中心转发机器上。
4 楼 mercyblitz 2010-06-28  
如果要用WS的话,建议可以使用二进制协议的Hession或者PHPRPC,如果不用的话,用REST。
3 楼 andot 2010-06-28  
其实做异构系统集成,还可以不用webservice,有更好用的技术。
2 楼 berlou 2010-06-28  
其实现在看webservice调用也可以考虑不用xml传输,用json或者其他更轻量级的格式貌似都可以。
1 楼 berlou 2010-06-28  
这个有点问题, 如果是SOA架构,那必须面对的就是原有系统和异构系统。
如果你的SOAP被压缩为某一个格式,你怎么确定接收方会识别你的压缩格式,正确解压缩?改造所有的旧有系统?
不过对于新系统内部可以考虑用自己的实现去传输。

相关推荐

    基于Web Service的数据库同步系统的设计与实现.rar(论文+程序源码)

    Web Service数据库同步系统的设计与实现 1 摘要 1 1引言 3 1.1课题背景 3 1.2国内外研究现状 4 1.3本课题研究的意义 6 1.4本课题的研究方法 6 2Web Service数据库同步原理 7 2.1 Web Service构成与特点 7 2.1.1 Web ...

    论文研究-一种用于高性能电信应用服务器上的支持动态业务加载的Web Service适配器的设计与实现 .pdf

    一种用于高性能电信应用服务器上的支持动态业务加载的Web Service适配器的设计与实现,李晓亮,,现有Web Service协议栈在支持C /C程序语言时采用了将Web Service运行时环境与应用程序编译成一体的方式,造成当Web ...

    嵌入式WEB Server设计与应用

    数据模块的连接,提高系统的实时性能以及动态WEB的实现等一系列 关键性问题。 本文 从 嵌 入式系统的结构,嵌入式数据库的实现技术和嵌入式WEB SERVER的实现技术等几个方面论述了目标系统相应部分的实现,详细 介绍...

    高性能可信Web Service研究 (2006年)

    传统的Web Service以文本的方式传送SOAP包,存在安全性和性能等方面的问题。为了解决这些问题,提出了一种新的Web Service处理模型,通过将PKl技术、数据压缩技术与Web Service技术的结合,形成了可信、高性能的Web ...

    SOAP webserivce 和 RESTful webservice 对比及区别

    基于REST的软件体系结构风格(Software Architecture Style)称之...按照REST原则设计的软件、体系结构,通常被称为“REST式的”(RESTful),在本文中以下称之为 RESTful Web服务,以便于和基于SOAP的Web服务区别。 

    实用J2EE设计模式编程指南

    模式已成为收集、规范和分析某些情景中常见的问题的有效方法。本书介绍J2EE设计模式,及如何应用这些模式建立高质量应用程序,包括设计企业方案应用程序时使用的各种设计模式,并分章节介绍各个模式。本书有针对性地...

    使用XFire+Spring构建Web+Service

    1 支持一系列Web Service的新标准--JSR181、WSDL2.0 、JAXB2、WS-Security等; 2 使用Stax解释XML,性能有了质的提高。XFire采用Woodstox 作Stax实现; 3 容易上手,可以方便快速地从pojo发布服务; 4 支持...

    毕业文论:远程无线粮库实时监控管理系统的设计与实现.docx

    本文共分为六章。各章节的主要内容安排如下: 第一章简述了系统的研究背景及...Web Service 接口实现监控等主要功能的过程及其相关代码,系统的经过功能及性能测试后已经完全达到了预期的效果。 第六章是总结和展望。

    Web2.0社区平台源码

    6.解决圈子话题可以在论坛中恶意构造显示的问题 Forum.Web\Controllers\ForumController.cs Web\Themes\Channels\Default\Pages\Forums\Search.aspx Forum.Web\SearchSupport\ForumSearchManager.cs Common.Web\...

    基于_Web_Service_的3G应用开发-概要设计说明.doc

    该文档对所开发的超市导购系统的总体及各个子系统所需要达到功能、性能、用户界面及运行环境等作出了详细的说明。他作为对该系统概要设计的依据,帮助开发人员了解本系统的框架思想及实现功能,并验证核实该产品能否...

    工业电子中的基于数控设备WEB服务网关的软硬件设计

    此文给出了数控单元WEB服务网关的软硬件设计,还重点介绍了SOAP的压缩传输方案,以改善WEB SERVICE的传输性能。  1 引言  SOA (Service Oriented Architecture) 是分布式企业级应用架构的新一代标准,其粗粒度和...

    性能测试进阶指南——LoadRunner11实战 part2

    《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》结合了很多工作中的实际案例,图文并茂,既适合渴望了解性能测试的新人,也适合对性能测试有一定认识和经验的中、高级测试工程师。同时,《测试实践丛书:...

    基于Web service技术的抄核数据集成交互应用开发

    针对当前基于XML技术的抄核数据集成交互系统存在内存耗费比较大,且交互过程中易导致数据包丢失等问题,本文在Web service技术的基础上,开发一种新的抄核数据集成交互系统。该系统设计分为两部分:第一部分设计系统...

    性能测试进阶指南——LoadRunner11实战 part3

    《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》结合了很多工作中的实际案例,图文并茂,既适合渴望了解性能测试的新人,也适合对性能测试有一定认识和经验的中、高级测试工程师。同时,《测试实践丛书:...

    性能测试进阶指南——LoadRunner11实战 part1

    《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》结合了很多工作中的实际案例,图文并茂,既适合渴望了解性能测试的新人,也适合对性能测试有一定认识和经验的中、高级测试工程师。同时,《测试实践丛书:...

    基于RFID技术的智能景区系统设计与实现

    随着旅游业成为当今世界最具有发展活力和潜力的产业,RFID与旅游...采用基于Web的B/S模式结合Web Service,SSL、动态缓存、负载均衡、集群和ActiveX控件技术,使得系统扩展性好、安全性能高;用户使用方便、操作灵活。

    基于数控设备WEB服务网关的软硬件设计

    此文给出了数控单元WEB服务网关的软硬件设计,还重点介绍了SOAP的压缩传输方案,以改善WEB SERVICE的传输性能。  1 引言  SOA (Service Oriented Architecture) 是分布式企业级应用架构的新一代标准,其粗粒度和...

    基于J2EE架构的EAI系统的设计

    摘要: 本文以一个企业的 EAI 系统为例, 提出基于 J2EE 平台、 Web Service 技术和 Struts MVC 框架的...性能、 可跨平台、 易于扩展、 易于管理和维护等优点, 体现了 J2EE 体系, Web Service 和 Struts卓越的技术优势。

    Web监视:前端监视,性能监视平台。前端监视平台专注于Web端体验数据监视。 监视Web健康的三个方面:页面打开速度(速度测量),页面稳定性(JS错误)和外部服务调用成功率(API)

    支持自定义上报(js错误,api请求,性能信息) 用户访问路径追踪 自定义阈值(注册用户) 自动报警功能,发送报警邮件提醒(注册用户) [技术支持] 前端:Angular5 +,蚂蚁设计 突出:Nodejs + Express 数据库:...

    通往架构师之路(全27)

    10 Axis2 Web Service 一 11 Axis2 Web Service 二 12 Axis2 Web Service 三 个人认为内容非常好 所以整理上传 希望能给更多的人带来帮助 向lifetragedy致谢 ">资源简介: 本资源整理自CSDN网站 发表者...

Global site tag (gtag.js) - Google Analytics