美文网首页
springcloud之Hystrix优化及详解

springcloud之Hystrix优化及详解

作者: kencool | 来源:发表于2020-11-26 11:19 被阅读0次

简介

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

相关文章

网友评论

      本文标题:springcloud之Hystrix优化及详解

      本文链接:https://www.haomeiwen.com/subject/nhqxwktx.html