zookeeper学习记录一分布式系统面临的问题

分布式环境面临的问题

  1. 通信异常
    分布式系统需要在各节点之间进行网络通信,因此每次网络通信都会伴随着网络不可用的风险;即使各节点之间的网络通信正常,其延时也远大于单机系统。
  2. 网络分区
    当网络由于发生异常情况,导致分布式系统中部分节点之间的网络延迟延时不断增大,最终导致组成分布式系统的所有节点中,只要部分节点之间能够进行正常通信,而另一些节点则不能–这种现象称为网络分区,俗称"脑裂"。当网络分区时分布式系统会出现局部小集群,在极端情况下,这些局部小集群会独立完成原本需要整个分布式系统才能完成的功能,包括对数据的事务处理,这就对分布式一致性提出了巨大挑战。
  3. 三态
    成功、失败、超时。
  4. 节点故障

从ACID到CAP/BASE

ACID
  1. 原子性
  2. 一致性
  3. 隔离性

事务的隔离性指在开发环境中,并发的事务是相互隔离的,一个事务执行不能被其他事务干扰。

在标准的SQL规范中,定义了4个事务的隔离级别,不同级别对事务的处理不同,如未授权读取(读未提交),授权读取(读已提交),可重复读和串行化。
举例: 事务A和事务B同时进行。
可重复读:就是保证在事务处理过程中,多次读取同一个数据时,其值都和事务开始时刻一致。禁止了不可重复度和脏读,但可能出现幻影数据,所谓幻影数据,就是指同样的事务操作,在前后两个时间段内执行对同一个数据项的读取,可能出现不一致的结果。
在这里插入图片描述

  1. 持久性
CAP定理

CAP理论告诉我们:一个分布式系统不可能同时满足一致性(C:Consistency)、可用性(A: Availability)、分区容错性(P:Partition tolerance)这三个基本需求,最多只能同时满足其中两项。
一致性:在分布式环境下,一致性是指数据在多个副本之间是否能够保持一致的特性。
可用性:指系统提供的服务必须一直处于可用的状态,对于用户的每一个操作请求总是能够在有限的时间内返回结果。
分区容错性:分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务,除非是整个网络环境发生故障。
分区容错性是一个分布式系统最基本的要求,所以架构设计者需要根据业务特点在C和A之间寻求平衡。

BASE理论

BASE是Basically Avalilable(基本可用),Soft state(软状态)和Eventually consistent(最终一致性)三个短语的简写。
BASE是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,其核心思想是即使无法做到强一致性,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。
基本可用:指分布式系统在出现不可预知故障的时候,允许损失部分可用性,但不等价于系统不可用。可以响应时间上损失或功能上损失。
弱状态:弱状态称为软状态,允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。
最终一致性,强调系统的所有数据副本,在经过一段时间的同步后,最终能够达到一致状态。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值