核心服务治理功能 | 青训营笔记

97 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天

1.服务发布:

服务发布:即指让一个服务升级运行行的代码的过程。 难点: 1.服务不可用 2.服务抖动 3.服务回滚

蓝绿部署:简单,稳定,但需要俩倍资源

2.流量治理

在微服务架构下,我们可以基于地区、集群、实例、请求等维度。

3.负载均衡

负载均衡负责分配请求在每个下游实例上的分布。 常见的LB策略: Round Robin Random Ring Hsh Least Request

4.稳定性治理

线上服务总会出问题,这与程序的正确性无关。

网络攻击 流量突增 机房断电等等等等

5.重试的意义:

可以避免掉偶发的错误,提高SLA。 降低错误率 降低长尾延时 容忍暂时性错误 避开下游故障实例

本地函数调用可能有的异常

参数非法 OOM NPE 边界case 系统崩溃 死循环 程序异常退出

远程函数调用可能有的异常

网络抖动 下游负载高导致超时 下游机器宕机 本地机器负载高,调度超时 下游熔断、限流

6.重试的难点:

幂等性 重试风暴 超时设置

7.重试策略

限制重试比例: 设定一个重试比例(例如1%),重试次数占所有请求比例不超过该阈值。 防止链路重试: 链路层次的防重试风暴的核心是限制每层都发生重试,理想情况下只有最下一层发生重试。可以返回特殊的status表明"请求失败,但别重试” Hedged requests 对于可能超时的请求,重新向另一个下游实例发送一个相同的请求,并等待先到达的响应

8.重试效果验证:

实际验证经过上述重试策略后,在链路上发生的重试放大效应。