go微服务框架kratos学习笔记十(熔断器)
目录 go微服务框架kratos学习笔记十(熔断器) 什么是熔断 熔断器逻辑 kratos Breaker kratos 熔断逻辑 kratos熔断器使用说明 bladmaster client breaker 配置说明 test go微服务框架kratos学习笔记十(熔断器) 什么是熔断 假设存在这样的调用链: 服务A -> 服务B -> 服务C 如果 服C crash 或者一些原因导致不可用, 服B 可能会阻塞很多线程/协程,如果短时间内大量积压,导致系统资源耗尽 服B 也变的不可用,同时连带 服A 一起崩溃,则将形成 雪崩 现象. 熔断一概念来自于电子工程中的断路器(circuit breaker) 在互联网中,当上游服务因为访问压力过大,可以暂时切断对下游服务的调用,以保护整体系统的可用性。 这种牺牲局部保全整体的措施叫做 熔断 . 熔断器逻辑 其他如 Spring Cloud Hystrix 中就实现了熔断机制 : 1、当熔断器开关打开时,会禁止请求,经过一段时间后,让一定请求通过测试服务是否健康,如果ok,切换熔断器状态到关闭状态,否则继续等待测试。 2、熔断器开关关闭时,请求被允许通过熔断器,熔断器会计算请求成功率,如果请求数量大于请求数量设置的阈值,并且成功率低于配置成功率,将切换熔断器到打开状态。 3、当熔断器开关处于打开状态, 经过一段时间后,