前言
CAP 定理指出,我们不能拥有严格一致且可用的分布式系统。对于交易系统(例如某些支付系统),一致性通常比可用性更受欢迎,因为我们不能容忍货币被“创造”或“销毁”的情况。
例子
A 和 B 都想将 10 美元转给 C。C 的初始余额为 15 美元。如果 A 和 B 同时读取 C 的当前余额并添加 $10,则 C 将是 $25,但应该是 $35 (15+10+10)
问题
使用交易历史记录和计算当前余额而不是存储余额是一种好习惯吗?这种方法的优缺点是什么?
我正在阅读\观看有关一致性和分布式系统的几个来源,但我没有找到任何关于此的内容。
想法
优点:
- “创造”/“摧毁”金钱是不可能的。
- 无需与其他节点同步即可提交事务。
缺点:
- 透支是可能的。
- 为了显示平衡,可能需要更多的计算。虽然它可以通过缓存过去某个时间点的平衡来缓解。
所以在我看来,这样的系统将是一致性和可用性之间的一种中间点......