• 软件体系架构阅读笔记(三)


    今天阅读的文章是《架构设计之CAP定理》,原文链接:https://mp.weixin.qq.com/s/BtHPlZOvy8HNK1TuOrDxLA。

        关于CAP定理,之前在数据库课程的学习中曾听老师讲过CAP定理的一些知识。在这篇文章中,作者主要讲的是CAP在分布式结构中的

    应用。现在稍微有点规模的互联网项目就都采用分布式结构了,一个系统可能有多个节点组成,每个节点都可能需要维护一份数据。关于如何维护

    各个节点之间的状态,如何保障各个节点之间的数据的同步问题就是所关注的重点问题了。CAP定理是分布式系统中最基础的原则,对于如何设计系统

    架构至关重要。

    什么是CAP定理?

        CAP定理又名布鲁尔定理,他提出对于一个分布式系统来说,不可能同时满足以下三点:Consisteny(一致性),Availablity(可用性)、Partition tolerance(分区容错性)

    ,也就是说任何分布式系统只能同时满足这三项中的两项。接下来再说下这三个属性的含义。

    图源自:https://mp.weixin.qq.com/s/BtHPlZOvy8HNK1TuOrDxLA

    1.一致性:一致性的要求是指,对于任何客户端来说,每次的读操作,都能获得最新的数据。也就是说,当有客户端向A节点写入了新数据后,其他客户端从B节点中进

    行读操作所获得的数据必须也是最新的,是与A节点数据保持一致的。

    2.可用性:可用性的要求是指,每个请求都能在合理的时间内获得符合预期的响应,但不能保证获取的结果是最新的数据。从上图中看,客户端只要向A节点或B节点发起请求后,

    只要这两个点收到了请求,就必须响应给客户端,但不能保证内容的正确性。

    3.分区容错性:分区容错性指的是,当节点之间的网络出现问题时,系统依然能够正常提供服务。

    CAP在分布式架构中的用法

         因为不能同时满足一致性、可用性、分区容错性这三个属性,所以有CA、CP、AP三种组合方式。在分布式系统中,网络是不可能保证百分百可靠的,所以P(分区容错性)是一个

    必须的选项。

        所以有两种可供我们选择的方案。1、CP架构,即放弃了可用性  2、AP架构,即放弃了一致性

    CAP使用的注意事项

        对于开发者而言,当我们构建服务的时候,就需要根据业务特性作出权衡考虑,哪些点是当前系统可以取舍的,哪些应该是重点保证的。即使在同一个系统中,不同模块的数据可

    能应用的CAP架构都是不同的。我们按照CAP定理,三个中只能取二,但并不代表我们只要保证其中的两点,而完全忽略第三点。我们应该为不能保障的第三点也做一些防备措施或

    冗余方案,来使系统更加的健全。

        

  • 相关阅读:
    mysql基础之日志管理(查询日志、慢查询日志、错误日志、二进制日志、中继日志、事务日志)
    jQuery1.9.1针对checkbox的调整
    管理 sendmail 的邮件队列
    将以管理员方式运行cmd运行方式放到win7任务栏
    转 git操作小结
    [转]前端CSS规范整理
    jQuery 1.9不支持$.browser 怎么判断浏览器类型和版本
    js闭包陷阱问题
    关于NGINX下开启PHP-FPM 输出PHP错误日志的设置(已解决)
    PHP中cURL错误号对照[转]
  • 原文地址:https://www.cnblogs.com/lwq666/p/11046746.html
Copyright © 2020-2023  润新知