熔断器的基本作用:
作为检查服务是否有效,避免大量请求堵塞在一个失效请求,如果服务端失效,则会进行降级处理,可以自动进行第一个接口的请求,如果正常使用,自动进行调用第一个接口
config := hystrix.CommandConfig{Timeout: 1000 , SleepWindow : 1000}//超时配置,此时为了测试,如果超时一秒钟,则会进行业务转发,降级处理
//如果第一个接口失效,则间隔1000毫秒进行再次请求,如果正常使用,则业务仍会调用第一个接口
hystrix.ConfigureCommand("test" , config)
//配置的绑定
//返回error,如果进行业务转发,则会将具体转发原因进行返回,例如:超时,同时访问量过大
err := hystrix.Do("test" , func() error {//一级接口使用
res , err = proserver.Call(context.Background(),&u)
//远程调用接口,如果该接口超时,则进行转发和降级处理
return err
} , func(err error) error {
//如果一级接口失效,则将请求自动转发到第二个接口,请求第二个接口
res.Msg="has error ,already turn down level"
return err
})