第四节 服务的降级、限流、熔断与灰度

2022-01-10  本文已影响0人  农民工进城

本章要点

1.服务降级设计

当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作。

目的:保证核心服务可用,非核心服务弱可用或甚至不可用
手段: 1)拒绝部分请求; 2)关闭部分服务

image.png

服务层面进行分级别,按照服务的重要性进行降级。

2.服务限流设计

限流模式主要是提前对各个类型的请求设置最高的QPS阈值,若高于设置的阈值则对该请求直接返回,不再调用后续资源

常用的限流算法有两种:令牌桶算法和漏桶算法

2.1 令牌桶算法
2.2 漏桶算法
2.3 限流应用
2.3.1 网关层限流
2.3.1 业务层限流

3.服务熔断设计

在分布式的环境或者微服务中,不可避免的会出现一些错误,一个服务的失败或许会导致整个项目的失败。熔断就是通过添加容错逻辑来保护或者控制你的分布式服务之间的交互,通过隔离服务之间的访问点,阻止它们之间的级联故障以及提供后备选项来实现这一目标,所有这些都可以提高系统的整体弹性。
限流模式主要是提前对各个类型的请求设置最高的QPS阈值,若高于设置的阈值则对该请求直接返回,不再调用后续资源

熔断框架:Hystrix,Sentinel,Resilience4j等

4.服务发布

4.1 服务发布策略

发布策略:蓝绿发布、滚动发布、灰度发布

蓝绿发布

蓝绿发布:同时运行新旧两个版本的应用,当新版本服务出现问题时,切换到老版本服务。

滚动发布( Rolling Release )

滚动发布:在升级过程中,并不一下子启动所有新版本;而是分批次部署新版本应用,直到集群升级完成

灰度发布(金丝雀发布)

灰度发布:是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用旧系统,一部分用户开始用新系统,如果用户对新系统没有什么反对意见,那么逐步扩大范围,流量逐渐迁移到新系统上来,把所有用户都迁移到新系统上来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。

4.2 灰度发布设计
image.png image.png
上一篇 下一篇

猜你喜欢

热点阅读