文/刘红平
近年来,电子商务借助于互联网有了迅猛的发展,从事电子商务的企业都投入了大笔资金进行网站建设。但是大多数网站在建设时,只注重当前的业务规模,缺乏可伸缩性,从而给今后的发展带来一定程度的不良影响。本文分析了影响电子商务网站可伸缩性的主要因素,并给出了切实可行的解决策略。
一、可伸缩性的影响因素
电子商务网站的建设是一项系统工程,必须进行充分的需求分析和深入细致的设计规划,其中整个网站的可伸缩性是建设的一个重要内容。只有保持可伸缩性,才能保护企业的现有投资,才能适应企业将来的发展。为了保持整个网站的可伸缩性,通常采用上扩和外扩两种方法。
1、上扩
上扩是使用性能更好、速度更快和成本更高的硬件实现可伸缩性的常用术语。上扩包括添加更多内存、添加更多或更快的处理器,或者只是将应用程序迁移到功能更强大的单个计算机。通常,该方法能够在不改变源代码的情况下增加容量。
2、外扩
外扩利用了使用商用 PC 硬件在多个服务器中分配处理负载的优点。尽管外扩的实现需要使用多台计算机,但计算机集合本质上是作为单个计算机运行的。通过使若干台计算机专门执行常见的任务,增加了应用程序容错。当然,从管理员的角度看,外扩使计算机的数目增多,从而提出了更大的管理挑战。
二、设计采用三层体系结构
根据一些权威的统计,如果要想在电子商务时代继续保持企业的竞争力,必须有以下三点最基本的要求:首先是要以最短路径将产品或者服务送到消费者手中,也就是直销模式;第二、以最低的成本满足用户对产品和服务的需求,给用户提供最便宜的产品;第三、以最快的方式获取所需的资源或者信息,企业必须迅速得到各种必需的信息,这包括自身的信息和竞争对手以及市场的信息。这三点要求体现了电子商务的核心理念,也就是要以最小的代价得到最大的回报——利润。
在传统的Client/Server结构中,前端客户机上会有多种多样的应用,后端服务器除了有数据库和数据支持系统以外,还需要有一些与前端对应的应用支持系统。解决这个问题的办法就是采用三层体系结构。三层结构就是把二层的事务处理逻辑模块从客户机的任务中分离出来,由单独组成的一层来负担其任务,这样客户机的压力大大减轻了,把负荷均衡地分配给了Web服务器,三层的Browser/Server结构灵活性强、界面友好、适用范围广、易于维护。
整个网站的计算模式转化为三层结构后,整个系统能力已经有很大的提高,同时仍然可以随着用户需求的发展变化采用更新的技术,这样就有力地保证了整个系统的可伸缩性。
三、针对可伸缩性进行代码优化
一些人错误地认为,通过增加更多的CPU\磁盘系统\硬件\并行结构以及其他的先进技术,可以满足任何可伸缩性方面的要求。然而事实是,仅仅增加这些是不够的,应当针对一些关键代码进行优化,以获得可伸缩性的极大提高。
1、调整查询语句
例如,下面的语句可用来打印每天的发票:
假设上述查询语句最初需要用10秒的时间完成,则当公司转入电子商务后,预计客户数量增至三倍,同时定单也成比例增长,那么查询时间将不会是线形增长为以前的三倍(30秒)。通过仔细检查,发现主要原因如下:
⑴ORDER BY意味着有一个排序过程,通常排序的开销比被排序的行数增长得更快;
⑵对于表的搜索使用非唯一索引;
⑶在嵌套循环中对各个定单的扫描需要使用客户信息。
所有这些因素造成的结果是在实际使用时,同样的查询将用去比预期更多的时间。为了更好地利用电子商务,充分发挥电子商务网站的优越性,就有必要重新查看那些访问数据库的查询语句。
2、手工强制执行垃圾收集
Java技术由于其安全性和可伸缩性,在电子商务网站的建设过程中,得到了广泛应用。垃圾收集器在Java中是自动被调用的,但是如果内存有约束,则会极大地影响其可伸缩性,因为即使在编写程序时仅仅漏掉了一个对象引用,则就无法保证届时会运行垃圾收集,进而影响整个系统的可伸缩性。通过创建一个运行期对象,并为该对象调用gc()方法,可以强制执行垃圾收集,具体代码如下:
/*本程序显示了如何进行强制垃圾收集*/
r.gc();
四、对设计过程中选用的产品进行优化选择
随着企业电子商务应用的深入发展,企业对电子商务基础设施软件的要求越来越高,这些要求体现在高可伸缩性、高可靠性和高性能等方面。然而,今天的企业用户在部署电子商务基础设施时面临着诸多挑战。无数的例子都在告诉人们:集成性、简单性、可伸缩性是企业能够不断提高信息技术应用水平、优化IT技术投资回报的重要基础。简单部署、迅速启动、容易扩展、充分利用现有的IT投资、以较低的投入实现主机系统的高性能是广大企业的理想。在电子商务网站的建设过程中,需要选用比较先进的产品。
Oracle9i是Oracle公司新一代电子商务基础架构,利用此平台,企业用户在不断扩展系统的过程中,不再需要考虑昂贵的软件集成和维护费用。它真正应用集群技术,首次把集群技术扩展到了应用层面和各种低端硬件设施,从而带来了最经济的计算模式——集群计算模式,让低端硬件用户也能够享用集群技术实现过去只有大型主机系统才拥有的高性能和高可靠性。最重要的是,用户可以随时根据应用需要,扩展系统。
与基于主机的计算体系和基于客户机/服务器的计算体系相比,集群计算模式具有更加领先的优势。我们知道,主机的计算体系虽然具有良好的系统可伸缩性、可靠性和高性能,但它昂贵的价格迫使用户在系统建设之初就在硬件系统上投入巨大资源,而用户花费巨额资金购买的主机系统也许包含了不少并不需要的功能,造成资源浪费。基于客户机/服务器的计算体系虽然允许用户根据实际需要逐步增加硬件系统,但这种体系的系统在应用升级和管理方面都需要用户付出巨大的代价。在集群计算模式下,用户能够使用运行新一代电子商务基础架构真正应用集群技术的低成本数据库服务器,把运行了该架构真正应用集群系统的普通硬件系统组成集群,再根据需要随时在集群系统中增加新的硬件,提高系统的伸缩性和可用性,从而能够在价格相对低廉的中低端平台上享用过去只有高端系统才具备的高可伸缩性和高可用性,既提高了系统的性能,同时也降低了成本。
通过新一代电子商务基础架构,Oracle为用户能够以更低的成本、更高的效率开展电子商务提供了完整的技术体系,让用户真正能够以较少的资源投入,轻松实现前所未有的高效益。
|