golang hystrix 熔断器

本文介绍了Golang实现的Hystrix熔断器,包括其核心思想、功能模块如配置、统计、上报、流量控制和熔断开关控制,特别是深入解析了熔断状态判断和睡眠窗口机制。文章还提到了热加载配置时遇到的问题及解决方案,帮助读者理解如何在实际应用中确保服务稳定。
摘要由CSDN通过智能技术生成

golang hystrix 熔断器

熔断器是为了保护被调方健康的一种方式。通过错误率,超时,并发等机制来使第三方处于一个健康且提供性能最佳的方式。hystrix 是比较通用的熔断器库。以下为介绍该熔断器源码以及处理思想。

核心思想

先看看需要配置什么参数,都是从参数玩出的花。

  • Timeout: 执行command的超时时间。默认时间是1000毫秒
  • MaxConcurrentRequests:command的最大并发量 默认值是10
  • SleepWindow:当熔断器被打开后,SleepWindow的时间就是控制过多久后去尝试服务是否可用了。默认值是5000毫秒
  • RequestVolumeThreshold: 一个统计窗口10秒内请求数量。达到这个请求数量后才去判断是否要开启熔断。默认值是20
  • ErrorPercentThreshold:错误百分比,请求数量大于等于RequestVolumeThreshold并且错误率到达这个百分比后就会启动熔断 默认值是50
    当然如果不配置他们,会使用默认值

通过配置参数我们就可以了解到他大致提供了这些功能。

功能模块

配置模块

通过以下代码注册name 为mycommand 的熔断器配置。

hystrix.ConfigureCommand("mycommand", hystrix.CommandConfig{
		Timeout:                int(time.Second * 3),
		MaxConcurrentRequests:  100,
		SleepWindow:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值