美文网首页FS全栈计划Java 杂谈
分布式数据库与C.A.P.

分布式数据库与C.A.P.

作者: MaxZing | 来源:发表于2019-07-25 11:20 被阅读1次
    图片来自网络

    任何一个分布式数据库产品都无法达到C.A.P特点俱全,这是目前的结论。但是这个不代表这个只能三取其二,二是在3者中间找平衡点。

    那么首先介绍一下,CAP是什么

    • Consistency 一致性
      All clients see the same view of data, even right after update or delete
      即使在更新或删除后,所有客户端都会看到相同的数据视图

    • Availability 可用性
      All clients can find a replica of data, even in case of partial node failures
      即使出现部分节点故障,所有客户端都可以找到数据副本

    • Partitioning 容错性
      The system continues to work as expected, even in presence of partial network failure
      即使存在部分网络故障,系统也会按预期继续工作

    组合

    CP (一致性+容错性) —— 首先这个看起来很奇怪,其实是CP指的是仅在网络分区(存在互不可达的节点)的情况下牺牲可用性。

    CA (一致性+可用性) —— 一般指没有网络分区的的分布式服务,单节点虽然没有网络分区,但是不是分布式范畴内的。

    AP (可用性+容错性) —— 这种是指存在网络分区的分布式节点,可以做到可用性,但做不到实时一致性。

    常用数据库的划分

    从网上盗来一张图,是主流数据库的 CAP倾向

    针对数据的特性,选择相应的数据库,非常重要。

    注意事项

    对于一个分布式系统来说,CAP三者中,Partitioning是基本要求,只能通过基础设施提升,无法通过牺牲Consistency和Availability 某个,或者同时牺牲两个来提高。
    基本要求满足了,Consistency和Availability直接可以根据具体要求权衡实现。


    喜欢请点个赞
    转载请注明出处:https://www.jianshu.com/u/4915ed24d1e3
    如有错误,请务必不吝指正。谢谢
    我的博客:https://xzing.github.io/

    相关文章

      网友评论

        本文标题:分布式数据库与C.A.P.

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