在运行时动态配置 Zuul 代理?
Dynamically Configuring a Zuul Proxy during Runtime?
我有一个 url 路径,如下所示:
/{identifier}/rest/of/resource/path
如果 identifier
是 A
,则请求应转到 service_I
。如果 identifier
是 B
那么请求也应该转到 service_I
。如果 identifier
是 C
,那么请求应该转到 service_II
,依此类推。
稍后将新的 identifiers
M
和 N
添加到系统中,他们的请求应路由到 service_IV
。
是否可以动态配置 Spring 云 zuul 代理来执行上述任务?
编辑
此 包含检查问题的不同方法。
其中Zuul有如下配置:
zuul:
routes:
<service_id>:
path: /path/**
Zuul 将与 Eureka 协作找到 service-id
和 return 主机参数,以便可以访问服务。如果 /path
而不是 /{userID}
并且 userID
实例分布在多个 service_id
主机上怎么办?
Zuul / DiscoveryClient 可以查询 Eureka 的 service_id
和 userID
以确定哪个主机托管特定的 userID
?
您需要编写自定义 ZuulFilter
来完成此操作。查看 PreDecorationFilter 以获得一些提示,因为这是负责处理 /path
的过滤器,其中路径是 service-id
(除其他外)。
我有一个 url 路径,如下所示:
/{identifier}/rest/of/resource/path
如果 identifier
是 A
,则请求应转到 service_I
。如果 identifier
是 B
那么请求也应该转到 service_I
。如果 identifier
是 C
,那么请求应该转到 service_II
,依此类推。
稍后将新的 identifiers
M
和 N
添加到系统中,他们的请求应路由到 service_IV
。
是否可以动态配置 Spring 云 zuul 代理来执行上述任务?
编辑
此
其中Zuul有如下配置:
zuul:
routes:
<service_id>:
path: /path/**
Zuul 将与 Eureka 协作找到 service-id
和 return 主机参数,以便可以访问服务。如果 /path
而不是 /{userID}
并且 userID
实例分布在多个 service_id
主机上怎么办?
Zuul / DiscoveryClient 可以查询 Eureka 的 service_id
和 userID
以确定哪个主机托管特定的 userID
?
您需要编写自定义 ZuulFilter
来完成此操作。查看 PreDecorationFilter 以获得一些提示,因为这是负责处理 /path
的过滤器,其中路径是 service-id
(除其他外)。