分布式架构知识体系

1.问题

  • 1、何为分布式何为微服务/p>

  • 2、为什么需要分布式/p>

  • 3、分布式核心理论基础,节点、 络、时间、顺序,一致性/p>

  • 4、分布式是系统有哪些设计模式/p>

  • 5、分布式有哪些类型/p>

  • 6、如何实现分布式/p>

2.关键词

节点,时间,一致性,CAP,ACID,BASE,P2P,机器伸缩, 络变更,负载均衡,限流,鉴权,服务发现,服务编排,降级,熔断,幂等,分库分表,分片分区,自动运维,容错处理,全栈监控,故障恢复,性能调优

3.全文概要

4.基础理论

4.1SOA到MSA的进化

SOA面向服务架构

由于业务发展到一定层度后,需要对服务进行解耦,进而把一个单一的大系统按逻辑拆分成不同的子系统,通过服务接口来通讯,面向服务的设计模式,最终需要总线集成服务,而且大部分时候还共享数据库,出现单点故障的时候会导致总线层面的故障,更进一步可能会把数据库拖垮,所以才有了更加独立的设计方案的出现。

4.2节点与 络

节点

传统的节点也就是一台单体的物理机,所有的服务都揉进去包括服务和数据库;随着虚拟化的发展,单台物理机往往可以分成多台虚拟机,实现资源利用的最大化,节点的概念也变成单台虚拟机上面服务;近几年容器技术逐渐成熟后,服务已经彻底容器化,也就是节点只是轻量级的容器服务。总体来说,节点就是能提供单位服务的逻辑计算资源的集合。

分布式架构的根基就是 络,不管是局域 还是公 ,没有 络就无法把计算机联合在一起工作,但是 络也带来了一系列的问题。 络消息的传播有先后,消息丢失和延迟是经常发生的事情,我们定义了三种 络工作模式:

同步 络

  • 节点同步执行

  • 消息延迟有限

  • 高效全局锁

半同步 络

  • 锁范围放宽

异步 络

  • 节点独立执行

  • 消息延迟无上限

  • 无全局锁

  • 部分算法不可行

    常用 络传输层有两大协议的特点简介:

TCP协议

  • 首先tcp尽管其他可以更快

  • tcp解决重复和乱序问题

UDP协议

  • 常量数据流

  • 丢包不致命

4.3时间与顺序

时间

慢速物理时空中,时间独自在流淌着,对于串行的事务来说,很简单的就是跟着时间的脚步走就可以,先来后到的发生。而后我们发明了时钟来刻画以往发生的时间点,时钟让这个世界尽然有序。但是对于分布式世界来说,跟时间打交道着实是一件痛苦的事情。分布式世界里面,我们要协调不同节点之间的先来后到关系,但是不同节点本身承认的时间又各执己见,于是我们创造了 络时间协议(NTP)试图来解决不同节点之间的标准时间,但是NTP本身表现并不如人意,所以我们又构造除了逻辑时钟,最后改进为向量时钟:

NTP的一些缺点,无法完全满足分布式下并发任务的协调问题

  • 节点间时间不同步

  • 硬件时钟漂移

  • 线程可能休眠

  • 操作系统休眠

  • 硬件休眠

向量时钟

  • t_i’ = max(t_i, t_msg_i)

原子钟

顺序

有了衡量时间的工具,解决顺序问题自然就是水到渠成了。因为整个分布式的理论基础就是如何协商不同节点的一致性问题,而顺序则是一致性理论的基本概念,所以前文我们才需要花时间介绍衡量时间的刻度和工具。

4.4一致性理论

说到一致性理论,我们必须看一张关于一致性强弱对系统建设影响的对比图:

分布式技术栈使用中间件:

更多技术交流尽在微信群:

分布式架构知识体系

文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8588 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年2月12日
下一篇 2019年2月12日

相关推荐