zoukankan      html  css  js  c++  java
  • 分布式基本概念

      从这周开始深入学习Zookeeper,主要是看PAXOS到ZOOKEEPER分布式一致性理论与实践以及Zookeeper3.5的源码,在整个学习过程中会整理一些学习笔记。

      1.分布式基本概念

      2.一致性协议

      分布式系统是一个硬件或者软件组件分布在不同网络计算机上,彼此之间仅仅通过消息传递来进行通信和协调的系统。一个分布式系统通常具有以下特点:

    • 分布式:在空间上随意分布,
    • 对等性:组成分布式系统的所有节点都是对等的。
    • 并发性
    • 缺乏全局时钟。在分布式系统很难确定多个时间的顺序,原因就是分布式系统缺乏一个全局的时钟。
    • 故障总是会发生。

      分布式系统体系机构面对着诸多的难题和挑战:

    • 通信异常:分布式系统需要在各个节点之间进行网络通信,而网络本身是不可靠的。
    • 网络分区:当网络由于发生异常情况,最终导致组成分布式系统的所有节点,只有部分节点之间能够进行通信,另一些节点则不能。这种现象称为网络分区,俗称脑裂。
    • 三态:分布式系统的每一次请求与响应存在特有的三态概念,即成功、失败、超时。
    • 节点故障:指组成分布式系统的服务器节点出现的宕机或“僵死”现象。

    从ACID到CAP/BASE

    ACID

      事务是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元,一个数据库事务具有以下四个特性:

    • 原子性(Atomicity):指事务必须是一个原子的操作序列单元。在执行过程中要么全部执行,要么全部不执行。
    • 一致性(Consistency):事务的执行不能破坏数据库的完整性和一致性,事务在执行前后数据库必须处于一致的状态。
    • 隔离性(Isolation):并发的事务是互相隔离的,一个事务的执行不能被其他事务干扰。标准的SQL规范中,定义了4个事务隔离级别:Read Uncommitted、Read Committed、Repeatable Read和Serializable。MySQL的默认隔离级别是:Repeatable Read,Oracle的默认隔离级别是:READ COMMITTED。
    • 持久性(Durability):指一个事务一旦提交,它对数据库中对应数据状态的变更是永久性的。

    分布式事务 

      分布式事务是指事务的参与者、支持者的服务器、资源服务器以及事务管理器分别位于分布式系统的不同节点之上。通常一个分布式事务中涉及对过个数据源或者业务系统的操作。

      CAP理论:一个分布式系统不可能同时满足一致性(C:Consistency)、可用性(A:Availability)可分区容错性(P:Partition tolerance)。

    • 一致性:一致性是数据在过个副本之间是否能够保持一致的特性。
    • 可用性:指系统提供的服务必须一致处于可用的状态。
    • 分区容错性:分布式系统在遇到任何网络分区的故障时候。仍然需要能够保证对外提供满足一致性和可用性的服务。

      BASE是Basically Available(基本可用)、Soft state(软状态)、Eventually Consistency(最终一致性)。

    • 基本可用:指分布式系统在出现不可预知的故障时允许损失部分可用性。
    • 软状态:是指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许在不同节点的数据副本之间存在数据同步的延时
    • 最终一致性:系统中的所有数据副本,在经过一段时间的同步后,最终能够到达一个一直的状态。
  • 相关阅读:
    帧同步与状态同步
    撸个服务端出来系列(五)
    撸个服务端出来系列(四)
    撸个服务端出来系列(三)
    撸个服务端出来系列(二)
    新博客手机适配的问题
    撸个服务端出来系列(一)
    高性能事件分发器,lua 版
    cocos2dx lua UI栈
    cocos2dx3.x+cocostudio多屏幕分辨率适配解决方案(干货)
  • 原文地址:https://www.cnblogs.com/wxgblogs/p/8046505.html
Copyright © 2011-2022 走看看