1

Mon environnement actuel est une configuration Spring Cloud utilisant Eureka et j'ai plusieurs clients Feign dans l'application. Ce que je veux faire est d'autoriser la plupart de mes clients Feign à résoudre leurs services via le serveur de découverte mais en empêcher un ou deux de le faire afin d'utiliser mon instance locale sur laquelle je suis en train de développer. Je cours le service que je développe et l'application de client localement. Je souhaite que l'application cliente utilise la découverte pour la découverte de tous les services et remplace un client Feign pour utiliser uniquement mon service d'exploitation local.Configurer FeignClient pour utiliser url par variable d'environnement sans désactiver Eureka

Y at-il un moyen de le faire sans désactiver Eureka sur le client? J'ai exploré ces deux questions (one, two) et je n'ai pas réussi à obtenir un impact sur le champ listOfServers à moins d'avoir désactivé Eureka. Si cela compte en travaillant dessus, j'ai fait le service que je souhaite connecter pour ne pas m'inscrire chez eureka.

Répondre

1

Vous pouvez spécifier une URL pour un FeignClient spécifique sans désactiver le client Eureka avec la propriété <ribbonclientname>.ribbon.NIWSServerListClassName. Supposons que l'ID de service pour diriger le routage est testA. Vous pouvez définir la propriété ci-dessous sans désactiver le client Eureka.

testA: 
    ribbon: 
    NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList 
    listOfServers: ${url for your test server} 

Si vous spécifiez com.netflix.loadbalancerConfigurationBasedServerList comme NIWSServerListClassName, client de ruban à l'intérieur de votre client Feindre utilisera l'adresse qui a été donnée par listOfServers propriété sans désactiver eureka.