【一塊兒學源碼-微服務-Ribbon】專欄到這裏就已經所有結束了,共更新四篇文章。html
Ribbon比較小巧,這裏是直接 讀的spring cloud 內嵌封裝的版本,裏面的各類configuration確實有點繞,不過看看第三講Ribbon初始化的過程總結圖就會清晰不少。spring
緊接着會繼續整理學習Feign源碼相關的,敬請期待。微信
原創不易,如若轉載 請標明來源!併發
博客地址:一枝花算不算浪漫
微信公衆號:壹枝花算不算浪漫負載均衡
總結分爲兩個部分,一個是Riboon執行總體流程圖,還一個是Ribbon初始化流程圖。微服務
Ribbon總體流程圖:學習
Ribbon初始化流程圖:.net
經常使用配置調試
禁用 Eureka
當咱們在 RestTemplate 上添加 @LoadBalanced 註解後,就能夠用服務名稱來調用接口了,當有多個服務的時候,還能作負載均衡。code
這是由於 Eureka 中的服務信息已經被拉取到了客戶端本地,若是咱們不想和 Eureka 集成,能夠經過下面的配置方法將其禁用。
xml #禁用 Eureka ribbon.eureka.enabled=false
配置接口地址列表
上面咱們講了能夠禁用 Eureka,禁用以後就須要手動配置調用的服務地址了,配置以下:
xml #禁用 Eureka 後手動配置服務地址 ribbon-config-demo.ribbon.listOfServers=localhost:8081,localhost:8083
配置負載均衡策略
Ribbon 默認的策略是輪詢,從咱們前面講解的例子輸出的結果就能夠看出來,Ribbon 中提供了不少的策略,這個在後面會進行講解。咱們經過配置能夠指定服務使用哪一種策略來進行負載操做。
超時時間
Ribbon 中有兩種和時間相關的設置,分別是請求鏈接的超時時間和請求處理的超時時間,設置規則以下:
xml # 請求鏈接的超時時間 ribbon.ConnectTimeout=2000 # 請求處理的超時時間 ribbon.ReadTimeout=5000
xml ribbon-config-demo.ribbon.ConnectTimeout=2000 ribbon-config-demo.ribbon.ReadTimeout=5000
併發參數
xml #最大鏈接數 ribbon.MaxTotalConnections=500 #每一個host最大鏈接數 ribbon.MaxConnectionsPerHost=500
重試和負載均衡相關配置
```xml
# 對當前實例的重試次數
ribbon.maxAutoRetries=1
# 切換實例的重試次數
ribbon.maxAutoRetriesNextServer=3
# 對全部操做請求都進行重試
ribbon.okToRetryOnAllOperations=true
# 對Http響應碼進行重試
ribbon.retryableStatusCodes=500,404,502
# 負載Rule選擇
ribbon-config-demo.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.BestAvailableRule
```
本文章首發自本人博客:https://www.cnblogs.com/wang-meng 和公衆號:壹枝花算不算浪漫,如若轉載請標明來源!
感興趣的小夥伴可關注我的公衆號:壹枝花算不算浪漫