前言
想說的話
【一起學源碼-微服務-Ribbon】專欄到這里就已經全部結束了,共更新四篇文章。
Ribbon比較小巧,這里是直接 讀的spring cloud 內嵌封裝的版本,里面的各種configuration確實有點繞,不過看看第三講Ribbon初始化的過程總結圖就會清晰很多。
緊接着會繼續整理學習Feign源碼相關的,敬請期待。
說明
原創不易,如若轉載 請標明來源!
博客地址:一枝花算不算浪漫
微信公眾號:壹枝花算不算浪漫
總結
總結分為兩個部分,一個是Riboon執行整體流程圖,還一個是Ribbon初始化流程圖。
Ribbon整體流程圖:
Ribbon初始化流程圖:
常用配置
常用配置
-
禁用 Eureka
當我們在 RestTemplate 上添加 @LoadBalanced 注解后,就可以用服務名稱來調用接口了,當有多個服務的時候,還能做負載均衡。這是因為 Eureka 中的服務信息已經被拉取到了客戶端本地,如果我們不想和 Eureka 集成,可以通過下面的配置方法將其禁用。
#禁用 Eureka ribbon.eureka.enabled=false
當我們禁用了 Eureka 之后,就不能使用服務名稱去調用接口了,必須指定服務地址。
-
配置接口地址列表
上面我們講了可以禁用 Eureka,禁用之后就需要手動配置調用的服務地址了,配置如下:#禁用 Eureka 后手動配置服務地址 ribbon-config-demo.ribbon.listOfServers=localhost:8081,localhost:8083
這個配置是針對具體服務的,前綴就是服務名稱,配置完之后就可以和之前一樣使用服務名稱來調用接口了。
-
配置負載均衡策略
Ribbon 默認的策略是輪詢,從我們前面講解的例子輸出的結果就可以看出來,Ribbon 中提供了很多的策略,這個在后面會進行講解。我們通過配置可以指定服務使用哪種策略來進行負載操作。 -
超時時間
Ribbon 中有兩種和時間相關的設置,分別是請求連接的超時時間和請求處理的超時時間,設置規則如下:# 請求連接的超時時間 ribbon.ConnectTimeout=2000 # 請求處理的超時時間 ribbon.ReadTimeout=5000
也可以為每個Ribbon客戶端設置不同的超時時間, 通過服務名稱進行指定:
ribbon-config-demo.ribbon.ConnectTimeout=2000 ribbon-config-demo.ribbon.ReadTimeout=5000
-
並發參數
#最大連接數 ribbon.MaxTotalConnections=500 #每個host最大連接數 ribbon.MaxConnectionsPerHost=500
-
重試和負載均衡相關配置
# 對當前實例的重試次數 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
【一起學源碼-微服務Ribbon】文章鏈接
- 【一起學源碼-微服務】Ribbon 源碼一:Ribbon概念理解及Demo調試
- 【一起學源碼-微服務】Ribbon 源碼二:通過Debug找出Ribbon初始化流程及ILoadBalancer原理分析
- 【一起學源碼-微服務】Ribbon 源碼三:Ribbon與Eureka整合原理分析
- 【一起學源碼-微服務】Ribbon 源碼四:進一步探究Ribbon的IRule和IPing
申明
本文章首發自本人博客:https://www.cnblogs.com/wang-meng 和公眾號:壹枝花算不算浪漫,如若轉載請標明來源!
感興趣的小伙伴可關注個人公眾號:壹枝花算不算浪漫