构建故障隔离的架构

来源:互联网 发布:台湾中视直播软件 编辑:程序博客网 时间:2024/06/01 07:42

本文是对《架构即未来》一书第19章的总结;
1. 什么是故障隔离的架构?个人理解,就是一个系统按照其功能划分为几个独立的子模块,子模块之间互不依赖,互不通信;这里的互不通信是指模块之间不要采用同步调用方式,可以采用中间模块转交的异步方式。
2. 故障隔离的架构有什么好处?
(1) 限制故障的影响范围,采用了故障隔离的架构,每个子模块的故障至影响它本身而不会波及到其他模块;
(2) 便于故障定位和分析,相对于一个大而复杂的系统而言,小的隔离模块更简单,一旦出现故障,也更容易分析和定位;
(3) 故障隔离是系统扩展的一种措施,我们经常采用的垂直分片理论上就是一种故障隔离方式;
(4) 缩短开发时间,一个复杂的系统能够分成很多功能独立的子模块,这些子模块可以分配给不同的研发人员进行并行开发,一方面可以加快系统的总体开发时间,另一方面,研发人员专注于某个模块让代码的质量更高;
3. 故障隔离的原则
(1) 绝不共享,功能独立的各个模块之间不要产生依赖,例如共享信息、同步调用等,既然要隔离就不要共享,否则隔离措施就失效了;如果两个模块之间产生了依赖,就要根据依赖关系程度考虑是否要将二者合并到一个隔离区内。
(2) 不可越界,隔离区内的工作尽量在隔离区内完成,没有任何通信发生在隔离区之外,隔离区绝不对外产生同步调用;
(3) 交易发生在永道,不太理解这个意思。
4. 故障隔离可能的缺点
(1) 影响效率;
(2) 影响交互;

0 0