• Jackey
    2019-11-18
    base理论其实是对cap中ap的一种补充和延展。它的软状态就是一种数据不一致的状态,base所说的最终一致性,也就是牺牲了一致性。我认为cap比较理想化,实际情况是网络都会有些延迟,无法保证强一致,所谓的“强一致”和“最终一致”只是对数据不一致时间的容忍度不同
     4
     5
  • tt
    2019-11-18
    BASE理论中的BA是“基本可用”,不是全都可用,也不是全都不可用,而是功能的某些子集如核心功能可用;进一步,为了保证BA,就只能选择最终一致性E了,此时系统就处于了S状态即软状态。
    
     2
  • nimil
    2019-11-18
    咱以后也能听懂大佬们谈cap了,嘿嘿
    
     2
  • 被歌唱拯救中
    2019-11-19
    对于弃CP保A有疑问,比如网络分区后,{北京,杭州}为分区a,{上海}为分区b,分区a可以进行下单(写操作),分区b应该也可以下单(写操作)的吧?假如不同分区都进行了写操作,网络恢复后,如何做数据同步呢?拿变量x举例好了,一个分区对x赋值为2,另一个分区赋值为3,数据同步就有冲突了,也不能单纯地以某一分区为准吧?

    作者回复: 数据同步解决冲突这个问题,主要是以用于场景的需求进行解决冲突的,在分布式系统中常见的raft算法,在解决数据冲突时以leader节点为基准,具体可参考第26讲的扩展知识部分。

     1
     1
  • 喵喵喵
    2019-12-18
    打卡~
    
    
  • Eternal
    2019-11-23


    CAP是理论下的理想状态,因为分布式系统中网络故障问题是不可改变的一直存在,所以必须分区容错P必须保证;
    然后在CA之间做取舍,但是实际情况是CA都想保证,但是又不能同时保证,最终妥协的事实标准BASE诞生,BASE同时
    牺牲掉一些C(数据最终一致),牺牲掉一些A(服务基本可用,核心流程的系统可用,或者保证了业务的连续性),这样的
    话系统可以理解为一种软状态。参考学习留言区的小伙伴的视角,数据的一致性:站在系统的角度是最终一致性,站在用户的角度
    数据是强一致性。

    本节课中老师讲ACID和CAP做一个比较,感觉挺好的,两个单独拿出来说可能大家都知道,但是将二者比较分析,我却一直没思考过。
    展开
    
    
  • 蓝魔丶
    2019-11-21
    老师,例子中A,B,C三个服务器存储相同的库存数,怎么保证电吹风在北京仓库有 20 个,在杭州仓库有 10 个,在上海仓库有 30 个,比如北京的人来下单减库存,是否应该保证最多只能卖出20个,为什么要让他们看到的库存数一样,只让北京的人看到最多20个商品库存不行嘛?

    作者回复: 可以跨地区或跨仓库调货

     1
    
  • xfan
    2019-11-20
    前后后所矛盾。
    举例中说明 :分区容错性: 在满足分区容错性 P 的情况下,Server1 和 Server2 之间即使出现网络故障也不会影响 Server1 和 Server2 分别处理用户的请求。
    但是在zookeeper中 形成两个分区后,只有大于集群一半数量的新分区才可以继续服务,小于一半的无法提供服务,然后也满足分区容错性,保CP 弃A ,
    前后矛盾,不知道如何去理解。
     3
    
  • dinuo2019
    2019-11-18
    听完这一讲,我有几个想法和问题:
    1,在CP系统中,是不是也有利用分布式事务,在写入时阻塞直到满足条件才会提交,也就是用户1的写入请求不会被提交,直到恢复后才会写入成功;在这期间,根据隔离级别的设置,如果系统允许读,db1和db2都会返回为1;
    2,BASE理论是AP系统的一种实现思想,在不满足强一致性的时候,以最终一致性作为代替;
    3,kafka的数据本分replica,看到说是CA的系统,但kafka本身是分布式的系统,需要保留P,这里该如何理解?
    
    
  • leslie
    2019-11-18
    其实CAP的取舍很多时候就很难:单一的数据库系统其实无法完全满足需求;这其实是为何现在分布式反而更多的引入了ACID的A的原因吧,其实常规的分布式CP哪怕弃A对比ACID的效果还是差一些;这大概是为何现在个人的感觉其实是分布式与传统模式相互交替以互补的形式存在生产系统的原因吧。
    
    
我们在线,来聊聊吧