zoukankan      html  css  js  c++  java
  • 分布式特点理解-Zookeeper准备

    分布式环境特点

    分布性

    地域,区域,机房,服务器不同导致分布性

    并发性

    程序运行中,并发性操作很常见,比如同一个分布式系统中的多个节点,同时访问一个共享资源(数据库,分布式存储)

    无序性

    进程之间的消息通信,会出现顺序不一致的问题。

    分布式环境面临问题

    各个服务节点通信

    网络本身的不可靠,因此涉及到一些的网络通信问题(每一个分布式项目都必须面临问题)。

    网络分区(脑裂)

    当网络发生异常情况的时候,导致分布式系统中部分节点之间网络延时不断变大,最终导致组成分布式系统所有节点中,只有部分节点能够正常通信。分布式系统出现小集群问题

    三态问题

    分布式架构 成功,失败,超时【网络问题】三种状态

    分布式事务问题

    ACID(原子性,一致性,隔离性,持久性) => 事务特征

    原子性: 整个事务操作过程中,所有操作要不全部成功,要不就全部失败。

    一致性: 整个操作过程中所有数据操作前后保持一致

    隔离性: 事务和事务之间操作是完全隔离。

    持久性:事务一旦提交成功,所有数据不能更改。

    分布式理论:

    CAP

    Consistency (一致性) :数据在多个副本中时刻保持一致。

    强一致性: 同一个时刻,每一个节点中的数据都是一致的。

    弱一致性(最终一致性): 允许在一小个时间段内容,各个节点上面的数据部分不一致,但是最终得到结果是一致的。(消息队列,异步方式)

    Availability (可用性)

    系统总能在规定时间内,处理完用户的请求。

    Partition Tolerance(分区容错)【最典型的的脑裂问题】

    分布式系统在遇到任何网分区故障的时候,仍然需要保证对外提供满足一致性和可用性的服务。

    一个分布式系统中无法满足以上三个条件,只能满足2个

    放弃P=> 将所有的数据都在一个分布式节点上面[单点故障],放弃系统扩展性问题。(分区容错在分布式系统中是必须存在的)

    PA 放弃强一致性,保留数据的最终一致性,承诺一个时间让数据达到一致状态

    PC 放弃可用性, 系统一旦出现故障问题,在系统故障恢复期间是无法对外提供服务的。

    只针对非关系型数据库(NOSQL)

    Base

    Bascially Avaliable(基本可用)

    允许损失部分可用性,保证核心业务可用。

    Soft-State (软状态/弱性事务)

    系统中存在一个中间的状态,这个中间状态不会影响系统整体可用。(使用异步方式处理)

    Eventually Consistency(最终一致性)

    允许在一小个时间段内容,各个节点上面的数据部分不一致,但是最终得到结果是一致的。

    中心化和去中心化

    中心化: 分布式系统中每一个节点按照角色分工(zk集群,leader,follower,observer)

    存在最大的问题:领导出现故障,导致集群问题。

    主备.(潜在问题: 领导管理能力问题)

    zookeeper/etcd

    去中心化: 最重要的问题是脑裂问题。leader不是固定的,如果leader出现问题,会动态选出新的leader也可以理解成去中心化

  • 相关阅读:
    java实现亲密数
    java实现亲密数
    java实现亲密数
    java实现亲密数
    java实现坐标
    java实现坐标
    java实现坐标
    java实现坐标
    java实现坐标
    spring中注解注入 context:component-scan 的使用说明
  • 原文地址:https://www.cnblogs.com/lm970585581/p/10237440.html
Copyright © 2011-2022 走看看