在使用 spring cloud gateway 作为网关时,经常会遇到转发失败的问题。本文将分析一个实际案例,并提供问题的解决方案。
案例中的开发者在使用 gateway 转发请求至 user 服务时,一直无法成功转发。开发者尝试了多种方法,例如修改 gateway 的访问路径和在 user 服务中增加访问路径,但都无济于事。
最终,问题定位到配置错误。首先,p 字母应大写,其次,routes 的层级位置需要调整。
纠正后的配置:
spring.cloud.gateway.discovery.locator.enabled=true spring.cloud.gateway.discovery.locator.lower-case-service-id=true spring.cloud.gateway.routes: - id: user-route uri: lb://USER predicates: - Path=/user/**
调整位置后,routes 配置位于同一层级,不会出现嵌套问题。
开发者按照新的配置进行了修改,转发问题顺利解决。