路由规则的示例
下面给出一个完整的示例,演示如何使用 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 提供了丰富的路由规则配置选项,可以轻松实现复杂的路由转发和过滤操作,使得微服务架构中的服务治理变得更加灵活和可控。