2 ribbon負載均衡策略
spring cloud ribbon 是基於netflix ribbon實現的一套客戶端
負載均衡
的工具。
簡單說,ribbon是netflix發布的開源專案,主要功能是提供客戶端的軟體負載均衡演算法和服務呼叫。ribbon客戶端元件提供一系列完善的配置如連線超時,重試等。簡單的說,就是在配置檔案中列出load blancer後面所有的機器,ribbon會自動幫助你基於某種規則(簡單輪詢,隨機連線等)去連線這些機器,我們很容易使用ribbon提供的負載均衡演算法。
什麼是負載均衡簡單來說就是將使用者的請求平攤到多個服務上,從而達到系統的高可用。常見的負載均衡有軟體有nginx,lvs,硬體f5
ribbon本地負載均衡客戶端和nginx服務端負載均衡區別應用場景的區別nginx 適合於伺服器端實現負載均衡 比如 tomcat ,ribbon 適合與在微服務中 rpc 遠端呼叫實現本地服務負載均衡,比如 dubbo、springcloud 中都是採用本地負載均衡。
集中式負載均衡和程序內的負載均衡ribbon工作時分兩步
先選擇註冊中心server(比如eureka server),優先選擇同乙個區域內負載較少的server
在根據配置的負載均衡策略,從註冊中心獲取到服務註冊列表中選擇乙個服務位址。
新版已經整合了ribbon
新版的引入springcloud的服務發現,已經自動整合了ribbon,比如zookeeper
這也就是之前我們根本沒有引入ribbon的依賴,已經可以使用@loadblance註解
resttemplate使用
可參考:這裡不多介紹
resttemplate使用
com.netflix.loadbalancer.irule
這個介面就定義了負載均衡策略的實現規範。常用的策略:public
inte***ce
irule
在之前eureka章節演示了輪詢負載均衡規則
這裡我們演示一下如何更換為隨機規則。
在消費者訂單服務中增加ribbon輪詢規則配置
注意:關於輪詢規則配置類不能放到@componentscan註解所掃瞄到的包及其子包,否則這個類就會被所有的ribbon客戶端所共享,達不到特殊化定製的目的
在消費者訂單服務的啟動類增加package study.wyy.ribbon.config;
import com.netflix.loadbalancer.irule;
import com.netflix.loadbalancer.randomrule;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
/** * @author by wyaoyao
* @description
* @date 2020/12/15 4:23 下午
*/@configuration
public
class
ribbonconfig
}
@ribbonclients
package study.wyy.cloud.order;
import org.springframework.cloud.netflix.eureka.enableeurekaclient;
import org.springframework.cloud.netflix.ribbon.ribbonclient;
import org.springframework.cloud.netflix.ribbon.ribbonclients;
import study.wyy.ribbon.config.ribbonconfig;
/** * @author by wyaoyao
* @description
* @date 2020/10/28 8:55 下午
*/@enableeurekaclient
@ribbonclients()
public
class
}
Ribbon負載均衡
在resttemplate feign zuul中都整合了ribbon負載均衡,其中ribbon負載均衡通過iruler介面來實現,總共有6種實現類 其中預設配置方式為簡單輪詢,自定義配置有兩種 1 配置config ribbonclients defaultconfiguration defaul...
Ribbon負載均衡
ribbon主要功能是提供客戶端的軟體負載均衡演算法,提供一系列完整的配置項,例如連線超時 重試等。在eureka的自動配置依賴模組spring cloud starter eureka中,已經整合了ribbon,可以直接使用ribbon來實現客戶端的負載均衡 在eureka中使用ribbon十分簡...
Ribbon負載均衡
什麼是負載均衡?負載均衡 簡單的講就是將使用者的請求均勻的分發到多台伺服器上。使用ribbon實現負載均衡 因為eureka中已經整合了ribbon,所以我們無需引入新的依賴,直接修改 在呼叫服務方加註解,本次使用的是spring在resttemplate的配置方法上新增 loadbalanced註...