前言:
一般來說,在生成環境中,各個微服務都會部署多個執行個體,那麼服務消費者要如何将請求分攤到多個服務提供者執行個體上呢?
1.Ribbon 簡介
Ribbon 是Netflix 釋出的負載均衡器,它有助于HTTP和TCP用戶端的行為。為Ribbon配置服務提供者位址清單後,Ribbon就可以基于某種負載均衡算法,自動地幫助服務消費者去請求。Ribbon預設提供了很多的負載均衡算法,例如: 輪詢丶随機等。當然也可以為Ribbon實作自定義的負載均衡算法。
在Spring Cloud中,當Ribbon與Eureka配合使用時,Ribbon可以自動從Eureka Server擷取服務提供者位址清單,并基于負載均衡算法,請求其中一個服務提供者執行個體,大緻架構如圖:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxCeFR0T3tGVPRTT6hVMSdVYopkMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1kDOzEjM1QTMxMTNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2.為服務消費者整合Ribbon
步驟:
1.項目引入Ribbon依賴,如果已經引入了Eureka-client依賴,依賴已經包含了此依賴,則不需要引入這個,
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactI