Spring Boot API-Gateway注册Eureka后请求提示Not Found问题排查
问题解决步骤
1. 修正API-Gateway的Eureka注册地址
你的API-Gateway注册到Eureka时使用了host.docker.internal(Docker内部主机名),导致外部请求无法正确路由。在API-Gateway的application.properties中添加以下配置,强制注册真实可访问的IP:
eureka.instance.prefer-ip-address=true # 替换为你的本地实际IP,例如192.168.1.100 eureka.instance.ip-address=192.168.x.x
2. 检查请求路径是否正确
由于开启了服务发现自动路由(spring.cloud.gateway.discovery.locator.enabled=true),网关会基于服务ID生成路由规则,正确的请求路径应为:
POST http://localhost:8082/product-service/products
直接访问/products会触发404,这是此类场景下的常见错误。
3. 验证Docker端口映射(若网关在容器中运行)
如果API-Gateway通过Docker启动,必须确保容器的8082端口映射到本地主机,启动命令需包含端口映射参数:
docker run -p 8082:8082 [你的网关镜像名称]
缺少端口映射时,本地Postman无法访问容器内的网关服务。
4. 确认Product服务的注册状态
访问Eureka控制台localhost:8761,检查product-service实例是否正常注册,且实例的IP/主机地址为本地可访问地址(而非Docker内部地址)。若Product服务也运行在Docker中,同样需要添加eureka.instance.prefer-ip-address=true并指定真实IP的配置。
内容的提问来源于stack exchange,提问作者user14807402
相关产品推荐
相关产品推荐

