随着互联网的普及,越来越多的人选择网上购物。各商家网上商店的竞争也是如火如荼。除了常见的打折大促销,还有限时抢购及让人又爱又恨的秒杀活动。大量用户几乎同时访问商店,对电子商务系统的硬件及软件性能都是极大的挑战。一旦性能达不到要求,或者出现访问中断,损失的不仅是大量的营业额,还有用户信任度的下降,造成用户流失。所以越来越多的企业在购买电子商务软件时,不光注重其功能性,性能也成为被认真考量的重要方面。
电子商务性能问题常常表现在大量用户同时交易时,页面响应速度慢,甚至发生系统错误。还有就是在一个较短的时间段里,即使系统负载没有什么变化,系统性能也发生明显下降,从而造成系统不能长期稳定运行。这些问题都会严重影响用户交易体验,并给企业带来直接或间接重大经济损失。
IBM WebSphere Commerce 基于 WebSphere Application Server, 是 IBM 为企业用户提供的企业对企业 (B2B) 或企业对客户 (B2C) 的非常成熟的电子商务应用解决方案,是顶级企业的首选,被公认为是业界领先的电子商务解决方案。它提供了下一代的解决方案,旨在应对企业的电子商务需求,并帮助任何规模的企业支持其客户随需应变地开展业务。WebSphere Commerce 提供一组紧密集成的软件模块,帮助企业客户实现快速的、高度自动化的跨渠道营销和销售流程。
近年来随着中国电子商务市场的爆炸式增长,WebSphere Commerce 在中国的客户越来越多,对本土实施团队的要求也越来越高。在性能提升方面,与其在出现性能问题之后再着手解决,不如在实施时期就做好高性能的设计。优化和提高电子商务系统的性能不仅需要强大的理论知识,还需要有很强的实践经验。本系列就是以作者实际参与的 WebSphere Commerce 电子商务应用为背景,在理论和实践相结合的基础上,详细介绍在实际开发和维护工作中的具体使用经验,以期帮助开发及服务人员在产品开发及上线初期就能做好性能优化。
WebSphere Commerce 支持多渠道 (multi-channel) 的访问方式,其中 Web 是最主要的访问渠道,所以本系列中的讨论也以 Web 应用中的性能优化为主。本文将不涉及高性能编程的内容,因为那将是一个更加庞大的知识系统。本文所提供的,是针对功能设计完成之后,上线之前可以做的一些性能优化的原则和实践。
基本概念模型
WebSphere Commerce 不是一个孤立的系统,它是基于 WebSphere 上的一个复杂应用,如 错误:引用源未找到 所示就是一个最基本的 WebSphere 应用概念模型,其本身由 Web 服务器、应用服务器和数据库服务器组成,在系统的三层之间以及 Web 服务器与外网之间都设立了防火墙,提高系统的安全性。很多时候还会利用内容分发网络(CDN)来缓存静态内容。 因此考虑系统的性能也绝不仅仅是考虑应用程序的性能,应该全面考虑到客户端,代理缓存服务器,Web 服务器,WebSphere 应用服务器和数据库服务器的性能。
图 1. WebSphere 应用系统概念模型
电子商务应用的性能关注点
对电子商务应用的性能来讲,一般关注以下几个典型方面:
页面 / 客户端的响应时间: 响应时间直接影响最终用户的使用体验,从而在很大程度上影响用户忠诚度。 服务器的吞吐量:常用的是系统每小时能处理的业务量。比如,最高每小时能接受的网站浏览次数,及一个电子商务网站每小时能下
多少个单等等。 最大并发用户数: 正常运行状态下,系统最多能承受多少用户同时访问且对用户感受到的响应时间没有显著影响。 长期运行的稳定性:任何电子商务网站都不希望自己的系统越来越慢,甚至宕机,这对最终用户会造成非常不好的印象,从而也给业务带来大的损失。应用服务系统是否能长期稳定运行除了跟服务器的硬件有关系之外,软件本身也有很大的影响。 最大数据规模:当前硬件 / 软件条件下,能保证正常访问的最大容忍数据规模。 扩展能力:随着业务量的增长,是否能够灵活地通过增加硬件来增加系统的业务处理能力。
电子商务系统的性能优化,大多是以提升以上几个性能关注点为目标而展开的。而针对每个目标,可以从很多层面上入手。