分布式服务治理之服务链路追踪

服务链路追踪

什么是服务链路追踪

分布式微服务架构上是通过业务来划分服务的,通过Rest调用对外暴露一个接口,可能需要很多服务协同才能完成这个接口的功能。

如果链路上任何一个服务出现问题或者出现网络超时,都会导致接口调用失败。随着业务的扩张,接口调用会越来越复杂。

image-20220412151845220
image-20220412151845220

Terwer...大约 4 分钟后端开发分布式rpcservicelinktracking
分布式服务治理之服务熔断

服务熔断

什么是服务熔断

牺牲局部,保存整体的措施叫做熔断。

不采取熔断的后果,例子:

image-20220412134933476
image-20220412134933476

一旦下游服务C变的不可用,积压了大量请求,服务B的请求也会随之阻塞。


Terwer...大约 3 分钟后端开发分布式rpcservicefusing
分布式服务治理之服务限流

服务限流

什么是服务限流

限流就是为了提供稳定的服务,限制使用人数。

限流的目的是通过对并发请求进行限速,或者对一个时间窗口内的请求数量进行限速来保护系统。

一旦达到限制速率可以拒绝服务、排队或者等待。

image-20220412105549096
image-20220412105549096

Terwer...大约 2 分钟后端开发分布式rpcserviceflowlimitation
分布式服务治理之服务降级

服务降级

什么是服务降级

在服务器压力剧增的情况下,对一些服务和页面进行有策略的不处理或者换种简单的方式处理,从而释放服务器资源以保证核心服务正常运作或者高效运作。

image-20220412102051842
image-20220412102051842

当架构整体的负载超过了预设的上线阈值,或者即将到来的流量预计将会超过预设的阈值时,为了保证重要的基本服务能够正常运行,可以将一些不重要或者不紧急的服务或任务进行延迟使用或者暂停使用。


Terwer...大约 2 分钟后端开发分布式rpcservicedegradation
分布式服务治理之服务削峰

服务削峰

为什么要进行服务削峰

为了应对瞬间高并发的流量。

流量削峰的方案

  1. 消息队列解决削峰

    用消息队列缓存瞬时流量,把同步的直接调用转换为异步的间接推送,中间通过队列在一端承接瞬时流量洪峰,在另一端将消息平滑的推送出去。

    image-20220412094841286
    image-20220412094841286

Terwer...大约 1 分钟后端开发分布式rpcservicepeak
分布式系统设计策略之高可用

高可用

高可用HA设计

高可用(Hign Availability)是系统架构中必须考虑的因素之一,指的是,经过设计来减少系统不能提供服务的时间。

image-20220410230934957
image-20220410230934957

系统高可用性的设计模式通常有三种:主备(master-slave)、互备(active-active)和集群(cluster)。


Terwer...大约 4 分钟后端开发分布式rpcavailability
分布式服务治理之服务协调

分布式服务治理

服务协调

分布式协调主要用来解决分布式环境中多个进程之间的同步,让他们有序的去访问临界资源,防止造成脏数据的后果。

image-20220411233413739
image-20220411233413739

分布式锁是分布式协调技术的核心内容。


Terwer...大约 2 分钟后端开发分布式rpclock
分布式架构服务调用

分布式架构服务调用

服务调用

和传统单体架构相比,分布式多了一个远程服务之间的通信,不管soa还是微服务,本质都是对业务服务的提炼和复用。

远程服务之间的调用,才是实现分布式的关键因素。

image-20220411220220544
image-20220411220220544

Terwer...大约 4 分钟后端开发分布式rpcservicecall
分布式一致性协议之Lease机制

Lease机制

什么是Lease机制

Lease机制,就是租约机制,是一种在分布式协议中常用的协议,是维护分布式系统中数据一致性的常用工具。

Lease机制的特点:

  • Lease是颁发者对一段时间内数据一致性的承诺
  • 颁发者发出Lease后,不管是否被接受,只要Lease不过期,颁发者都会按照协议,遵守承诺
  • Lease的持有者只能在Lease的有效期内使用承诺,一旦Lease超时,持有者需要放弃执行,重新申请Lease。

以租车为例:

image-20220409144750794
image-20220409144750794

Terwer...大约 3 分钟后端开发分布式rpclease
分布式一致性协议之Raft协议

Raft协议

什么是Raft协议

Paxos论证了一致性协议的可行性,但是不好懂,缺少必要的细节,工程实现难度高。广为人知的实现目前只zk的zab协议。

Paxos的出现为分布式的强一致性提供了很好的理论基础,但是paxos协议本身理解起来困难,实现复杂。

斯坦福大学的RamCloud项目中提出了易理解、易实现的分布式一致性复制协议Raft。C++、Java和Go都有对应的实现,Raft相对简洁。

引入主节点、通过竞选确认主节点。节点;类型:follower、candidate和leader。

leader会周期性的发送心跳包给follower。每个follower设置一个随机的竞选超时时间,一般为150~300ms,如果在这个时间内没有收到心跳包,就会变成candidate。进入竞选阶段,通过竞选阶段投票人多的成为leader。


Terwer...大约 4 分钟后端开发分布式rpcraft
2
3