在运行时动态配置 Zuul 代理?

Dynamically Configuring a Zuul Proxy during Runtime?

我有一个 url 路径,如下所示:

/{identifier}/rest/of/resource/path

如果 identifierA,则请求应转到 service_I。如果 identifierB 那么请求也应该转到 service_I。如果 identifierC,那么请求应该转到 service_II,依此类推。

稍后将新的 identifiers MN 添加到系统中,他们的请求应路由到 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_iduserID 以确定哪个主机托管特定的 userID

您需要编写自定义 ZuulFilter 来完成此操作。查看 PreDecorationFilter 以获得一些提示,因为这是负责处理 /path 的过滤器,其中路径是 service-id(除其他外)。