分布式理论

一、一致性

基于集群角度来考虑,如果集群中同步慢,会有多种情况

1、强一致性:集群中的两个节点数据必须一致

例如:从A节点新增一条数据后,我从B节点必须能够读到此数据,才算满足强一致性。通常使用分布式锁达到强一致性。代表算法为:paxos算法

2、弱一致性:集群中的两个节点数据可以不一致

相当于不需要一致性。

3、最终一致性:

通常遇到的都是最终一致性。

例如:从A节点新增一条数据后,我从B节点暂时没有读取到,稍后我读取到了,这就算满足了最终一致性。

包括mysql中的主从同步。

二、CAP理论

在设计和部署分布式系统时,存在三个明显的需求:

  1. C(Consistency)一致性。即分布式数据应该同步,保存一致。
  2. A(Availability)可用性。指系统能够很好的为用户提供服务,主要体现在用户访问之后能很
  3. 快的得到响应。
  4. P(Oartition Tolerance)分区容错性。若在系统运行过程中,有部分主机宕机,依然不会影响整个系统的运行。

CAP理论认为在一个系统中对某个数据不存在一个算法同时满足一致性,可用性,分区容错性。往往需要牺牲某一项来满足其他两项。

  • 满足CA的例子:MySQL
  • 满足CP的例子:Zookeeper(先同步数据,成功后再返回客户端响应)
  • 满足AP的例子:Eureka、redis(先返回客户端响应,再同步数据)

由于CAP定理限制了我们三者无法同时满足,这种情况,我们会选择尽量靠近CAP定理,即尽量让C、A、P都满足,在此大势所趋下,出现了BASE定理。

三、BASE理论

  1. Basically, Available(基本可用),支持分区失败。也就是说,在一定程度上牺牲了可扩展性。例如:响应时间变慢,限流,降级等
  2. Soft State(软状态),状态可以有一段时间不同步,异步同步。(允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性)
  3. Eventually Consistent(最终一致)。保证数据在最终是一致的,而无需保证实时数据一致。通常用mq来实现

BASE理论的核心思想:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的放松来使系统达到最终一致性

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值