分布式协调服务基本概念

  1. 分布式环境的特点
  • 分布性
  • 并发性
    程序运行过程中,并发性操作是很常见的,比如同一个分布式系统中的多个节点,同时访问一个共享资源,数据库、分布式存储
  • 无序性
    进程直接的消息通信,会出现顺序不一致的问题
  1. 分布式环境下面临的问题
  • 网络通信
    网络通信的不可靠性
  • 网络分区(脑裂)
    当网络发生异常导致分布式系统中部分节点之间的网络延时不断增大,最终导致组成分布式架构的所有节点,只用部分节点能够正常通信
  • 三态
    在分布式架构里面,除了成功、失败还有超时
  • 分布式事物
    ACID(原子性、一致性、隔离性、持久性)
  1. 中心化和去中心化
  • 冷备或者热备
  • 分布式架构里面,很多架构思想采用的是:当集群发生故障的时候,集群中的人群会自动"选举"出一个新的领导,最典型的是:zookeeper/etcd
  1. 经典的CAP/BASSE理论
  • CAP
    • C(一致性 Consistency):所有节点上的数据时刻保持一致
    • A(可用性 Availability):每个请求都能够收到一个响应。无论响应成功或者失败
    • P(分区容错性 Partition-tolerance):表示系统出现脑裂以后,可能导致某些server与集群中的其他机器失去联系
    • CP/AP?
    • CAP理论仅适用于原子读写的NoSQL场景,不适用于数据库系统
  • BASE
    • 基于CAP理论,CAP理论并不适用于数据库事务(因为更新一些错误的数据而导致数据出现絮乱,无论什么样的数据库高可用方案都是徒劳),虽然XA事物可以保证数据库在分布式系统下ACID特性,但是会带来性能方面的影响
    • ebay 尝试了一种完全不同的侧略,放松了对事务ACID的要求,提出了BASE理论
    • BA (Basically available 基本可用):数据库采用分片模式,把100w的用户数据数据分布在5个实例上,如果被破坏了其中的一个实例,仍然可以保证80%的用户可用
    • S(soft-state 软状态):在基于client-server模式的系统中,server端是否有状态,决定了系统是否具有良好的水平扩展、负载均衡、故障恢复等特性,Server端会承诺维护client端状态数据,这个状态仅仅维持一小段时间,这段时间后,server就会丢弃这个状态,恢复正常状态
    • E(Eventually consistent 最终一致性): 强调的是所有的数据副本,在经过一段时间的同步之后,最终都能够达到一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。
    • 总的来说,BASE理论面向的是大型高可用可扩展的分布式系统,和传统的事物ACID特性是相反的,它完全不同于ACID的强一致性模型,而是通过牺牲强一致性来获得可用性,并允许数据在一段时间内是不一致的,但最终达到一致状态。但同时,在实际的分布式场景中,不同业务单元和组件对数据一致性的要求是不同的,因此在具体的分布式系统架构设计过程中,ACID特性和BASE理论往往又会结合在一起。

版权声明:本文为qq_25385555原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。