微服务02:怎样解决大概说低落架构复杂度?

打印 上一主题 下一主题

主题 833|帖子 833|积分 2499

1.什么是CAP

         CAP定理,也被称为Brewer定理,是分布式盘算中的一个紧张概念。它由盘算机科学家Eric Brewer于2000年提出,并由Seth Gilbert和Nancy Lynch于2002年正式证明。
CAP定理强调了分布式系统三个关键属性之间的固有权衡,这三个属性分别是:

  • 一致性(Consistency)
  • 可用性(Availability)
  • 分区容忍性(Partition Tolerance)
以下是CAP定理的具体解释:

  • 一致性(Consistency)
         
    • 在分布式系统中,一致性意味着系统中的全部节点在同一时间看到雷同的数据
         
    • 换句话说,当发生写操纵时全部后续的读操纵都应反映该写操纵
         
    • 一致性保证了数据的同步性
        

  • 可用性(Availability)
         
    • 可用性指的是系统中每个节点对读和写请求的相应能力,即使一些节点经历故障或延迟。
         
    • 可用性系统确保请求得到相应,但不保证它包含最新的写入
         
    • 在一个高可用的系统中,即使某些节点出现故障,用户仍然能够提交请求并得到相应。
        

  • 分区容忍性(Partition Tolerance)
         
    • 分区容忍性涉及系统在发生网络分区(通信失败)时继续运行和提供服务的能力。
         
    • 它意味着系统可以容忍消息的丢失或节点间通信的延迟
         
    • 在分布式系统中,节点之间的网络通信大概会发生故障,导致节点之间无法直接通信,形成网络分区。
        

        CAP定理的焦点思想是,一个分布式系统最多只能同时实现这三个属性中的两个。具体来说,系统设计者必须在以下三者之间做出权衡:


  • 一致性与可用性 :假如系统选择一致性和可用性,那么它会牺牲分区容忍性。在这种情况下,系统在发生网络分区时大概会停止服务,直到网络规复以确保数据的一致性和系统的可用性。传统的关系型数据库(如MySQL、PostgreSQL)通常属于这一种别。

  • 一致性与分区容忍性 :假如系统选择一致性和分区容忍性,那么它会牺牲可用性。在网络分区发生时,系统会优先保证数据的一致性,即使这意味着在分区期间无法提供服务。HBaseZookeeper等系统在某些设置下可以保证一致性和分区容忍性。

  • 可用性与分区容忍性 :假如系统选择可用性和分区容忍性,那么它会牺牲一致性。在网络分区发生时,系统会继续处理处罚请求,即使这大概导致数据的不一致。这种系统通常依赖于“最终一致性”模子,即数据在一定时间内会到达一致性状态DynamoDBCassandra等NoSQL数据库系统在设计时会优先保证可用性和分区容忍性。
一、为什么必须要保证分区容错性?(Base理论)

         BASE理论由eBay的架构师提出,是对CAP理论的一种延伸和补充。CAP理论指出,一个分布式系统不大概同时满足一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)这三个属性。而BASE理论则提供了一种新的视角,即在无法做到强一致性的情况下,每个应用都可以根据自身的业务特点,接纳恰当的方式来使系统到达最终一致性。
BASE理论包含三个焦点要素:

  • 根本可用(Basically Available)
         
    • 系统保证在出现故障或部门失效的情况下仍然可以保证根本的可用性。这意味着固然系统大概无法保证100%的可用性,但是它仍然会积极保证在任何时候都能够提供根本的服务
         
    • 根本可用通常允许系统在出现故障时部门功能暂时失效,但其他功能仍然可以正常工作。
        

  • 软状态(Soft State)
         
    • 系统中的数据状态可以在一段时间内是不一致的,即系统中的数据副本大概存在短暂的冲突或差别步。这种状态是暂时的,系统会通过后续的处理处罚来逐渐将数据状态调解为一致。
         
    • 软状态允许系统中的数据存在中心状态,并以为该状态不影响系统的团体可用性。
        

  • 最终一致性(Eventually Consistent)
         
    • 系统的数据最终会到达一致的状态,但在某个时间点上大概存在不一致的情况。分布式系统中的差别节点大概具有差别的数据副本,而这些副本之间的同步需要一定的时间。
         
    • 最终一致性要求系统在一定时间范围内能够到达数据的一致性,允许在同步过程中存在短暂的不一致状态。
        

二、BASE理论的应用场景

BASE理论实用于大型高可用、可扩展的分布式系统。与传统ACID(原子性、一致性、隔离性、长期性)特性相反,BASE理论通过牺牲强一致性来得到可用性,并允许数据在短时间内的不一致,但最终到达一致状态。
在实际应用中,BASE理论常用于以下场景:

  • 电子商务网站
         
    • 在高峰期,为了保护购物系统的稳固性,部门消耗者大概会被引导到一个降级页面,但其他功能(如欣赏商品)仍然可以正常使用。
         
    • 允许异步的数据复制方式,将数据副本在后台进行异步同步,从而提高系统的相应性能和可用性。
        

  • 社交媒体平台
         
    • 用户需要及时地与其他用户进行互动,并获取最新的信息更新。
         
    • 可以接纳缓存技术和分布式数据存储,以加快数据访问和查询。
         
    • 在一致性方面,可以接纳最终一致性的策略,即用户可以看到稍有延迟的最新数据。
        

  • 金融交易系统
         
    • 数据的一致性和可靠性至关紧张。
         
    • 但在某些情况下,为了提高性能和可用性,大概会接纳最终一致性的策略,并通过其他手段(如分布式事务)来确保关键数据的一致性
        

三、BASE理论与CAP理论的关系

         BASE理论是对CAP理论的一种延伸和补充CAP理论强调了分布式系统中三个关键属性之间的固有权衡,而BASE理论则提供了一种新的视角息争决方案。具体来说:


  • CAP理论指出,一个分布式系统不大概同时满足一致性、可用性和分区容忍性这三个属性。

  • BASE理论则强调,在无法做到强一致性的情况下,可以通过牺牲部门一致性来得到更高的可用性和灵活性。

  • BASE理论中的根本可用、软状态和最终一致性三个要素,正是对CAP理论中一致性、可用性和分区容忍性权衡的结果。
四、BASE理论的优缺点

优点

  • 提高了系统的可用性和灵活性 :通过牺牲部门一致性,BASE理论允许系统在出现故障或部门失效的情况下

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

老婆出轨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表