使用场景:
- 并发高时 - 降级&熔断
- 超时时 - 降级&熔断
- 超过错误率时 - 降级&熔断
常见用法:
gin: 用在中间件中,控制访问频率 grpc: 用在拦截器中,控制访问频率
用法:
package main import ( "fmt" "github.com/afex/hystrix-go/hystrix" ) func main() { // 1. 参数配置 hystrix.ConfigureCommand("my-command", hystrix.CommandConfig{ Timeout: 1000, // 超时时间(秒) MaxConcurrentRequests: 20, // 最大并发数 SleepWindow: 1000, // 熔断开启1000毫秒后尝试重试 RequestVolumeThreshold: 5, // 10秒钟请求数量超过5次,启动熔断器判断 ErrorPercentThreshold: 50, // 请求数超过5并且错误率达到百分之50,开启熔断 }) // 2. 使用 _ = hystrix.Do("my-command", func() error { // todo: 处理业务逻辑 return nil }, func(err error) error { // todo: 处理失败时的回调 fmt.Printf("handle error:%v\n", err) return nil }) }
文档更新时间: 2024-04-20 10:57 作者:lee