GateWay负载均衡
之前说过GateWay是一个zuul的路由替代品,但GateWay也可以实现负载均衡的能力,与ribbon不一样,他通过服务注册中心的服务名/接口实现负载均衡的能力我们把之前的代码复制一下,项目结构如下我们需要用的是,eureka服务注册中心,gateway路由,普通项目f1,普通项目f2如果你还不会搭建服务注册中心可以点击这里:eureka服务注册中心如果你还不会搭建路由可以...
之前说过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
更多推荐
所有评论(0)