在不添加路由规则的情况下通过 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
我正在尝试通过 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