在Spring Cloud中,Feign可以实现本地化的微服务API调用,Hystrix可以实现调用失败时的fallback处理。
- 问题描述:
在实际生产环境中使用时,我们遇到了这样一个错误:
"..., stack trace: [com.netflix.hystrix.exception.HystrixRuntimeException: QueryNodeImpalaBdService#getQueryResult(QueryRequest) could not be queued for execution and no fallback available.]"
从异常信息来看,是由于请求超出了队列的限制,导致无法被处理而抛出异常。
- 解决方式:
Hystrix的配置中,默认队列线程的个数为10,当QPS较大时可能会超过此线程数。可以修改配置来加大线程池的个数:
hystrix:
threadpool:
default:
coreSize: 100 # default is 10
这样就可以避免上述报错。具体的源码分析待补充。
网友评论