06 負載均衡之Ribbon

2021-10-12 03:19:14 字數 2501 閱讀 1513

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註...