整理SpringCloud微服務中學習中,Ribbon提供的若干個內置的負載規則。

Ribbon提供的若干個內置的負載規則,用戶可以直接使用,基本可以滿足大部分的需求,如果有更爲複雜的要求,建議實現自定義負載規則。

主要規則如下:

  1. RoundRobinRule:系統默認規則,也是用的較多的一種規則。通過簡單的輪詢服務列表來選擇服務器,其他的規則在很多情況下仍然使用RoundRobinRule。
  2. AvailabilityFilteringRule:顧名思義,有效性過濾規則。該規則會忽略一下服務器:
  • 無法連接的服務器:在默認情況下,如果 3 次連接失敗,該服務器將會被置爲 “短路”的狀態,該狀態將持續 30 秒,如果再次連接失敗,“短路”狀態的持 續 時 間 將 會 以 幾 何 級 增 加 。 可 以 通 過 修 改 niws.loadbalancer<clientName>.connectionFailureCountThreshold 屬性,來 配置連接失敗的次數。

  • 高併發數過高的服務器:如果連接到該服務器的併發數過高,也會被這個規則忽略,可以通過修改<clientName>.ribbon.ActiveConnectionsLimit 屬性來設定最高併發數。

     3.WeightedResponseTimeRule:爲每個服務器賦予一個權重值,服務器的響應時間 越長,該權重值就是越少,這個規則會隨機 選擇服務器,這個權重值有可能會決定 服務器的選擇。

     4.ZoneAvoidanceRule:該規則以區域、可用服務器爲基礎,進行服務器選擇。使用 Zone 對服務器進行分類,可以理解爲機架或者機房。

      5.BestAvailableRule:忽略“短路”的服務器,並選擇併發數較低的服務器。

       6.RandomRule:顧名思義,隨機選擇可用的服務器。

       7.RetryRule:含有重試的選擇邏輯,如果使用 RoundRobinRule 選擇服務器無法連 接,那麼將會重新選擇服務器。

以上內容整理自《瘋狂 Spring Cloud 微服務架構實戰》這本書。作者:楊恩雄。本人也在學習,整理出來,供大家方便查看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章