架構師訓練營第 1 期 - 第 06 周作業
请简述 CAP 原理
CAP 原理
討論分布式系統在 "一致性"(C),"可用性"(A),及"分區耐受性"(P)之間的關係
CAP
一致性 (Consistency)
每次讀取的數據都是最新的數據,或者返回一個錯誤
Every read receives the most recent write or an error
不是過期的數據,數據是跟現實最新的是一致的
可用性 (Availability)
每次請求都應該得到一個響應,而不是返回一個錯誤或失去響應
Every request receives a (non-error) response, without the guarantee that it contains the most recent write
系統需要一直可以正常使用,不會引起調用異常
但是不保證響應的數據是最新的 (不需要一致)
分區耐受性 (Partition tolerance)
即使因為網路原因,部分服務器節點之間消息丟失或延遲,系統應該是可以操作的
The system continues to operate despite an arbitrary number of message being dropped (or delayed) by the network between nodes
原理
在分布式系統中 CAP 三者無法同時滿足
分布式系統在必須要滿足分區耐受性的前提下,一致性和可用性無法同時滿足
一致性和可用性必須二選一
網路失效一定會發生,所以必須保證分區耐受性
選擇一致性
系統返回一個錯誤碼或乾脆超時
系統不可用
選擇可用性
系統總是返回一個數據,但不能保證數據是最新的
系統不一致
須根據業務特性去選擇一致性或可用性
如付款業務 - 須保證一致性
如商品展示 - 可選擇可用性
针对 Doris 案例,请用 UML 时序图描述 Doris 临时失效的处理过程(包括判断系统进入临时失效状态,临时失效中的读写过程,失效恢复过程)。参考《海量分布式存储系统 Doris 的高可用架构设计分析.pdf》
Enter Failure Mode
Write to Group 2 Fail
Retry K times
This example is to retry 3 times
Report Group 2 Fail to Config Server
Config Server check If Group-2 really Fail
Retry K times
This example is to retry 3 times
If Yes, then notify all the clients that Group-2 is entered Failure Mode
Failure Mode Access
read
Client-1 only can read from Group-1
write
when Client-1 writes, the SDK will write to Group-1 and Backup-DS
Backup-DS only writes the log, not really writes data to database
Recover
Group-2 recovered
When Config Server received Group-2 recovered notification
Notify all clients, Group-2 is back
Notify Backup-DC to replay logs to Group-2
Group-2 is in the Recover Mode
Backup-DC replay logs to Group-2
When Client-1 read, it only can read from Group-1
When Client-2 write as normal
write to Group-1
write to Group-2
Backup-DC send Recover finished to Config Server
All logs are replayed
Config Server notify all that Group-2 is normal now
Group-2 left recover mode, and back to normal node
read
read command can read from Group-1 or Group-2 in normal mode
write
write command need to wirte to Group-1 and Group-2 both in normal mode
版权声明: 本文为 InfoQ 作者【Panda】的原创文章。
原文链接:【http://xie.infoq.cn/article/3f69a0fccfc284c46d17acd3f】。未经作者许可,禁止转载。
评论