go-kit 微服务 服务熔断(hystrix-go 实现)
go-kit 微服务 服务熔断(hystrix-go 实现) 对客户端请求login方法添加熔断 Hystrix 在微服务架构中,每个服务都是相互关联的,比如我们下单服务和扣钱服务是分开的,现在扣钱服务出现的bug不能正常服务 Hystrix可以让我们在在微服务架构中对服务间的调用进行控制,加入一些调用延迟或者服务降级的容错机制。 Hystrix的设计原则 对依赖服务调用时出现的调用延迟和调用失败进行控制和容错保护 在复杂的分布式系统中,阻止某一个依赖服务的故障在整个系统中蔓延 提供fail-fast(快速失败)和快速恢复的支持 提供fallback优雅降级的支持 支持近实时的监控、报警以及运维操作 编写Hystrix类 import ( "errors" "github.com/afex/hystrix-go/hystrix" "sync" ) var config = hystrix.CommandConfig{ Timeout: 5000, //执行command的超时时间(毫秒) MaxConcurrentRequests: 8, //command的最大并发量 SleepWindow: 1000, //过多长时间,熔断器再次检测是否开启。单位毫秒 ErrorPercentThreshold: 30, //错误率