我想通过在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 的 Jmeter 板我可以看到注册我的聊天服务和网关以及.
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";
}
}
型
我做错了什么?我有点绝望。我使用的是Sping Boot 2.2.2和霍克斯顿.RELEASE云依赖版本
2条答案
按热度按时间xn1cxnb41#
尝试删除显式路由并将下面的属性添加到应用程序yml。这对我很有效
字符串
wf82jlnq2#
在终端服务中:
字符串
在api-gateway项目中:
型