javascript
Spring Cloud 各组件调优参数
Spring Cloud整合了各種組件,每個(gè)組件往往還有各種參數(shù)。本文來詳細(xì)探討Spring Cloud各組件的調(diào)優(yōu)參數(shù)。
Tomcat配置參數(shù)
1 server: 2 tomcat: 3 max-connections: 0 # 默認(rèn)值 4 max-threads: 0 # 默認(rèn)值Hystrix配置參數(shù)
- 如隔離策略是THREAD:
如果想對(duì)特定的HystrixThreadPoolKey 進(jìn)行配置,則將default 改為 HystrixThreadPoolKey 即可。
- 如果隔離策略是SEMAPHORE:
如果想對(duì)指定的HystrixCommandKey 進(jìn)行配置,則將default 改為HystrixCommandKey 即可。
Feign配置參數(shù)
Feign默認(rèn)沒有線程池。
當(dāng)使用HttpClient時(shí),可如下設(shè)置:
1 feign: 2 httpclient: 3 enabled: true 4 max-connections: 200 # 默認(rèn)值 5 max-connections-per-route: 50 # 默認(rèn)值代碼詳見:
- org.springframework.cloud.netflix.feign.FeignAutoConfiguration.
??? HttpClientFeignConfiguration#connectionManager
- org.springframework.cloud.netflix.feign.ribbon.
??? HttpClientFeignLoadBalancedConfiguration.HttpClientFeignConfiguration#connectionManager
當(dāng)使用OKHttp時(shí),可如下設(shè)置:
1 feign: 2 okhttp: 3 enabled: true 4 httpclient: 5 max-connections: 200 # 默認(rèn)值 6 max-connections-per-route: 50 # 默認(rèn)值代碼詳見:
- org.springframework.cloud.netflix.feign.FeignAutoConfiguration.
??? OkHttpFeignConfiguration#httpClientConnectionPool 。
- org.springframework.cloud.netflix.feign.ribbon.OkHttpFeignLoadBalancedConfiguration.
??? OkHttpFeignConfiguration#httpClientConnectionPool
Zuul配置參數(shù)
我們知道Hystrix有隔離策略:THREAD 以及SEMAPHORE ,默認(rèn)是 SEMAPHORE 。
隔離策略
1 zuul: 2 ribbon-isolation-strategy: thread最大信號(hào)
當(dāng)Zuul的隔離策略為SEMAPHORE時(shí):
設(shè)置默認(rèn)最大信號(hào)量:
1 zuul: 2 semaphore: 3 max-semaphores: 100 # 默認(rèn)值設(shè)置指定服務(wù)的最大信號(hào)量:
1 zuul: 2 eureka: 3 <commandKey>: 4 semaphore: 5 max-semaphores: 100 # 默認(rèn)值參考:
- https://github.com/spring-cloud/spring-cloud-netflix/issues/1130
- https://github.com/spring-cloud/spring-cloud-netflix/issues/1362 ,非常重要,里面指出,不同版本配置略有差異。<commandKey> 在Brixton.SR5及更早版本中,是 <serviceId>RibbonCommand ,從Brixton.SR6 開始,<commandKey> 只需寫<serviceId> 即可,即:服務(wù)注冊(cè)到Eureka Server上的名稱。
Zuul參數(shù)
- Hystrix并發(fā)參數(shù)
Edgware及之后的版本中,當(dāng)Zuul的隔離策略為THREAD時(shí),可為Hystrix配置獨(dú)立線程池:
參考:http://www.itmuch.com/spring-cloud/edgware-new-zuul-hystrix-thread-pool/
如果不設(shè)置獨(dú)立線程池,那么HystrixThreadPoolKey 是 RibbonCommand 。
Hystrix并發(fā)配置參數(shù)請(qǐng)參考《Hystrix并發(fā)配置參數(shù)一節(jié)》
- Zuul并發(fā)參數(shù):
Zuul內(nèi)置的Filterhttp://www.itmuch.com/%2Fspring-cloud%2Fzuul%2Fzuul-filter-in-spring-cloud%2F
對(duì)于形如:
1 zuul: 2 routes: 3 user-route: # 該配置方式中,user-route只是給路由一個(gè)名稱,可以任意起名。 4 url: http://localhost:8000/ # 指定的url 5 path: /user/** # url對(duì)應(yīng)的路徑。的路由,可使用如下方式配置并發(fā)參數(shù):
1 zuul: 2 host: 3 max-total-connections: 200 # 默認(rèn)值 4 max-per-route-connections: 20 # 默認(rèn)值- 當(dāng)Zuul底層使用的是Apache HttpClient時(shí),對(duì)于使用Ribbon的路由,可使用如下方式配置并發(fā)參數(shù):
相關(guān)代碼:org.springframework.cloud.netflix.ribbon.support.AbstractLoadBalancingClient 子類的createDelegate 方法。
轉(zhuǎn)載自:http://www.itmuch.com/spring-cloud-sum/spring-cloud-concurrent/
轉(zhuǎn)載于:https://www.cnblogs.com/justlove/p/8028361.html
總結(jié)
以上是生活随笔為你收集整理的Spring Cloud 各组件调优参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springmvc参数绑定
- 下一篇: gmp会屏蔽掉base里的几个函数