Spring云网关的默认路由无法使用

问题描述 投票:1回答:1

我想通过在eureka中注册的服务ID(应用程序名称)在我的spring云网关(没有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的仪表板时,我可以看到我的聊天服务和网关也被注册了。

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云端依赖版本。

spring spring-boot microservices spring-cloud spring-cloud-gateway
1个回答
0
投票

试着删除显式路由,并在应用程序yml中添加以下属性。这对我来说是可行的。

spring:
  cloud:
    gateway:
      discovery:
        locator:
          lower-case-service-id: true
© www.soinside.com 2019 - 2024. All rights reserved.