我的应用程序连接多个REST API。
我成功地为我的应用程序添加了一个Ribbon Client / Load Balance,用于其中一个具有自己的服务器列表的API
现在我想添加第二个客户端来保存第二个API的服务器列表。
为了定义Archaius用来加载特定属性的客户名,我添加了以下属性。
ribbon.client.name=myFirstClientName
我的问题是:如何在同一个应用程序中定义另一个客户端?
我认为这将是一个以逗号分隔的列表,如:
ribbon.client.name=myFirstClientName,mySecondClientName
但是,这不起作用。
最终,我希望最终得到两个服务器列表,例如
myFirstClientName.ribbon.listOfServers=<ip>,<ip>
mySecondClientName.ribbon.listOfServers=<ip>,<ip>
有什么想法吗?
答案 0 :(得分:3)
我能够通过在为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捕获,否则它将无效。