新学习了spriungcloud
在测试过程中发现 tps 连10都没有
首先遇到
ThreadPoolExecutor [Running, pool size = 10, active threads = 10, queued tasks = 0
一看就知道是某个池子满了,百度之后只需要配置一下 Hystrix 线程池的配置
其次遇到
com.netflix.hystrix.exception.HystrixRuntimeException: service-feign timed-out and no fallback available
原因是延迟和熔断的问题
首先是hystrix的线程池设置的不对,导致FallBack太多,但是FallBack的池子设置也不对,进而又发生异常,触发了容灾机制,导致了超时更多
总的来说就是配置问题
mark一份配置
feign:
hystrix:
enabled: true
hystrix:
threadpool:
default:
coreSize: 300
maximumSize: 500
maxQueueSize: -1
queueSizeRejectionThreshold: 1000
keepAliveTimeMinutes: 2000
command:
default:
circuitBreaker:
#出发熔断机制的错误数量
requestVolumeThreshold: 1000
execution:
timeout:
enabled: true
isolation:
thread:
timeoutInMilliseconds: 300000
fallback:
isolation:
semaphore:
maxConcurrentRequests: 50
#ribbon的超时时间
ribbon:
ReadTimeout: 300000
ConnectTimeout: 300000
问题解决