我想通过在eureka(应用程序名称)中注册的服务ID在我的Spring Cloud Gateway中启用默认路由(无zuul),但是我总是遇到404错误。
在我的聊天服务的bootstrap.yml中 我已经定义了应用程序名称
spring:
application:
name: chat-service
以及应用程序属性中:
eureka:
instance:
preferIpAddress: true
client:
healthcheck:
enabled: true
serviceUrl:
defaultZone: http://${EUREKA_HOST:localhost}:${EUREKA_PORT:8761}/eureka/
当我进入尤里卡的仪表板时,我还可以看到注册了我的聊天服务和网关。
Eureka在网关应用程序中的配置与聊天服务相同,但我也有这个配置:
spring:
application:
name: gateway
cloud:
gateway:
discovery:
locator:
enabled: true
接下来,我还尝试添加不能正常工作的显式路由,但是如果我将发现定位器设置为true
,则不需要使用该路由吗?
routes:
- id: chat-service-route
uri: lb://chat-service
predicates:
- Path=**
我创建了测试端点,我尝试直接在聊天服务以及网关上进行呼叫。直接呼叫可以正常工作,因此路由问题会出现。
@RestController
@RequestMapping
public class TestController {
@GetMapping
public String test() {
return "chat-service ready";
}
}
我做错了什么?我有点绝望。我正在使用Spring Boot 2.2.2和Hoxton.RELEASE云依赖版本
答案 0 :(得分:1)
尝试删除显式路由,然后将以下属性添加到应用yml。这对我有用。
spring:
cloud:
gateway:
discovery:
locator:
lower-case-service-id: true