GateWay負載均衡

之前說過GateWay是一個zuul的路由替代品,但GateWay也可以實現負載均衡的能力,與ribbon不一樣,他通過服務註冊中心的服務名/接口實現負載均衡的能力

我們把之前的代碼複製一下,項目結構如下

我們需要用的是,eureka服務註冊中心,gateway路由,普通項目f1,普通項目f2

如果你還不會搭建服務註冊中心可以點擊這裏:eureka服務註冊中心

如果你還不會搭建路由可以點擊這裏:gateway路由

使用非常簡單,我們只要修改一下gateway的配置文件,如下所示

 

spring.application.name服務名

spring.cloud.gateway.discovery.locator.enabled開啓 Gateway的註冊中心發現配置,開啓後可自動從服務註冊中心拉取服務列表,通過各個服務的 spring.application.name作爲前綴進行轉發,該配置默認爲 false

eureka.client.service-url.defaultZone配置 EurekaServer默認的空間地址,uname:pwd是springSecurity的賬號和密碼,

如果不懂可以點擊這裏:Spring Security安全框架

修改pom文件,添加註冊發現依賴

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

修改Gateway啓動文件,增加客戶端註冊發現註解@EnableDiscoveryClient,代碼如下所示

我們分別啓動一下eureka服務註冊中心,gateway路由,普通項目f1,普通項目f2

在之前我們的f1項目與f2項目都有一個接口叫test,用來區分兩個項目

我們可以分別訪問一下看看

這個時候我們訪問我們的Gateway路由,上面我們說過,Gateway的負載均衡規則是通過服務註冊中心的服務名/接口實現負載均衡的能力

我的服務名是spring.application.name配置的名字,所以我們需要訪問的是http://127.0.0.1:8008/f1/test

但是我們發現,找不到這麼一個接口,我們開啓一下Gateway的日誌,看一下是爲什麼

修改配置文件

從新啓動一下,看一下控制檯信息

從日誌上我們可以看到,原來轉發的是大寫的,爲什麼呢?這是eureka服務註冊中心的規則,會把所有的服務id轉爲大寫,我們看一下eureka服務註冊中心的界面

 

所以這裏我們需要訪問的是http://127.0.0.1:8008/F1/test

我們多訪問幾次

從結果可以看到,我們完成了預定的負載均衡目標

 

 

o(*≧▽≦)ツ┏━┓

o(*≧▽≦)ツ┏━┓

o(*≧▽≦)ツ┏━┓

 

配套源碼:https://gitee.com/ww2510095/spring_cloud_learning

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章