购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 从某商业银行电商管家系统谈起

某商业银行在2010年上线了一套电商管家系统,该系统用来为电商用户提供营销推广、第三方平台店铺运营、在线客服、订单处理、仓储发货等服务。上线初期运行稳定,但是随着业务量和数据量的增长,先是遇到了应用服务器性能瓶颈,后又遇到了数据库性能瓶颈。

2.1.1 物理部署架构

某商业银行电商管家系统,应用使用Java语言开发,部署在Tomcat应用服务器上,应用通过JDBC接口访问后台的MySQL数据库。刚开始数据量很小,Tomcat和MySQL都采用单机部署就可以支撑,整个部署架构也很简单,如图2-1所示。

电商管家系统中的应用模块较多,为了论述方便,这里以电商管家系统中的商家管理模块和商品管理模块作为例子说明。如图2-2所示,这两个模块都部署在一个Tomcat应用服务器中,分别用到的商家表Dealer和商品表Goods也都存放在单一的MySQL数据库中。

图2-1 单机版物理部署架构

图2-2 单机版应用模块以及业务表

2.1.2 应用服务器性能瓶颈及解决方案

随着业务量的增长,电商管家系统首次遇到了性能瓶颈。在高并发请求下,满配的Tomcat服务器CPU处理能力达到上限,已经无法扩充硬件资源;尝试优化Tomcat参数效果也不佳。

考虑到单个服务器性能总是有限的,最好的办法自然是实现横向扩展,组建Tomcat集群是有效提升性能的手段,采用Nginx作为请求分流的服务器,后端多个Tomcat共享Session来协同工作。

如图2-3所示,通过增加一台新的Tomcat服务器,这样就有了由两台Tomcat服务器构成的应用服务器集群,通过应用集群访问MySQL数据库。

图2-3 应用集群方案

增加Tomcat服务器组建集群后,Tomcat集群里每个机器都是无状态和对等的,彼此没有明确的分工。通过这种应用服务器扩容,暂时缓解了应用服务器的性能压力,也取得了良好效果。

但如果是数据库服务器遇到了性能瓶颈呢? kBUQfkyEkO+Oi30tK3CBs6rZ+OsTz2hVUBf9mvMH7nLAQMaVOH/YZNZjOIdnhPAk

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开