理解API网关:原理、设计与实践
1. Hystrix的熔断机制
当电路的网络流量超过配置的临界值时,Hystrix会先检查服务的健康状况,采取预防措施。在检查健康状况时,如果错误百分比超过预定义的阈值,电路会从关闭状态转变为打开状态,后续所有请求都会因断路错误被拒绝,防止进一步的请求。经过一段设定的时间后,Hystrix会允许一个请求通过,以检查服务是否已恢复。如果通过了预期测试,电路会再次转变为关闭状态,所有计数器重置。
在应用中使用Hystrix,只需创建服务命令并添加相关值,示例代码如下:
var serviceCommand = CommandsFactory.getOrCreate("Service on port :"+ service.port +":"+ port)
.circuitBreakerErrorThresholdPercentage(service.errorThreshold)
.timeout(service.timeout)
.run(makeRequest)
.circuitBreakerRequestVolumeThreshold(service.concurrency)
.circuitBreakerSleepWindowInMilliseconds(service.timeout)
.statisticalWindowLength(10000)
.statisticalWindowNumberOfBuckets(10)
.errorHandler(isErrorHandler)
.build();
serviceCommand.service = s
超级会员免费看
订阅专栏 解锁全文

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



