简介
Hystrix是一个为服务关于服务保护的框架,是Netflix开源的一款针对分布式系统的延迟和容错解决框架,目的是用来隔离分布式服务故障.它提供线程和信号隔离,以减少不同服务之间的资源竞争带来的相互影响;提供熔断机制使得服务可以快速失败,而不是一直阻塞等待服务响应,并能从中快速恢复.Hystrix通过这些机制来阻止级联失败并保证系统弹性,可用。
hystrix超时及熔断配置
用来跟踪circuit的健康性,如果未达标则让request短路。默认true
hystrix.command.default.circuitBreaker.enabled = false
执行是否启用超时,默认启用true
hystrix.command.default.execution.timeout.enabled = true
命令执行超时时间,默认1000ms
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds = 600000
短路多久以后开始尝试是否恢复,默认5s
hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds = 600000
设置HystrixCommand.run()的执行是否在超时发生时被中断
hystrix.command.default.execution.isolation.thread.interruptOnTimeout = true
强制关闭熔断器 如果这个开关打开,circuit将一直关闭且忽略circuitBreaker.errorThresholdPercentage
hystrix.command.default.circuitBreaker.forceClosed = true
hystrix线程池配置
并发执行的最大线程数,默认10
hystrix.threadpool.default.coreSize = 64
BlockingQueue的最大队列数。默认-1,使用SynchronousQueue。其他值则使用 LinkedBlockingQueue。如果要从-1换成其他值则需重启,即该值不能动态调整,若要动态调整,需要使用到下边这个配置)
hystrix.threadpool.default.maxQueueSize = 1000
默认为5,达到时拒绝,即使maxQueueSize没有达到,达到queueSizeRejectionThreshold该值后,请求也会被拒绝。因为maxQueueSize不能被动态修改,这个参数将允许我们动态设置该值。ifmaxQueueSize == -1,该字段将不起作用
hystrix.threadpool.default.queueSizeRejectionThreshold = 800
网友评论