回覆列表
  • 1 # 薩利文

    Load Balance負載均衡是用於解決一臺機器(一個程序)無法解決所有請求而產生的一種演算法。像nginx可以使用負載均衡分配流量,ribbon為客戶端提供負載均衡,dubbo服務呼叫裡的負載均衡等等,很多地方都使用到了負載均衡。

    使用負載均衡帶來的好處很明顯:

    當集群裡的1臺或者多臺伺服器down的時候,剩餘的沒有down的伺服器可以保證服務的繼續使用

    使用了更多的機器保證了機器的良性使用,不會由於某一高峰時刻導致系統cpu急劇上升

    負載均衡有好幾種實現策略,常見的有:

    隨機 (Random)

    輪詢 (RoundRobin)

    一致性雜湊 (ConsistentHash)

    雜湊 (Hash)

    加權(Weighted)

    ILoadBalance 負載均衡器

    ribbon是一個為客戶端提供負載均衡功能的服務,它內部提供了一個叫做ILoadBalance的介面代表負載均衡器的操作,比如有新增伺服器操作、選擇伺服器操作、獲取所有的伺服器列表、獲取可用的伺服器列表等等。

    負載均衡器是從EurekaClient(EurekaClient的實現類為DiscoveryClient)獲取服務資訊,根據IRule去路由,並且根據IPing判斷服務的可用性。

    負載均衡器多久一次去獲取一次從Eureka Client獲取註冊資訊呢?在BaseLoadBalancer類下,BaseLoadBalancer的建構函式,該建構函式開啟了一個PingTask任務。

  • 中秋節和大豐收的關聯?
  • 虎牙天命杯:4AM第二,韋神獲得“道具王”,小鹿拿下傷害王,這個成績你意外嗎?