首页 > 解决方案 > Spring Boot Zuul:如何在没有应用前缀的发现服务中注册多个 MS

问题描述

假设我有 2 个微服务:

ms-1
ms-2

ms-1 有 REST 服务 GET /api/myService1 ms-2 有 REST 服务 GET /api/myService2

我让它们都在 Spring Boot 发现服务(Eureka)中注册并与 Zuul 作为网关集成,因此它们被自动映射为:

/ms-1/api/myService1
/ms-2/api/myService2

这工作正常,没问题,但我希望在发现服务中注册的微服务在 Zuul 中可用,而无需应用程序名称前缀,因此在我的示例中,它们可以作为:

/api/myService1
/api/myService2

(路径中没有应用名称)

这是否可以通过 Eureka 发现服务(没有 yaml 配置来管理每个路径,而只是使用 Eureka 的自动发现服务?怎么做?

标签: spring-bootnetflix-zuulspring-cloud-netflixspring-cloud-config

解决方案


我在文件中只有我的Consul服务发现的设置,bootstrap.yml并且一切正常,正如你在你的问题中想要的那样。

spring:
  application:
    name: zuul-sample
  cloud:
    consul:
      enabled: true
      host: localhost

我想你只需要告诉你的 zuul 应用程序如何找到你的 eurika。并且做到这一点bootstrap.yml,而不是application.yml


推荐阅读