通过ZUUL路由现有服务而不添加路由规则

时间:2016-12-13 10:28:38

标签: spring-boot netflix-zuul netflix-eureka spring-cloud-netflix

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

我在以下网址提供现有服务,

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

开箱即用,我可以使用zuul路由到服务,如下所示, localhost:9000 / queryservice-id / queryservice / getquery / 1,with" 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路由。

谢谢,

1 个答案:

答案 0 :(得分:0)

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