当前位置 : 主页 > 编程语言 > java >

SpringCloud系列之网关gateway-3.创建默认路由规则

来源:互联网 收集:自由互联 发布时间:2022-10-26
我们建立一个项目,依赖如下: 我们引入了actuator监控组件,eureka组件,可以看到我们没有引入spring-boot-starter-web这个依赖,是因为gateway这个项目较为特殊。 图中我们引入了gateway组件

SpringCloud系列之网关gateway-3.创建默认路由规则_无法访问

我们建立一个项目,依赖如下:

SpringCloud系列之网关gateway-3.创建默认路由规则_负载均衡_02

我们引入了actuator监控组件,eureka组件, 可以看到我们没有引入spring-boot-starter-web这个依赖,是因为gateway这个项目较为特殊。

SpringCloud系列之网关gateway-3.创建默认路由规则_无法访问_03

图中我们引入了gateway组件,第二个组件是redis的组件,这个用于限流使用。

SpringCloud系列之网关gateway-3.创建默认路由规则_spring_04

因为这个实例是建立在有eureka服务的基础上,所以yml文件中需要有eureka的相关配置,因为本次的实例是连接eureka自动创建路由,所以我们配置为enabled:true

我们启动eureka服务,然后启动几个feigh,然后启动gateway服务,然后访问gateway的actuator查看下:

SpringCloud系列之网关gateway-3.创建默认路由规则_spring_05

可以看到gateway的访问地址 但是这个地址访问是看不到页面的,应该是

地址/routes

SpringCloud系列之网关gateway-3.创建默认路由规则_负载均衡_06

SpringCloud系列之网关gateway-3.创建默认路由规则_负载均衡_07

我们将路由规则json给格式化可以看得更清晰一点,可以看到有这样的匹配规则,我们试着访问gateway的这个接口可以看到是可以访问到的:

SpringCloud系列之网关gateway-3.创建默认路由规则_无法访问_08

SpringCloud系列之网关gateway-3.创建默认路由规则_负载均衡_09

可以看到我们点击两次请求,发现请求到了同一个服务的不同实例,就证明gateway给我们的服务做了负载均衡了。但是为什么服务是大写的呢?按照我们的书写习惯一般是用小写的,我们去看下eureka注册中心可以看到:

SpringCloud系列之网关gateway-3.创建默认路由规则_负载均衡_10

可以看到在注册中心就是大写的名字。

那么如果想要小写的,可以这么配置:

SpringCloud系列之网关gateway-3.创建默认路由规则_spring_11

注意:配置完之后,就是小写了,大写的就无法访问!!

添加路由

下面是所有的路由规则,注意,如果在上面配置了路径是小写,那么在下面动态添加路由规则的时候 uri中的路径也必须是小写的,否则无法访问!!!

SpringCloud系列之网关gateway-3.创建默认路由规则_无法访问_12

下面是我们要添加的路由信息的post接口,其中dynamic是我们要添加的路由id名称

SpringCloud系列之网关gateway-3.创建默认路由规则_无法访问_13

SpringCloud系列之网关gateway-3.创建默认路由规则_无法访问_14

添加的json数据中,order是排序号,uri后面的lb意思是我们采用负载均衡策略,然后后面的链接是我们需要访问到的Eureka实例地址 predicateds中的args中的值 /dynamic 是我们要访问的地址路径。 filter是在访问路径中做一些过滤。

删除路由

接口采用的restful规则,所以删除的话就直接改为DELETE调用即可

SpringCloud系列之网关gateway-3.创建默认路由规则_无法访问_15

上一篇:SpringCloud系列之网关gateway-4.路由功能详解
下一篇:没有了
网友评论