Hystrix工作流程与高级应用

在这里插入图片描述

  1. 当调用出现问题时,开启一个时间窗(10s)
  2. 在这个时间窗内,统计调用次数是否达到最小请求数?
    如果没有达到,则重置统计信息,回到第1步
    如果达到了,则统计失败的请求数占所有请求数的百分比,是否达到阈值?
    如果达到,则跳闸(不再请求对应服务)
    如果没有达到,则重置统计信息,回到第1步
  3. 如果跳闸,则会开启一个活动窗口(默认5s),每隔5s,Hystrix会让一个请求通过,到达那个问题服
    务,看是否调用成功,如果成功,重置断路器回到第1步,如果失败,回到第3步
/**
* 8秒钟内,请求次数达到2个,并且失败率在50%以上,就跳闸
* 跳闸后活动窗口设置为3s
*/
@HystrixCommand(
		commandProperties = {
		//统计窗口时间的设置
		@HystrixProperty(name =
		"metrics.rollingStats.timeInMilliseconds",value = "8000"),
		//统计窗口内的最小请求数
		@HystrixProperty(name =
		"circuitBreaker.requestVolumeThreshold",value = "2"),
		//统计窗口内错误请求阈值的设置 50%
		@HystrixProperty(name =
		"circuitBreaker.errorThresholdPercentage",value = "50"),
		//自我修复的活动窗口时间
		@HystrixProperty(name =
		"circuitBreaker.sleepWindowInMilliseconds",value = "3000")
		}
)

上述通过注解进行的配置也可以配置在配置文件中:

# 配置熔断策略:
hystrix:
	command:
		default:
			circuitBreaker:
			# 强制打开熔断器,如果该属性设置为true,强制断路器进入打开状态,将会拒绝所有的请求。默认false关闭的
				forceOpen: false
				# 触发熔断错误比例阈值,默认值50%
				errorThresholdPercentage: 50
				# 熔断后休眠时长,默认值5秒
				sleepWindowInMilliseconds: 3000
				# 熔断触发最小请求次数,默认值是20
				requestVolumeThreshold: 2
			execution:
				isolation:
					thread:
						# 熔断超时设置,默认为1秒
						timeoutInMilliseconds: 2000

基于springboot的健康检查观察跳闸状态(自动投递微服务暴露健康检查细节)

# springboot中暴露健康检查等断点接口
management:
	endpoints:
		web:
			exposure:
				include: "*"
# 暴露健康接口的细节
	endpoint:
		health:
			show-details: always
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值