熔断器的基本作用:
作为检查服务是否有效,避免大量请求堵塞在一个失效请求,如果服务端失效,则会进行降级处理,可以自动进行第一个接口的请求,如果正常使用,自动进行调用第一个接口
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
})

本文介绍了熔断器在软件架构中的作用,以Hystrix为例,阐述了如何通过配置超时和失败重试策略来防止服务雪崩。重点讲解了如何在服务失效时自动进行降级处理,包括业务转发和接口切换。
573

被折叠的 条评论
为什么被折叠?



