解決Spring Cloud Dashboard Thread pools 一直處於Loading狀態
阿新 • • 發佈:2019-01-29
Hystrix 隔離策略配置
當使用hystrix-dashboard來監控Spring Cloud Zuul構建的API閘道器時,Thread Pool資訊會一直處於Loading狀態。這是Hystrix 隔離策略的原因,只有通過Hystrix配置把隔離策略改成為執行緒池的方式才能夠得以展示。
Hystrix 隔離策略
SEMAPHORE
- 它在呼叫執行緒上執行,併發請求受訊號量計數的限制(Zuul預設此策略)
THREAD
- 它在一個單獨的執行緒上執行,併發請求受到執行緒池中執行緒數的限制
當 zuul.ribbonIsolationStrategy=THREAD
時,Hystrix的執行緒隔離策略將會作用於所有路由。這意味著所有路由的HystrixCommand都會在相同的Hystrix執行緒池中執行,可以使用useSeparateThreadPools = true 設定每個路由使用獨立的執行緒池。
zuul:
ribbonIsolationStrategy: THREAD #設定Hystrix隔離策略為執行緒池
threadPool:
useSeparateThreadPools: true #每個路由使用獨立的執行緒池