Skip to content

Commit ae8a771

Browse files
committed
BASE理论:实现最终一致性的具体方式是什么呢?
1 parent 966faca commit ae8a771

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

Diff for: docs/system-design/distributed-system/BASE理论.md

+8
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,14 @@ CAP 理论这节我们也说过了:
5353
>
5454
> **业界比较推崇是最终一致性级别,但是某些对数据一致要求十分严格的场景比如银行转账还是要保证强一致性。**
5555
56+
那实现最终一致性的具体方式是什么呢? [《分布式协议与算法实战》](http://gk.link/a/10rZM) 中是这样介绍:
57+
58+
> - **读时修复** : 在读取数据时,检测数据的不一致,进行修复。比如 Cassandra 的 Read Repair 实现,具体来说,在向 Cassandra 系统查询数据的时候,如果检测到不同节点 的副本数据不一致,系统就自动修复数据。
59+
> - **写时修复** : 在写入数据,检测数据的不一致时,进行修复。比如 Cassandra 的 Hinted Handoff 实现。具体来说,Cassandra 集群的节点之间远程写数据的时候,如果写失败 就将数据缓存下来,然后定时重传,修复数据的不一致性。
60+
> - **异步修复** : 这个是最常用的方式,通过定时对账检测副本数据的一致性,并修复。
61+
62+
比较推荐 **写时修复**,这种方式对性能消耗比较低。
63+
5664
### 总结
5765

5866
**ACID 是数据库事务完整性的理论,CAP 是分布式系统设计理论,BASE 是 CAP 理论中 AP 方案的延伸。**

0 commit comments

Comments
 (0)