Spring Cloud Alibaba Sentinel如何实现断路器功能及熔断降级策略?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3023个文字,预计阅读时间需要13分钟。
前言:Sentinel的熔断降级通过断路器实现,本文将介绍熔断器的定义、如何构建断路器、断路器校验逻辑、断路器状态转换、异常/慢调用熔断流量是如何统计等方面的工作原理。
前言
Sentinel的熔断降级通过断路器实现,本文通过介绍熔断器的定义、如何构建熔断器、断路器校验逻辑、断路器状态转换、异常/慢调用熔断流量是如何统计等方面梳理断路器的工作原理和实现方式。
一、断路器定义
Sentinel中的熔断降级使用断路器实现,先看下断路器概念,来自维基百科的定义:
断路器有分简单与较进阶的版本,简单的断路器只需要知道服务是否可用。而较进阶的版本比起前者更有效率。进阶的断路器带有至少三个状态:
- 关闭(Closed):断路器在预设的情形下是呈现关闭的状态,而断路器本身“带有”计数功能,每当错误发生一次,计数器也就会进行“累加”的动作,到了一定的错误发生次数断路器就会被“开启”,这个时候亦会在内部启用一个计时器,一旦时间到了就会切换成半开启的状态。
- 开启(Open):在开启的状态下任何请求都会“直接”被拒绝并且抛出异常讯息。
- 半开启(Half-Open):在此状态下断路器会允许部分的请求,如果这些请求都能成功通过,那么就意味着错误已经不存在,则会被“切换回”关闭状态并“重置”计数。倘若请求中有“任一”的错误发生,则会回复到“开启”状态,并且重新计时,给予系统一段休息时间。
说明:从概念中可以看出断路器的关键点在于统计流量与三种状态的转换。
本文共计3023个文字,预计阅读时间需要13分钟。
前言:Sentinel的熔断降级通过断路器实现,本文将介绍熔断器的定义、如何构建断路器、断路器校验逻辑、断路器状态转换、异常/慢调用熔断流量是如何统计等方面的工作原理。
前言
Sentinel的熔断降级通过断路器实现,本文通过介绍熔断器的定义、如何构建熔断器、断路器校验逻辑、断路器状态转换、异常/慢调用熔断流量是如何统计等方面梳理断路器的工作原理和实现方式。
一、断路器定义
Sentinel中的熔断降级使用断路器实现,先看下断路器概念,来自维基百科的定义:
断路器有分简单与较进阶的版本,简单的断路器只需要知道服务是否可用。而较进阶的版本比起前者更有效率。进阶的断路器带有至少三个状态:
- 关闭(Closed):断路器在预设的情形下是呈现关闭的状态,而断路器本身“带有”计数功能,每当错误发生一次,计数器也就会进行“累加”的动作,到了一定的错误发生次数断路器就会被“开启”,这个时候亦会在内部启用一个计时器,一旦时间到了就会切换成半开启的状态。
- 开启(Open):在开启的状态下任何请求都会“直接”被拒绝并且抛出异常讯息。
- 半开启(Half-Open):在此状态下断路器会允许部分的请求,如果这些请求都能成功通过,那么就意味着错误已经不存在,则会被“切换回”关闭状态并“重置”计数。倘若请求中有“任一”的错误发生,则会回复到“开启”状态,并且重新计时,给予系统一段休息时间。
说明:从概念中可以看出断路器的关键点在于统计流量与三种状态的转换。

