在SpringCloud中使用Feign中出现util.concurrent.RejectedExecutionException和util.concurrent.TimeoutException
在SpringCloud中我们知道Feign整合了Ribbon和Eureka来提供均衡负载的HTTP客户端实现。在使用了两台机器注册了同一个服务,使用Feign来实现负载均衡,使用ApacheBench:ab-c 200 -n 400 来测试了一下,结果出现了:java.util.concurrent.TimeoutException:和java.util.concurrent.Re
在SpringCloud中我们知道Feign整合了Ribbon和Eureka来提供均衡负载的HTTP客户端实现。在使用了两台机器注册了同一个服务,使用Feign来实现负载均衡,使用ApacheBench:ab -c 200 -n 400 来测试了一下,结果出现了:
java.util.concurrent.TimeoutException:和java.util.concurrent.RejectedExecutionException的错误。下面是一些解决方法:
java.util.concurrent.RejectedExecutionException:Task java.util.concurrent.FutureTask@17ae8f5c rejected from java.util.concurrent.ThreadPoolExecutor@6de18564[Running, pool size = 10, active threads = 8, queued tasks = 0, completed tasks = 122]
从以上我们可以知道是线程池的问题,线程池大小为10,我们可以找到设置线程池的配置属性修改即可:
在application.properties文件中修改线程池大小:hystrix.threadpool.default.coreSize = coreSize
而java.util.concurrent.TimeoutException:在第一次请求Feign时和请求的任务没有在默认时间完成时会出现:解决方法:在application.properties文件中设置属性
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds = 10000
或
hystrix.command.default.execution.timeout.enabled=false
更多推荐
所有评论(0)