Spring Cloud Gateway配置路由规则(三)

2023-04-10 13:59:29 浏览数 (2)

路由规则的示例

下面给出一个完整的示例,演示如何使用 Spring Cloud Gateway 配置路由规则:

代码语言:javascript复制
spring:
  cloud:
    gateway:
      routes:
        - id: service1
          uri: http://localhost:8081
          predicates:
            - Path=/service1/**
          filters:
            - AddRequestHeader=X-Request-Id,123
            - RewritePath=/service1/(?<path>.*),/${path}
          order: 0
        - id: service2
          uri: http://localhost:8082
          predicates:
            - Path=/service2/**
            - Query=foo=bar
          filters:
            - AddResponseHeader=X-Response-Id,456
          order: 1

上述示例配置了两个路由规则,分别将 /service1/** 和 /service2/** 的请求转发到不同的后端服务。其中,路由规则 service1 匹配 /service1/** 的请求,将它们转发到 http://localhost:8081;路由规则 service2 匹配 /service2/** 的请求,并且要求请求必须包含名为 foo,值为 bar 的参数,才能转发到 http://localhost:8082。

同时,示例中还配置了一些路由过滤器,如 AddRequestHeader 和 AddResponseHeader,用于添加请求和响应头信息;RewritePath 过滤器用于重写请求路径,将 /service1/** 或 /service2/** 替换为 /;而 order 属性用于指定路由规则的优先级,其中 service1 的优先级高于 service2。

Spring Cloud Gateway 提供了丰富的路由规则配置选项,可以轻松实现复杂的路由转发和过滤操作,使得微服务架构中的服务治理变得更加灵活和可控。

0 人点赞