通过数据库负载均衡提高SaaS应用性能

来源:IT专家网  作者:Aimee.zheng
摘要:SaaS应用企业最担心的不过是两件事,一是将企业的数据保存在外部的数据库服务器中是否安全;二是这么多用户同时访问SaaS应用服务,其性能是否可以保障。笔者这就以自己的亲身感受为例,谈谈SaaS应用提供商是如何通过数据库负载均衡来提高SaaS应用程序的性能。…

内容提示:SaaS应用企业最担心的不过是两件事,一是将企业的数据保存在外部的数据库服务器中是否安全;二是这么多用户同时访问SaaS应用服务,其性能是否可以保障。笔者这就以自己的亲身感受为例,谈谈SaaS应用提供商是如何通过数据库负载均衡来提高SaaS应用程序的性能。

第一阶段:单个数据库服务阶段。

笔者企业一开始就上了OA系统。这个OA系统是基于B/S架构的。企业刚开始设计、使用这个OA系统的时候,并不没有想到做为商品来卖,是供企业自己内部使用的。所有一开始,就只才用了单个数据库服务器。后来随着SaaS概念的提出,企业就想到也可以将这个OA系统拿出来卖。后来随着用户数量的增多,OA系统的性能明显下降。为了提高OA系统的性能,技术部分提出了双WEB服务器的方案。也就是说,通过两台WEB服务器来分流用户的请求。不过在后台数据库仍然只有一台。当用户数量比较少的时候,往往数据库不会成为用户访问数据的瓶颈。应用程序性能的瓶颈主要卡在WEB服务器上。为此在用户数量增加不多的情况下,通过添加新的WEB服务器可以明显提高应用程序的性能。

第二阶段:将数据更新与查询分布在不同的服务器中。

后来由于客户的要求,企业在原先的OA系统中又集成了公司论坛、项目管理等应用系统,用户的数量也随之增加。在这多方面的影响下,SaaS应用软件的性能又开始逐渐下降,企业不得接到客户的投诉。经过技术专家的分析与论证,此时通过增加WEB服务企来改善应用程序的性能效果已经不明显。为了提高应用程序的性能,提高客户满意度,经过跟企业技术部门协商后,决定通过增加数据库服务器来改善应用程序的性能。考虑到论坛、OA系统的应用特点,其中80%上的用户都只是对信息的查询,而很少涉及到对数据的更新。企业决定将数据更新与查询分布在不同的服务器,来均衡数据库发负载。也就说,如果只是查询数据的话,只是从两台辅助服务器中进行查询。如果需要对其中的数据进行更新,那么WEB应用程序就会将用户的请求连接到主服务器中执行更新操作。更新完毕后,主服务器中的数据会同辅助服务器中的数据进行同步。这么设计可以大幅度的提高SaaS应用程序的性能。

一是将用户更新请求与查询请求进行分流。这个原理就好像是告诉公路上将车道分为超车道、普通车道、货车道等等。通过对信息流的合理分流,可以提高SaaS应用程序后台数据库的性能。同时有两台服务器同时响应用户的查询请求。WEB应用程序会自动根据这两台数据库服务器的负荷来引导用户连接到相对来说比较空闲的数据库服务器中。也就是说,这对于用户来说是透明的,他们并不知道后台数据库的部署已经有了天翻地覆的效果。

二是为后续的扩展提供了很好的平台。只要数据的更新不是导致应用程序性能下降的主要原因,即应用程序的性能瓶颈主要在于数据的查询作业,那么在以后就可以简单的通过增加辅助服务器来分散用户查询操作对数据库服务器带来的压力。由于用户数量的增加,笔者企业现在数据库辅助服务器已经增加到了5台。由于用户数量增加,其更新操作数量反而增加不多,根据观测现在主数据库服务器的性能还是可以的。为此企业暂时没有增加主数据库服务器的打算。

三是在数据的同步上比较容易实现。在通过使用多个数据库来负责均衡,其面临的主要问题就是数据同步的问题。当用户连接到某台数据库服务器,更新了相关内容之后,如何及时的同步到其他的数据库服务器中去。这是技术人员必须要考虑的问题。而采用这个主数据库加查询辅助数据库的方案,让数据同步的问题变得比较简单。也就是说,在这个方案中,技术人员只需要考虑主服务器到各个辅助服务器之间数据的更新,而不用考虑各个服务器内之间的数据更新。因为此时只有一台数据库服务器的数据是可以被用户更新的。其他服务器对于用户来说是只读的。故此时技术人员要实现数据同步的话,就会变得相对简单许多。

【相关文章】好搜一下
商业智能(BI):开启商业之门的钥匙

商业智能(BI):开启商业之门的钥匙

在给用户培训过程中,笔者喜欢将每一个BI应用程序比喻成一个故事。我们在设计BI应…