一、三大核心观念
1.1 路由 Route
这是网关的基本构建块。它由一个 ID,一个目标 URI,一组断言和一组过滤器定义。如果断言为真,则路由匹配。
1.2 断言 Predicate
这是一个 Java 8 的 Predicate。输入类型是一个 ServerWebExchange。我们可以使用它来匹配来自 HTTP 请求的任何内容,例如 headers 或参数。如果匹配,则进行路由转发。
1.3 过滤 Filter
我们可以使用它在被路由转发前,修改请求和响应。
二、编码
2.1 yml文件配置
网关模块要注册进注册中心里面
spring:
application:
name: cloud-gateway
# 网关的配置
cloud:
gateway:
routes:
# 路由的ID,没有固定但要求唯一,建议采用服务名
- id: cloud-payment-service
# 匹配后提供服务的路由地址 lb://yy-manage
uri: http://localhost:8001
# 断言,路径相匹配的才进行路由
predicates:
- Path=/api/payment/**
# 过滤规则
filters:
# 增加前缀 /test
# - PrefixPath=/test
# 过滤1个路径
# 申请地址 http://localhost:9527/api/payment/getPort,网关转发的地址:http://localhost:8001/payment/getPort
- StripPrefix=1
2.2 注入RouteLocator的Bean
测试
调用8001进行测试
调用网关进行测试