3

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

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

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

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

ribbon.client.name=myFirstClientName

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

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

ribbon.client.name=myFirstClientName,mySecondClientName

然而,这并没有奏效。

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

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

有什么想法吗?

4

1 回答 1

3

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

结果类将是

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

第二个客户是:

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

然后当然我会设置我的两个服务器ip列表

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

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

于 2017-03-08T14:57:36.280 回答