动态创建多个Ribbon客户端

cos*_*mos 5 java spring spring-cloud spring-cloud-netflix

我有一个 Spring 微服务架构应用程序,但我们没有使用 eureka 或任何其他服务发现。我的要求是创建一个动态负载均衡器。因此,对于每项服务,都会有一组独特且动态的服务器。配置将类似于:

ribbon:
  listOfServices: say-hello-service, say-hi-service
Run Code Online (Sandbox Code Playgroud)

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

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

小智 0

您可以将其用作

@RibbonClient(“{服务1,服务2}”)

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