V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ruandao
V2EX  ›  问与答

cap 中的 C 和 分布式、集群的关系 有点混淆 谢谢

  •  
  •   ruandao · 2020-04-27 23:49:53 +08:00 · 920 次点击
    这是一个创建于 1689 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看了些文章 然后发现 cap 中的 c 指的是 多节点中数据副本是否相同 那么这个其实和分布式没有关系,有关系的是集群

    分布式,指的是多个系统,合作对外提供服务

    分布式中的一致性,指的是业务上的一致性,譬如说扣减红包和下订单,要保证业务的一致性,但是两个系统不是在同一个应用程序中,无法处于同一个数据库事务中,没有 aid 的加持。于是需要引入像 2 阶段提交,TCC,本地消息表这类的方案。

    是这样吗? 谢谢

    8 条回复    2020-04-28 01:10:48 +08:00
    ruandao
        1
    ruandao  
    OP
       2020-04-28 00:09:02 +08:00
    另外有个问题是,最终一致性,r+w<=N, 配合上 TCC 会不会出现问题,譬如说,我有两个并发扣减的操作,如果想要不出现问题,那么只能在同一个节点写入对吧,然后扩散到其他节点,还是说,两个并发操作可以对不同的节点写入


    cap 是必须选主对吧,然后从节点对外提供读服务,主进行写的串行化,然后扩散给从
    ruandao
        2
    ruandao  
    OP
       2020-04-28 00:15:10 +08:00
    cap 中的 c 指的是集群中节点的数据复制
    cap 需要选主,主对写进行序列化并且执行然后分发给从进行同步
    从节点主要提供读的服务
    ruandao
        3
    ruandao  
    OP
       2020-04-28 00:42:07 +08:00
    看了下,好像理解错了
    cap 中的强一致性 好像是每个节点都有个副本,然后 保证 r+w>N

    那么 cap 由谁来保证,
    将写请求打到集群中的任一节点,然后由那个节点,对其他节点发起请求来保证一定数量的 w ?然后汇总所有的 w,并返回?
    读的时候,同样是打到任一节点,然后这个节点对其他节点发起请求来保证一定数量的 w,最后把最新的值返回?

    还是说,由客户端中间件来保证?
    misaka19000
        4
    misaka19000  
       2020-04-28 00:52:21 +08:00
    CAP 更加理论一点吧,不存在选不选主的问题,选主这些是一些更加工程化的实践了
    ruandao
        5
    ruandao  
    OP
       2020-04-28 00:55:58 +08:00
    @misaka19000
    我现在有点混淆,最终一致性,
    是指一个业务中,不同数据譬如下单和扣钱这两个不同的数据,随着时间推移达到一致(即下单和扣钱都执行了,刚开始可能只是先扣钱,然后通过本地消息表来下单)
    还是指,同一个数据,在不同节点中,随着时间的推移,如果没有新的写入的话,达到同一个值
    misaka19000
        6
    misaka19000  
       2020-04-28 01:01:48 +08:00   ❤️ 1
    最终一致性很简单啊,简单点来说就是两个系统中存在同一个变量 X,在某一个时刻 A 系统的 X 值为 1,一段时间之后(最终),B 系统中的 X 的值也会变为 1,这就是最终一致性
    ruandao
        7
    ruandao  
    OP
       2020-04-28 01:04:57 +08:00
    @misaka19000 好的,那么这篇文章 https://juejin.im/post/5c9443406fb9a070fe0dd9a9#heading-23 感觉就有点奇怪,像两阶段、tcc 、补偿之类的应该和最终一致性没有关系
    搜资料的时候,碰到这篇文章,然后疑惑了
    misaka19000
        8
    misaka19000  
       2020-04-28 01:10:48 +08:00
    你说的这些是实现最终一致性的手段或者说方式,与 CAP 理论本身无关
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3179 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:47 · PVG 08:47 · LAX 16:47 · JFK 19:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.