Java 动态创建多个功能区客户端

Java 动态创建多个功能区客户端,java,spring,spring-cloud,spring-cloud-netflix,Java,Spring,Spring Cloud,Spring Cloud Netflix,我有一个SpringMicroservices架构应用程序,但我们没有使用eureka或任何其他服务发现。我的要求是创建一个动态负载平衡器。因此,对于每个服务,都将有一组独特的、动态的服务器。 配置如下所示: ribbon: listOfServices: say-hello-service, say-hi-service 我不想做的是,对我将使用的每个服务客户端重复@RibbonClient注释。 我发现RibbonClientSpecification是Ribbon工厂的关键组件。如果

我有一个SpringMicroservices架构应用程序,但我们没有使用eureka或任何其他服务发现。我的要求是创建一个动态负载平衡器。因此,对于每个服务,都将有一组独特的、动态的服务器。 配置如下所示:

ribbon:
  listOfServices: say-hello-service, say-hi-service
我不想做的是,对我将使用的每个服务客户端重复
@RibbonClient
注释。 我发现
RibbonClientSpecification
是Ribbon工厂的关键组件。如果我将其注册为名称
say hello service.RibbonClientSpecification
say hi service.RibbonClientSpecification
,它将尝试调用相应的服务,即使我没有
@RibbonClient
和任何与功能区相关的配置。所以我的问题是

  • 既然我们可以从定义的属性中识别服务,为什么需要
    @RibbonClient
    注释?在我看来,在属性文件中定义功能区属性以及使用相同名称的注释是多余的
  • 如何为动态创建的每个功能区客户端注册负载平衡器
  • 在没有多个
    @RibbonClient
    配置类的情况下,动态创建多个功能区客户端的权利是什么
  • 您可以使用它作为

    @RibbonClient(“{services1,service2}”)


    无需为不同的服务始终指定或创建新功能区。

    所有功能区负载平衡器都是动态的
    @RibbonClient
    仅在需要时用于自定义特定的功能区负载平衡器。@Spencergib所以,我想自定义它。我想根据服务名称从数据库中提取每个服务的服务器列表。但我不想多次编写@RibbonClient。我需要一种通用的方法来获得与
    @RibbonClient
    提供自定义配置时相同的结果。我该怎么做?@cosmos你能完成这个吗。方法是什么?