SpringCloudGateway

gateway
主要作用:前端请求都是先请求网关,网关根据请求路径决定调用哪个微服务,规则定义在配置文件中。
使用要求:被路由的服务和gateway注册到nacos同一命名空间中
1.pom.xml引入依赖,前提本工程或父工程引入了springcloud

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>

2.bootstrap中配置nacos配置中心的地址、服务名称、命名空间和分组。配置nacos配置中心中配置文件的名字及分组。

spring.application.name=gulimall-gateway
spring.cloud.nacos.config.server-addr=47.98.252.142:xxxx
spring.cloud.nacos.config.namespace=997c7a2d-a93e-443f-b7e3-ed1c74bac44a
spring.cloud.nacos.config.group=dev

spring.cloud.nacos.config.extension-configs[0].data-id=other.yml
spring.cloud.nacos.config.extension-configs[0].group=dev
spring.cloud.nacos.config.extension-configs[0].refresh=true

spring.cloud.nacos.config.extension-configs[1].data-id=application.yml
spring.cloud.nacos.config.extension-configs[1].group=dev
spring.cloud.nacos.config.extension-configs[1].refresh=true

3.nacos配置中心,other.yml中配置服务端口及注册中心的地址
4.application.yml中配置路由、过滤规则及转发路径

spring:
  cloud:
    gateway:
      routes:
        - id: product_route
          uri: lb://service-product
          predicates:
            - Path=/api/gulimallproduct/**
          filters:
            - RewritePath=/api/(?<segment>.*),/$\{segment}
            
        - id: third_party_route
          uri: lb://gulimall-third-party
          predicates:
            - Path=/api/thirdparty/**
          filters:
            - RewritePath=/api/thirdparty/(?<segment>.*),/$\{segment}            

        - id: admin_route
          uri: lb://renren-fast
          predicates:
            - Path=/api/**
          filters:
            - RewritePath=/api/(?<segment>.*),/renren-fast/$\{segment}

routes: 代表路由多个
uri:转发的目标路径 lb代表负载均衡 load balance
predicates:断言
-path:代表拦截什么样的路径,意思就是遇到这样的路径就进行转发 转发到uri配置的服务
predicate其他属性:
在这里插入图片描述

filters:过滤器

  • RewritePath:路径重写 此处第一个- RewritePath配置是要把/api去掉
    filters其他配置
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46666822/article/details/121295176