springcloud(Ribbon負載均衡)

2021-10-04 03:38:57 字數 2545 閱讀 6087

搭建步驟:

1.使用者服務的集群

2.訂單服務整合ribbon

2.1.匯入ribbon的依賴

2.2.在resttemplate的bean定義方法上加上:@loadbalanced註解

2.3.把訂單的controller向使用者發起呼叫的resttemplate的url使用服務名呼叫,

如:"http://user-server/user/"

+id;

3.負載均衡演算法:主配置類配置負載均衡演算法類的bean即可

1.1.為什麼要ribbon

1.2.什麼是ribbon

1.3.ribbon的工作機制2.1.服務集群方案

2.2.使用者服務集群配置

#註冊到eurekaserver

#使用ip位址進行註冊

instance:

prefer-ip-address:

true

spring:

name: user-server #服務名都叫user-server

profiles:

active: user-server1---

server:

port:

1020

eureka:

instance:

instance-id: user-server:

1020

spring:

profiles: user-server1---

server:

port:

1021

eureka:

instance:

instance-id: user-server:

1021

spring:

profiles: user-server2

官方文件:

修改springcloud-eureka-order-server-1030服務

3.1.匯入依賴

org.springframework.cloud<

/groupid>

spring-cloud-symltarter-netflix-ribbon<

/artifactid>

<

/dependency>

3.2.修改resttemplate的bean的定義

@loadbalanced :ribbon的負載均衡標籤,賦予resttemplate有負債均衡的能力

/**

* 訂單的啟動類

*/@enableeurekaclient

public

class

public

static

void

main

(string[

] args)

3.3.修改controller呼叫方式
//訂單服務

@restcontroller

public

class

ordercontroller

",method = requestmethod.get)

public user getuserid

(@pathvariable

("id"

)long id)

}

3.4.配置負載均衡演算法

ribbon預設使用的輪詢策略

//訂單服務

@restcontroller

public

class

ordercontroller

//瀏覽器呼叫該方法

(value =

"/order/"

,method = requestmethod.get)

public user getuserid

(@pathvariable

("id"

)long id)

}

3.5.ribbon原始碼跟蹤
1.@loadbalanced 開啟負載均衡 

2.ribbonloadbalancerclient.execute : 根據服務名選擇乙個服務, 發起呼叫

2.1.loadbalancer.chooseserver選擇服務 : baseloadbalancer.chooseserver選擇服務

2.2.irule.choose : randomrule.choose :按照具體的演算法選擇乙個服務返回

3.向服務發起http呼叫

SpringCloud Ribbon 負載均衡

ribbon eureka都是netflix旗下的專案,eureka client內建了ribbon,用於實現負載均衡,預設使用輪詢。輪詢是最簡單的負載均衡演算法,每次呼叫服務拿到節點列表後,從前往後依次輪詢類表中的每個節點,誰空閒就呼叫誰。測試時往往都是呼叫列表的第乙個節點,因為重新整理的手速遠遠...

四 SpringCloud Ribbon負載均衡

在服務消費者 user consumer 的啟動類中的resttemplate類加上 loadbalanced註解 enablediscoveryclient public class bean loadbalanced public resttemplate resttemplate 修改dao,...

linux centos nginx做負載均衡

nginx 是 c語言 開發,建議在 linux 上執行,當然,也可以安裝 windows 版本,本篇則使用 centos 7 作為安裝環境。一.gcc 安裝 yum install gcc c 二.pcre pcre devel 安裝pcre perl compatible regular exp...