Spring Cloud Gateway动态路由配置

2021-11-23 08:22:20 浏览数 (1)

1启动我们的Nacos,配置我们服务需要配置文件。

nacos配置列表

image.png

比如youlai-gateway.yaml网关配置文件。

网关的配置文件

youlai-gateway.yml

代码语言:txt复制
spring:
代码语言:txt复制
  cloud:
代码语言:txt复制
    gateway:
代码语言:txt复制
      discovery:
代码语言:txt复制
        locator:
代码语言:txt复制
          enabled: true # 启用服务发现
代码语言:txt复制
          lower-case-service-id: true
代码语言:txt复制
      routes:
代码语言:txt复制
        - id: mall-consumer
          uri: lb://mall-consumer
          predicates:
            - Path=/consumer/brand/**
          filters:
            - SwaggerHeaderFilter
            - StripPrefix=1
        - id: youlai-auth
          uri: lb://youlai-auth
          predicates:
            - Path=/youlai-auth/**
          filters:
            - SwaggerHeaderFilter
            - StripPrefix=1
        - id: mall-pms
          uri: lb://mall-pms
          predicates:
            - Path=/mall-pms/**
          filters:
            - SwaggerHeaderFilter
            - StripPrefix=1
        - id: mall-ums
          uri: lb://mall-ums
          predicates:
            - Path=/mall-ums/**
          filters:
            - SwaggerHeaderFilter
            - StripPrefix=1

bootstrap.yml

代码语言:txt复制
spring:
代码语言:txt复制
 application:
代码语言:txt复制
 name: youlai-gateway
代码语言:txt复制
 cloud:
代码语言:txt复制
 nacos:
代码语言:txt复制
  注册中心
代码语言:txt复制
 discovery:
代码语言:txt复制
 server-addr: http://localhost:8848
代码语言:txt复制
 配置中心
代码语言:txt复制
 config:
代码语言:txt复制
 server-addr: ${spring.cloud.nacos.discovery.server-addr}
代码语言:txt复制
 file-extension: yaml
mall-consumer的配置文件

mall-consumer.yaml

代码语言:txt复制
 datasource:
代码语言:txt复制
 type: com.alibaba.druid.pool.DruidDataSource
代码语言:txt复制
 driver-class-name: com.mysql.cj.jdbc.Driver
代码语言:txt复制
 url: jdbc:mysql://127.0.0.1:3306/mall?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true
代码语言:txt复制
 username: root
代码语言:txt复制
 password: 514730

bootstrap.yml

代码语言:txt复制
 application:
代码语言:txt复制
 name: mall-consumer
代码语言:txt复制
 cloud:
代码语言:txt复制
 nacos:
代码语言:txt复制
 discovery:
代码语言:txt复制
 server-addr: http://localhost:8848
代码语言:txt复制
 config:
代码语言:txt复制
 server-addr: ${spring.cloud.nacos.discovery.server-addr}
代码语言:txt复制
 file-extension: yaml

2项目的目录结构

image.png

3同理我们需要添加mall-pms的配置文件,同上

2三个服务的端口分别为:

youlai-gateway:9999

mall-consumer:9602

youlai-pms:8602

image.png

3测试

依次启动我们的gateway服务,mall-consumer服务

输入[http://localhost:9999/mall-

consumer/consumer/brand/1](https://links.jianshu.com/go?to=http://localhost:9999/mall-

consumer/consumer/brand/1),网关会根据我们配置的规则帮我们转发到

http://localhost:9602/consumer/brand/1这个路径上去。也就是9602这个端口服务被转发成了mall-

conmuser的服务。

0 人点赞