分布式架构知识

分布式架构知识算法

本文力求从分布式基础理论,架构设计模式,工程应用,部署运维,业界方案这几大方面,介绍基于MSA(微服务架构)的分布式的知识体系大纲。从而对SOA到MSA进化有个立体的认识,从概念上和工具应用上更近一步了解微服务分布式的本质,身临其境的感觉如何搭建全套微服务架构的过程。数据库

SOA到MSA的进化设计模式

SOA面向服务架构

因为业务发展到必定层度后,须要对服务进行解耦,进而把一个单一的大系统按逻辑拆分红不一样的子系统,经过服务接口来通信,面向服务的设计模式,最终须要总线集成服务,并且大部分时候还共享数据库,出现单点故障的时候会致使总线层面的故障,更进一步可能会把数据库拖垮,因此才有了更加独立的设计方案的出现。网络

MSA微服务架构

微服务是真正意义上的独立服务,从服务入口到数据持久层,逻辑上都是独立隔离的,无需服务总线来接入,但同时增长了整个分布式系统的搭建和管理难度,须要对服务进行编排和管理,因此伴随着微服务的兴起,微服务生态的整套技术栈也须要无缝接入,才能支撑起微服务的治理理念。架构

一致性理论

咱们必须看一张关于一致性强弱对系统建设影响的对比图:并发

 

 

强一致性ACID

单机环境下咱们对传统关系型数据库有苛刻的要求,因为存在网络的延迟和消息丢失,ACID即是保证事务的原则,这四大原则甚至咱们都不须要解释出来就耳熟能详了:运维

  • Atomicity:原子性,一个事务中的全部操做,要么所有完成,要么所有不完成,不会结束在中间某个环节。
  • Consistency:一致性,在事务开始以前和事务结束之后,数据库的完整性没有被破坏。
  • Isolation:隔离性,数据库容许多个并发事务同时对其数据进行读写和修改的能力,隔离性能够防止多个事务并发执行时因为交叉执行而致使数据的不一致。
  • Durabilit:事务处理结束后,对数据的修改就是永久的,即使系统故障也不会丢失。

分布式一致性CAP

分布式环境下,咱们没法保证网络的正常链接和信息的传送,因而发展出了CAP/FLP/DLS这三个重要的理论:异步

  • CAP:分布式计算系统不可能同时确保一致性(Consistency)、可用性(Availablity)和分区容忍性(Partition)。
  • FLP:在异步环境中,若是节点间的网络延迟没有上限,只要有一个恶意的节点存在,就没有算法能在有限的时间内达成共识。
  • DLS:

(1)在一个部分同步网络的模型(也就是说:网络延时有界限可是咱们并不知道在哪里)下运行的协议能够容忍1/3任意(换句话说,拜占庭)错误;分布式

(2)在一个异步模型中的肯定性的协议(没有网络延时上限)不能容错(不过这个论文没有提起随机化算法能够容忍1/3的错误);微服务

(3)同步模型中的协议(网络延时能够保证小于已知d时间)能够,使人吃惊的,达到100%容错,虽然对1/2的节点出错能够发生的状况有所限制

弱一致性BASE

多数状况下,其实咱们也并不是必定要求强一致性,部分业务能够容忍必定程度的延迟一致,因此为了兼顾效率,发展出来了最终一致性理论BASE,BASE是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency)

  • 基本可用(Basically Available):基本可用是指分布式系统在出现故障的时候,容许损失部分可用性,即保证核心可用。
  • 软状态(Soft State):软状态是指容许系统存在中间状态,而该中间状态不会影响系统总体可用性。分布式存储中通常一份数据至少会有三个副本,容许不一样节点间副本同步的延时就是软状态的体现。
  • 最终一致性(Eventual Consistency):最终一致性是指系统中的全部数据副本通过必定时间后,最终可以达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊状况。

这些知识一部分知识,待之后学习其余内容在作补充。

参考:https://mp.weixin.qq.com/s/izSkX-_3EShQnhc9DZatKg

相关文章
相关标签/搜索