服务恢复正常

简介: 【8月更文挑战第19天】

一个服务熔断之后要考虑恢复,比如说如果我们判断一个服务响应时间过长,进入了熔断状态。那么十分钟过后,已接收的请求都已经被处理完了,即服务恢复正常了,那么他就要退出熔断状态,继续接收新请求。

因此在触发熔断之后,就要考虑检测服务是否已经恢复正常。
大多数的微服务框架都是触发熔断之后保持一段时间,比如说一分钟,一分钟之后就认为服务已经恢复正常,继续处理新请求。

抖动就是服务频繁地在正常 - 熔断两个状态之间切换。
引起抖动的原因是多样的,比如前面提到的一旦超过阈值就进入熔断状态,或者我们这里说的恢复策略不当也会引起抖动。再比如刚刚提到的“一分钟后就认为服务已经恢复正常,继续处理新请求”就容易引发抖动问题。
如果熔断本身是高并发引起的,在一分钟后,并发依旧很高,这时候一旦直接恢复正常,然后高并发的流量打过来,服务是不是又会触发熔断

而要解决这个抖动问题,就需要在恢复之后控制住流量,比如按照10%、20%、30%……逐步递增,而不是立刻恢复100%的流量

显然这种做法还是不够好,因为在这种逐步放开流量的措施下,依旧有请求因为熔断不会被处理。那么一个自然的想法就是,能不能让客户端来控制这个流量?简单来说就是服务端触发熔断之后,客户端就直接不再请求这个节点了,而是换一个节点。等到恢复了之后,客户端再逐步对这个节点放开流量

目录
相关文章
|
1月前
|
弹性计算 Linux Shell
宕机自动恢复服务
在服务或脚本运行过程中,可能会因为程序异常、服务器重启或掉电等原因停止运行,导致业务受损。通过使用云助手插件 `ecs-tool-servicekeepalive`,可以在服务或脚本被中断时快速恢复运行,确保其可靠性和持续性。该插件基于 Linux 系统的 systemd service 实现,用户只需输入启动命令即可自动生成 systemd service 配置,无需手动配置。具体实践包括启动插件、查看配置状态及取消自恢复等功能。
|
2月前
|
存储 SQL 分布式计算
|
2月前
|
运维 监控 定位技术
故障转移和自动恢复
故障转移和自动恢复
|
11月前
|
监控 安全 数据安全/隐私保护
服务器数据恢复—如何预防服务器故障?发生故障后如何恢复服务器数据?
服务器常见故障: 硬件故障:磁盘、板卡、电源故障等。 软件故障:操作系统崩溃、程序运行错误等。 入侵破坏:加密、删除服务数据等。 不可控力:浸水、火烧、倒塌等。 误操作:格式化、删除、覆盖等。
|
运维 监控
WGCLOUD运维监控方案 - 如何设置主机10分钟内恢复正常就不进行提醒
这个,我们只要把agent上报时间改成10分钟就好了
|
分布式计算 Hadoop 开发者
掉线时限参数设置| 学习笔记
快速学习掉线时限参数设置
141 0
掉线时限参数设置| 学习笔记
|
监控 API
为什么系统越简单,宕机时间越少?
当新的需求出现时,我们总是倾向于通过其它方式或在现有系统上集成添加新功能。实际上,我们应考虑是否可以通过改变核心系统来满足新的需求。
|
运维
服务挂了,怎么自动恢复?
架构设计上,避免单点,使用故障自动转移固然能够保证系统的高可用,是否还有其他的方案,让挂掉的服务自动启动呢,这里给大伙推荐一个常见的运维工具 supervisor。
1050 0