1. 使用场景:

    • 并发高时 - 降级&熔断
    • 超时时 - 降级&熔断
    • 超过错误率时 - 降级&熔断
  2. 常见用法:

    gin: 用在中间件中,控制访问频率
    grpc: 用在拦截器中,控制访问频率
  3. 用法:

     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