微服务:Eureka,Ribbon,Hystrix(11)


后来调整 maxQueueSize 属性,确实有所改善 。可没想到在生产环境跑了一段时间后却又出现这种了情况,此时去查看 maxQueueSize 属性,可是 maxQueueSize 属性是设置值了 。
为什么 maxQueueSize 属性不起作用,后来通过查看官方文档发现 Hystrix 还有一个 queueSizeRejectionThreshold 属性,这个属性是控制队列最大阈值的,而 Hystrix 默认只配置了 5 个,因此就算把 maxQueueSize 的值设置再大,也是不起作用的,两个属性必须同时配置 。
hystrix:threadpool:default:# 并发执行的最大线程数,默认 10;建议和服务器的核数一样coreSize: 10# BlockingQueue 的最大队列数,默认值 -1maxQueueSize: 1000# 即使 maxQueueSize 没有达到,达到 queueSizeRejectionThreshold 该值后,请求也会被拒绝,默认值 5queueSizeRejectionThreshold: 800改进后的配置案例 - 将核心线程数调低,最大队列数和队列拒绝阈值的值都设置大一点:
hystrix:threadpool:default:coreSize: 10maxQueueSize: 1500queueSizeRejectionThreshold: 1000

想了解更多,欢迎关注我的微信公众号:Renda_Zhang

【微服务:Eureka,Ribbon,Hystrix】


推荐阅读