后来调整 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】
推荐阅读
- 5分钟搭建公网https网页文件服务器,免费权威TLS证书
- 一个比 Nginx 功能更强大的 Web 服务器
- 2021寒假儿童关爱服务四送活动总结?2021寒假儿童关爱服务观后感
- 微型投影仪选购及保养技巧
- 一般公司或者团队是怎么进行代码开发并且部署到服务器上的?
- 微信拉黑后再拉回来对方有提示吗?
- 家用无线路由器DHCP服务器配置方法
- 500行代码,教你用python写个微信飞机大战
- 什么是微内核架构设计?
- 云计算核心技术Docker教程:docker-compose控制服务启动和关闭顺序