电商架构设计-经过系统和业务拆分,遵循单一职责原则SRP,保障整个系统的可用性和稳定性

我的观察
1.经过系统和业务拆分,遵循单一职责原则SRP,保障整个系统的可用性和稳定性。
2.单一职责原则SRP,真的很关键,广大程序员须要不断深刻理解这个原则。
3.架构图是架构师的重要输出,经过图能够直观地看出整个架构思路。



本文转载于

《程序员》2014年11月刊:电商峰值系统架构设计

原文连接:http://www.csdn.net/article/2014-11-04/2822459


该作什么的就作什么程序员

保障整个系统的可用性和稳定性,第一步须要作 的就是,使总体架构清晰化、层次化。那么,对系统进行合理拆分,是最直观的选择。从业务和技术角度出发,遵循SRP(Single Responsibility Principle)原则,合理拆分系统中的各个模块,明确每一个模块的职责。这样能够方便快速定位和排查问题,甚至能够有针对性地对每一个模块进行优化。架构

拆分方式基本上分为两种,路由拆分和物理拆 分。所谓路由拆分,就是按照请求特征,将请求流量分摊到两个或多个同质的集群里面;而物理拆分,就是在路由拆分的基础上,按照业务和技术上的特征,将同质的集群进行完全拆分,成为非同质集群。优化

下面以交易流程为例,来看一下如何操做拆分。spa

交易流程主要包括购物车、下单、支付等几个环节,具体的拆分结果,如图1所示。.net


图1  交易流程拆分结果 架构设计

通过分析,整个交易流程按照架构层次能够分解为展现层、业务层及外围应用三块内容,这三部分因为职责差别比较大,因此先按照物理拆分,让层次清晰。设计

再来看展现层,因为存在一些共享的东西,如页面元素等,作物理拆分,会引入额外的成本,因此路由拆分是不错的选择。日志

接着来看业务层。这一层是很容易按照角色和业务场景进行拆分的,例如,交易管理服务是给管理人员提供管理功能的,须要考虑权限、内控等问题;交易核心服务是给业务主流程提供主要业务功能,须要考虑可用性;交易查询服务是读取交易数据的主要途径,须要考虑易用性;交易网关服务主要是对接外部支付渠道,须要考虑连通性。很明显,这一层因为自身的差别性比较大,因此采用物理拆分是上上策。orm

最后来看外围应用,其中包括后台管理、日志查 询、业务监控及交易超时控制等,这些应用基本上都是在底层系统平台(管理平台、日志平台、监 控平台以及任务平台)进行二次开发而成的,因此天生就适合进行物理拆分。ip

从上面不难看出,拆分是一个细活,能够选择的 维度不少,拆分方式也比较讲究。良好的拆分方案,会让系统更加清晰明了,每一个模块该作什么的就作什么。这样应对大型促销活动时,能够游刃有余地按照模块特征进行优化。


总结一下在可用性和稳定性工做中的一些感悟。 
首先,清晰的架构划分能够大大减轻稳定性工做量;
其次,功夫要尽可能在平时作足,避免老是出临时解决方案;
再次,普及稳定性思惟,注意细节;
最后,出现问题,先快速恢复再查找根源。  
相关文章
相关标签/搜索