分布式架构知识算法
本文力求从分布式基础理论,架构设计模式,工程应用,部署运维,业界方案这几大方面,介绍基于MSA(微服务架构)的分布式的知识体系大纲。从而对SOA到MSA进化有个立体的认识,从概念上和工具应用上更近一步了解微服务分布式的本质,身临其境的感觉如何搭建全套微服务架构的过程。数据库
SOA到MSA的进化设计模式
因为业务发展到必定层度后,须要对服务进行解耦,进而把一个单一的大系统按逻辑拆分红不一样的子系统,经过服务接口来通信,面向服务的设计模式,最终须要总线集成服务,并且大部分时候还共享数据库,出现单点故障的时候会致使总线层面的故障,更进一步可能会把数据库拖垮,因此才有了更加独立的设计方案的出现。网络
微服务是真正意义上的独立服务,从服务入口到数据持久层,逻辑上都是独立隔离的,无需服务总线来接入,但同时增长了整个分布式系统的搭建和管理难度,须要对服务进行编排和管理,因此伴随着微服务的兴起,微服务生态的整套技术栈也须要无缝接入,才能支撑起微服务的治理理念。架构
咱们必须看一张关于一致性强弱对系统建设影响的对比图:并发
单机环境下咱们对传统关系型数据库有苛刻的要求,因为存在网络的延迟和消息丢失,ACID即是保证事务的原则,这四大原则甚至咱们都不须要解释出来就耳熟能详了:运维
分布式环境下,咱们没法保证网络的正常链接和信息的传送,因而发展出了CAP/FLP/DLS这三个重要的理论:异步
(1)在一个部分同步网络的模型(也就是说:网络延时有界限可是咱们并不知道在哪里)下运行的协议能够容忍1/3任意(换句话说,拜占庭)错误;分布式
(2)在一个异步模型中的肯定性的协议(没有网络延时上限)不能容错(不过这个论文没有提起随机化算法能够容忍1/3的错误);微服务
(3)同步模型中的协议(网络延时能够保证小于已知d时间)能够,使人吃惊的,达到100%容错,虽然对1/2的节点出错能够发生的状况有所限制
多数状况下,其实咱们也并不是必定要求强一致性,部分业务能够容忍必定程度的延迟一致,因此为了兼顾效率,发展出来了最终一致性理论BASE,BASE是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency)
这些知识一部分知识,待之后学习其余内容在作补充。
参考:https://mp.weixin.qq.com/s/izSkX-_3EShQnhc9DZatKg