在不添加路由规则的情况下通过 ZUUL 路由现有服务

Route Existing Services via ZUUL without adding routing rule

我正在尝试通过 Spring 云 Netflix Zuul 路由现有服务。

我在 url、

下面有可用的现有服务

http://localhost:3080/query-service/getquery/1

开箱即用,使用 zuul 我可以按如下方式路由到服务, localhost:9000/queryservice-id/queryservice/getquery/1,在 Service Registry 中注册时将 "queryservice-id" 作为服务的服务 ID。 zuul端口为9000.

我不想在通过ZUUL访问服务时更改上下文路径和服务路径信​​息。

使用 ZUUL,我想访问如下服务, http://localhost:9000/query-service/getquery/1

我确实想使用 "serviceId" 作为前缀。这是因为我不想影响该服务的任何现有客户。只有主机和端口变化,没有serviceId。

我能够通过 ZUUL 配置完成如下操作,

zuul:
  routes:
    query-service:
      path: /query-service/**
      serviceId: query-service
      stripPrefix: false

通过以上配置,我只能使用zuul主机和端口,其他服务特定信息保持不变。似乎 stripPrefix 在没有 serviceId 的情况下帮助路由。

但是,我有很多服务,而且还会添加更多服务。

对于每一个这样的服务,我不想在 ZUUL 配置中添加这样的规则,这将意味着重建和回收 ZUUL 服务。

我觉得应该有一个更简单更好的方法来完成这个,而不需要很大的努力,因为我想做的改变对所有服务都是通用的

有没有办法让我想要的所有服务都通用此更改 通过 ZUUL 路由。

谢谢,

经与 Spring Cloud Netflix 团队确认,这是推荐的方法。 https://github.com/spring-cloud/spring-cloud-netflix/issues/1549