业务模块松耦合

本最佳实践要解决的主要问题是如何解耦业务处理逻辑和数据库部署在同一服务器上的方式,避免业务增长时,服务器水平扩展困难。一个紧耦合的部署示意图如下图所示。

我们要尽力将业务处理逻辑和数据库解耦部署,分别统一业务层和数据库层。操作步骤如下:

Step 1:打破Web Server和DB Server之间的紧耦合,分层部署。云服务器上只运行业务处理逻辑,并将这些云服务器加入负载均衡SLB的backend server列表,另购买RDS(也可自己在云服务器上搭建主从数据库)。RDS数据库的访问方式与SQL执行语句基本无需改变。部署示意图如下图所示。

Step 1:打破Web Server和DB Server之间的紧耦合,分层部署。云服务器上只运行业务处理逻辑,并将这些云服务器加入负载均衡SLB的backend server列表,另购买RDS(也可自己在云服务器上搭建主从数据库)。RDS数据库的访问方式与SQL执行语句基本无需改变。部署示意图如下图所示。

Step 2:前端服务器和数据库仍可能有同步交互耦合,在高并发时,数据库的连接数和IOPS限制可能引起前端服务器读写延时。可加入缓存服务解耦,使用OCS或自己在云服务上安装Memcached/Redis缓存数据。通过提高cache命中率,降低前端处理时延,后端数据库作为缓存持久化。购买OCS时会得到OCS访问URL、用户名及密码,之后即可按Key-Value方式存取数据。

Step 2:前端服务器和数据库仍可能有同步交互耦合,在高并发时,数据库的连接数和IOPS限制可能引起前端服务器读写延时。可加入缓存服务解耦,使用OCS或自己在云服务上安装Memcached/Redis缓存数据。通过提高cache命中率,降低前端处理时延,后端数据库作为缓存持久化。购买OCS时会得到OCS访问URL、用户名及密码,之后即可按Key-Value方式存取数据。

Step 3:当业务量增大时,只需在前端新增云服务器并加到SLB的backend server列表中即可,RDS和OCS也可动态升级扩展。当数据量有1TB左右时,可以考虑通过分库分表的方式支持更大规模的数据。

Step 3:当业务量增大时,只需在前端新增云服务器并加到SLB的backend server列表中即可,RDS和OCS也可动态升级扩展。当数据量有1TB左右时,可以考虑通过分库分表的方式支持更大规模的数据。

业务模块松耦合:等您发表观点呢!

发表评论


快捷键:Ctrl+Enter