架构师训练营第六周 - 作业
作业1:针对Doris案例,请用UML时序图描述Doris临时失效的处理过程(包括判断系统进入临时失效状态,临时失效中的读写过程,失效恢复过程)
时序图如下所示:
一、判定进入临时失效流程
应用服务器写入存储服务器失败,重试也失败,请求管理中心仲裁
管理中心仲裁存储服务器为临时失效状态,通知所有应用服务器
本次写入失败,同时写的另一个服务器补偿之前写入操作
二、失效过程中的读写过程
应用服务器读取时,计算路由,选择正常状态存储服务器读取数据
应用服务器写入时,计算路由,选择正常状态存储服务器写入,并写入到临时服务器中
三、失效恢复过程
手工恢复问题存储服务器后,告知管理中心,状态更改为失效恢复状态
管理中心通知应用服务器和临时服务器存储服务器状态变更
临时服务器同步失效期间写入的数据到失效恢复存储服务器
应用服务器可写入数据到失效恢复存储服务器
应用服务器不可读取数据从失效恢复存储服务器
失效恢复存储服务器双写数据遇到冲突后,按时间戳,取最新写入数据
临时服务器同步完数据后,清空本地数据,告知管理中心,同步完毕
管理中心通知应用服务器,临时失效存储服务器完全恢复
临时失效存储服务器完全恢复,可提供读写服务
作业2:请简述 CAP 原理。
CAP原理是分布式系统的基本原理。
现在市面上的系统基本都是分布式系统,理解CAP原理是理解分布式系统的起点。
C:Cosnistency,一致性。
A:Avaliablity,可用性。
P:Partition Tolerance,分区容错性。
CAP原理是加州大学的Eric Brewer提出的,且Eric大师说这三个属性不可能同时满足。
分布式系统,因为是多台服务器通信,分区是一定会发生,所以,P是一定要满足。
那么可供分布式系统选择的就只有CP和AP了。
以上说选CP和AP,不是说选CP,则A不要了,A也是有的,但是可用率就不是很高了,比如,一天里有8个小时不可用。
所以CP是强一致,可用性不高。
AP是可用性很高,近乎9个9这种,但是其一致性会有延迟,如两个地点的用户,观看到的信息不一致,A看到1,B看到2,但是一段时间后,A、B看到的最终会一致。
AP这种场景可用于对时效性要求不高,允许一定的延迟
CP是要求强对一致,如现金转账。
当前业界用的多的是最终一致性,既保证了一致性,又保证了可用性。
对于特殊场景多偏向C或者多偏向A,根据需要,架构时做权衡取舍。
版权声明: 本文为 InfoQ 作者【草原上的奔跑】的原创文章。
原文链接:【http://xie.infoq.cn/article/3542a56fab5da01066591fed9】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论