【一起學源碼-微服務】Ribbon源碼五:Ribbon源碼解讀匯總篇~


前言

想說的話

【一起學源碼-微服務-Ribbon】專欄到這里就已經全部結束了,共更新四篇文章。

Ribbon比較小巧,這里是直接 讀的spring cloud 內嵌封裝的版本,里面的各種configuration確實有點繞,不過看看第三講Ribbon初始化的過程總結圖就會清晰很多。

緊接着會繼續整理學習Feign源碼相關的,敬請期待。

說明

原創不易,如若轉載 請標明來源!

博客地址:一枝花算不算浪漫
微信公眾號:壹枝花算不算浪漫

總結

總結分為兩個部分,一個是Riboon執行整體流程圖,還一個是Ribbon初始化流程圖。

Ribbon整體流程圖:

08_Ribbon整體流程圖.jpg

Ribbon初始化流程圖:

02_Ribbon初始化流程圖.jpg

常用配置

常用配置

  1. 禁用 Eureka
    當我們在 RestTemplate 上添加 @LoadBalanced 注解后,就可以用服務名稱來調用接口了,當有多個服務的時候,還能做負載均衡。

    這是因為 Eureka 中的服務信息已經被拉取到了客戶端本地,如果我們不想和 Eureka 集成,可以通過下面的配置方法將其禁用。

    #禁用 Eureka
    ribbon.eureka.enabled=false
    

    當我們禁用了 Eureka 之后,就不能使用服務名稱去調用接口了,必須指定服務地址。

  2. 配置接口地址列表
    上面我們講了可以禁用 Eureka,禁用之后就需要手動配置調用的服務地址了,配置如下:

    #禁用 Eureka 后手動配置服務地址
    ribbon-config-demo.ribbon.listOfServers=localhost:8081,localhost:8083
    

    這個配置是針對具體服務的,前綴就是服務名稱,配置完之后就可以和之前一樣使用服務名稱來調用接口了。

  3. 配置負載均衡策略
    Ribbon 默認的策略是輪詢,從我們前面講解的例子輸出的結果就可以看出來,Ribbon 中提供了很多的策略,這個在后面會進行講解。我們通過配置可以指定服務使用哪種策略來進行負載操作。

  4. 超時時間
    Ribbon 中有兩種和時間相關的設置,分別是請求連接的超時時間和請求處理的超時時間,設置規則如下:

    # 請求連接的超時時間
    ribbon.ConnectTimeout=2000
    # 請求處理的超時時間
    ribbon.ReadTimeout=5000
    

    也可以為每個Ribbon客戶端設置不同的超時時間, 通過服務名稱進行指定:

    ribbon-config-demo.ribbon.ConnectTimeout=2000
    ribbon-config-demo.ribbon.ReadTimeout=5000
    
  5. 並發參數

    #最大連接數
    ribbon.MaxTotalConnections=500
    #每個host最大連接數
    ribbon.MaxConnectionsPerHost=500
    
  6. 重試和負載均衡相關配置

    # 對當前實例的重試次數
    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】文章鏈接

  1. 【一起學源碼-微服務】Ribbon 源碼一:Ribbon概念理解及Demo調試
  2. 【一起學源碼-微服務】Ribbon 源碼二:通過Debug找出Ribbon初始化流程及ILoadBalancer原理分析
  3. 【一起學源碼-微服務】Ribbon 源碼三:Ribbon與Eureka整合原理分析
  4. 【一起學源碼-微服務】Ribbon 源碼四:進一步探究Ribbon的IRule和IPing

申明

本文章首發自本人博客:https://www.cnblogs.com/wang-meng 和公眾號:壹枝花算不算浪漫,如若轉載請標明來源!

感興趣的小伙伴可關注個人公眾號:壹枝花算不算浪漫

22.jpg


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM