【问题标题】:Netflix Ribbon with Spring Adding Multiple Clients带有 Spring 添加多个客户端的 Netflix 功能区
【发布时间】:2017-07-27 23:58:25
【问题描述】:

我的应用程序与多个 REST API 连接。

我已经成功地将功能区客户端/负载平衡添加到我的应用程序中,用于其中一个具有自己的服务器列表的 API

现在我想添加第二个客户端来保存我的第二个 API 的服务器列表。

为了定义 Archaius 用来加载特定属性的客户端名称,我添加了以下属性。

ribbon.client.name=myFirstClientName

我的问题是:如何在同一个应用程序上定义另一个客户端?

我认为这将是一个逗号分隔的列表,例如:

ribbon.client.name=myFirstClientName,mySecondClientName

但是,这不起作用。

最终,我想得到两个服务器列表,例如

myFirstClientName.ribbon.listOfServers=<ip>,<ip>
mySecondClientName.ribbon.listOfServers=<ip>,<ip>

有什么想法吗?

【问题讨论】:

    标签: spring netflix netflix-feign netflix-ribbon


    【解决方案1】:

    我可以通过在我为 Feign 创建的接口上添加 @RibbonClient 注释来使其工作。

    生成的类将是

    @FeignClient("http://myFirstClientName/")
    @RibbonClient(value = "myFirstClientName", configuration = MyFirstClientConfig.class)
    public interface MyFirstFeignService {
    

    第二个客户是:

    @FeignClient("http://mySecondClientName/")
    @RibbonClient(value = "mySecondClientName", configuration = MySecondClientConfig.class)
    public interface MySecondFeignService {
    

    那么我当然会设置我的两个服务器 ips 列表

    myFirstClientName.ribbon.listOfServers=<ip>,<ip>
    mySecondClientName.ribbon.listOfServers=<ip>,<ip>
    

    PS:确保您的配置类 - MySecondClientConfig 和 MyFirstClientConfig - 不在 ApplicationContext 上。不要让它被某个地方的@ComponentScan 捕获,否则它将无法工作。

    【讨论】:

      猜你喜欢
      • 2018-06-18
      • 2016-06-13
      • 2017-03-02
      • 2020-08-04
      • 1970-01-01
      • 2022-12-05
      • 2015-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多