美文网首页
分布式CAP理论应用

分布式CAP理论应用

作者: RedHatMe | 来源:发表于2019-10-11 14:05 被阅读0次

    基本概念

    一致性(Consistency)
    可用性(Availability)
    分区容错性(Partition Tolerance)
    分布式系统理论上不可能选择 CA 架构,而必须选择 CP 或 AP 架构。
    分布式事务 BASE 理论:AP方案,但是保证弱一致性(最终一致性)。

    应用

    服务注册中心:

    Dubbo 的 Zookeeper,Spring Cloud 的 Eureka,Consul
    RocketMQ 的 nameServer,HDFS 的 nameNode
    ZK为CP方案,Eureka为AP方案。
    Eureka 的创建初心就是为一个注册中心,但是 ZK 更多是作为分布式协调服务的存在。

    分布式锁:

    基于数据库实现分布式锁(不存在CAP)
    基于 Redis 实现分布式锁(AP方案,效率高)
    基于 Zookeeper 实现分布式锁(CP方案,效率低)

    分布式事务:

    ACID:追求强一致性模型,关系数据库的 ACID 模型拥有高一致性+可用性,所以很难进行分区。
    没法分区也就是在分布式场景是没法用的。任何微服务相关的都是涉及CAP的。
    对于分布式事务来说,都是保证最终一致性(BASE理论)。

    解决方案:
    两阶段提交(2PC)——(两阶段提交就是使用 XA 原理,由于是阻塞模式,基本不用)
    补偿事务(TCC)——(服务化的两阶段编程模型)
    本地消息表——(将分布式事务拆分成本地事务进行处理https://queue.acm.org/detail.cfm?id=1394128
    MQ 事务消息——(RocketMQ 中实现了分布式事务,实际上是对本地消息表的一个封装,将本地消息表移动到了 MQ 内部。)

    同步/异步:

    虽然同步刷盘/异步刷盘,同步/异步复制,并没有对 CAP 直接的应用,但在配置的过程中也一样涉及到可用性和一致性的考虑。
    异步不能保证一致性。同步就会阻塞,牺牲性能。

    引用:

    https://blog.csdn.net/wypblog/article/details/102493578

    相关文章

      网友评论

          本文标题:分布式CAP理论应用

          本文链接:https://www.haomeiwen.com/subject/ktvtmctx.html