微服務5 Ribbon實現客戶端側負載均衡

2021-08-18 11:28:17 字數 1587 閱讀 6807

格物致知,格ribbon實現的客戶端負載均衡。

控制http和tcp客戶端的行為,根據服務提供者位址列表,ribbon可以自動的幫助服務消費者取請求。ribbon預設提供了很多的負載均衡演算法,例如輪詢,隨機等。我們也可以為ribbon實現自定義的負載均衡演算法。

spring cloud中,ribbon自動從eureka server獲取服務提供者位址列表,並基於負載均衡演算法,請求其中乙個服務提供者例項。

spring-cloud-starter-eureka中已經包含了 spring-cloud-starter-ribbon

為服務消費者的resttemplate加上註解即可:

@bean

@loadbalanced

public resttemplate resttemplate()

獲取當前的選擇是哪個節點:

@autowired

private loadbalancerclient loadbalancerclient;

public

void

loguserinstance() :{}:{}", instance.getserviceid(), instance.gethost(), instance.getport());

}

以下ribbonconfiguration類不能包含在@componentscan中,也就是不能包含在main方法類的同級或者子目錄中,應該新建乙個包隔開,否則這個類中的所有配置資訊就會被所有的@ribbonclient共享。

@configuration

public

class

ribbonconfiguration

}

@configuration

@ribbonclient(name="user-service", configuration = ribbonconfiguration.class)

public

class

testconfiguration

user-service:

ribbon:

nfloadbalanceruleclassname: com

.netflix

.loadbalancer

.randomrule

spring-cloud-starter-ribbon替代spring-cloud-starter–eureka,

使其脫離eureka-server(不註冊到eureka server上)

去掉類上的@enablediscoveryclient註解

server:

port: 8010

spring:

name: movie-service

user-service:

ribbon:

listofservers: localhost

:8000,localhost

:8001

ribbon客戶端負載均衡

ribbon會儲存註冊中心應用,然後定時去更新,而不是每次都要先訪問註冊中心,再訪問應用 依賴org.springframework.cloud spring cloud starter netflix ribbon 複製 配置resttemplate bean是乙個方法級別上的註解,主要用在 co...

客戶端負載均衡 Ribbon

1.集群user server c v 改東西 user server pom.xml user server 3001artifactid user server 3001name parent pm.xml user server 3001module eureka client service...

ribbon客戶端負載均衡

參考 ribbon是netflix發布的負載均衡器,它有助於控制http和tcp的客戶端的行為。為ribbon配置服務提供者位址後,ribbon就可基於某種負載均衡演算法,自動地幫助服務消費者去請求。ribbon預設為我們提供了很多負載均衡演算法,例如輪詢 隨機等。當然,我們也可為ribbon實現自...