2017-03-07 1 views
2

Mon application se connecte à plusieurs API REST.Ruban Netflix avec Spring Ajout de plusieurs clients

J'ai réussi à ajouter un client ruban/équilibrage de charge à ma demande pour une de ces API avec sa propre liste de serveurs

Maintenant, je voudrais ajouter un second client qui détiendrait le serveur liste pour ma deuxième API.

Afin de définir mon nom de client qui est utilisé par Archaius pour charger des propriétés spécifiques, j'ai ajouté la propriété suivante.

ribbon.client.name=myFirstClientName

Ma question est: Comment puis-je définir un autre client sur la même application?

Je pensais que ce serait une liste séparée par des virgules comme ribbon.client.name=myFirstClientName,mySecondClientName mais cela n'a pas fonctionné.

Finalement, je veux finir avec deux liste des serveurs comme

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

Toute pensée?

Répondre

2

J'ai été capable de le faire fonctionner en ajoutant une annotation @RibbonClient sur les interfaces que j'ai créées pour Feign.

La classe résultante serait

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

client Second serait:

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

Alors bien sûr, je mettrais mes deux listes de serveur ips

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

PS: Faites Assurez-vous que vos classes de configuration - MySecondClientConfig et MyFirstClientConfig - ci-dessus ne sont pas sur ApplicationContext. Ne le laissez pas attraper quelque part par @ComponentScan, sinon cela ne fonctionnera pas.