关于CAP定理的疑惑
CAP中,C和A二选一,这个定理是对于整个系统的还是对于子系统的?
比如银行转账有两个情况,课程里面也提到了这两种,但是没有做区分细讲
1、晚到1天没有关系,所以对于整个银行系统而言应该需要保证可用性,比如建行转工商,不能说还没同步到账,就不能查工商账户余额,它必须随时可查,但是返回的可能是还没到账的旧值。
2、对于建行本身,在各个节点的余额都应该保持一致,不能是G1刚扣除余额,扣光了,发起了转账,G2还没同步,就从G2又发起了全部转账,前后转了两笔,这肯定是不允许的,每个节点的余额应当保持一致。
综上所述,
每个银行都有自己的系统,那么对于转账而言,是不是分为了两个极小的子系统(甚至都不能叫系统?),一个用于发起转账的子系统G1,一个用于收到转账、提供查询等功能的子系统G2。对于G1而言,应该选择CP,而对于G2而言,应该选择AP。
所以,CAP定理是对于子系统而言的,对吗?
37
收起
正在回答
2回答
同学你好,这里跨行转账不能简单的用CAP定理来解释。
这里可用性是指,在系统中一部分节点故障后,系统还能响应客户端的读写请求。
并不是同学理解的没有到账,还能查询余额就是可用性。
祝:学习愉快~
java工程师2020版
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星