2

Nous utilisons un environnement Spring Boot avec environ 15 microservices et une passerelle Zuul Edge enregistrée avec Eureka. Actuellement, j'ai configuré tous les microservices pour appeler d'autres microservices via la passerelle Zuul (par exemple, si serviceA doit appeler serviceB, la propriété de configuration d'URL sera serviceB.baseUrl=http://zuul.mydomain.com:7001 où zuul.mydomain.com est notre serveur de développement sur AWS avec tous les autres microservices derrière il). Zuul à son tour des proxies aux microservices via les recherches de registre Eureka. L'un des avantages de faire cela est que pour un développeur travaillant localement sur sa machine, il aurait juste besoin d'exécuter son service et toutes les autres dépendances sur d'autres services sont accessibles via la passerelle Zuul sur AWS (et dans notre écosystème , il y a beaucoup de telles dépendances entre services). Maintenant, je voudrais vraiment tirer parti du plein potentiel d'Eureka/Ribbon et faire des appels directement à un microservice pair via son nom de service et un @LoadBalanced RestTemplate mais je trouve que cela imposerait beaucoup au développeur d'avoir à recréer un écosystème entier sur sa machine. Au minimum, il devrait gérer Eureka, son propre service et tous les autres services dont dépend son service. Cela rend les barrières à l'entrée pour le développement inutilement élevées. J'ai envisagé de créer le registre d'instance local du développeur pour notre service Eureka sur AWS, mais le problème est que tous les services sur AWS sont enregistrés en utilisant l'IP privée de l'instance EC2 qui est fondamentalement inaccessible depuis la machine du développeur. Si je force le service à s'inscrire en utilisant son IP publique, cela signifierait que je dois utiliser plus de notre allocation ElasticIP pour chaque service ou changer l'IP chaque fois que l'instance EC2 est redémarrée. Je pourrais faire fonctionner un environnement local Eureka + microservices dans le réseau local, mais cela signifie que je dois créer un tel environnement pour chaque bureau que nous exploitons, ce qui signifie simplement plus de frais généraux. En plus de ce problème, cela signifierait probablement que le développeur A peut appeler la version à moitié faite-pas-encore-encore-là du développeur B d'un service de dépendance qui vient troubler tout le monde en cas de problème (les services qui être déployé dans notre environnement AWS au moins passe d'abord par une revue de code avant d'être déployé).Nous recherchons des conseils sur la bonne approche du développement sur Netflix Eureka services de démarrage détectables avec un minimum de frais généraux

S'il y a quelqu'un qui a trouvé un moyen de simplifier la configuration d'un développeur tout en étant en mesure de tirer parti des possibilités d'invocation de service peer-to-peer des clients Feign/@LoadBalanced RestTemplate, j'aimerais obtenir quelques indications dans la bonne direction.

Répondre

1

ont confirmé que je peux accomplir ce que je veux (ce qui est d'être en mesure de faire du développement local sur ruban permis clients RestTemplate sans avoir à exécuter Eureka) par:

  1. Ruban force de ne pas utiliser Eureka en utilisant la propriété suivante: ribbon.eureka.enabled=false
  2. fournir manuellement le ruban avec les serveurs au point d'utiliser la propriété exemple suivant: servicename.ribbon.listOfServers=test.service.com:8080