web-dev-qa-db-fra.com

Quel est le rôle de Zookeeper vs Eureka pour les microservices?

Je vais implémenter l'orchestration d'un ensemble de microservices dans mon application. Deux outils largement utilisés que j'ai trouvés vs Apache Zookeeper et Netflix Eureka .

Quelqu'un peut-il me donner s'il vous plaît une comparaison basée sur les différences fondamentales que ces deux services ont?

Y a-t-il un autre outil puissant?

19
Supun Wijerathne

Je vais implémenter l'orchestration d'un ensemble de microservices dans mon application.

C'est un problème difficile à résoudre par vous-même. Il vaut probablement mieux utiliser un système d’orchestration existant (voir ci-dessous).

Y a-t-il un autre outil puissant?

Vous devriez vous pencher sur les kubernetes, qui semblent être la norme en orchestration de nos jours. Il présente de nombreux avantages supplémentaires (permettre l'évolutivité, l'auto-guérison, etc.) et est largement utilisé dans la production aujourd'hui. Voir les liens suivants:

En ce qui concerne la comparaison de zookeeper, eureka et kubernetes:

  • Zookeeper est un magasin de valeurs de clés distribuées. Il peut être utilisé comme base pour implémenter la découverte de service (similaire à etcd).
  • Eureka est principalement un localisateur de service utilisé dans le cadre des équilibreurs de charge et du basculement Netflixes (permet de rechercher les bonnes cibles de service pour la distribution des appels clients aux membres d'un cluster d'applications).
  • Kubernetes est une solution d’orchestration de conteneur qui inclut le déploiement, la découverte et la réparation automatique de services. Pour une liste complète des fonctionnalités, consultez le lien ci-dessus. La découverte de service dans kubernetes est basée sur les DNS du réseau virtuel couvert et construit sur etcd.
  • Consul (mentionné dans l’autre réponse) est un cadre de découverte de service avec une interface REST) et certaines fonctionnalités supplémentaires (vérification de l’état de santé, segmentation du service, ..). son propre magasin interne de valeurs de clés distribuées pouvant également être utilisé.
13
Oswin Noetzelmann

Un autre outil pourrait être Consul .

Eureka est principalement un outil de découverte de services conçu pour être utilisé dans l’infrastructure AWS.

Zookeeper est un magasin clé/valeur distribué à usage commun qui peut être utilisé pour la découverte de services conjointement avec infrastructure curator-x-discovery

Voici un bref aperçu des solutions de découverte de services

Vous pouvez également trouver la comparaison de Consul vs Eureka vs Zookeeper ici.

Bien que Consul soit aussi bien que zookeeper - il peut être utilisé non seulement pour la découverte mais aussi comme magasin de clés/valeurs, ses avantages sont des fonctionnalités de découverte de services intéressantes prêtes à l'emploi

  1. DNS hors de la boîte
  2. aPI RESTful pratique
  3. HealthCheck API prête à l'emploi

De plus, consul a une nature plus distribuée: les agents sont installés sur toutes les machines virtuelles de service et, par conséquent, la disponibilité du système est supérieure à celle de zookeeper. Sachez que le système consul a faible couplage entre les centres de données .

Zookeeper est mature, mais trop générique. Ainsi, vous pouvez utiliser zookeeper non seulement pour la découverte de services, mais également pour stocker des configurations, des verrous distribués, des notifications, etc. Encore une fois, il est pratique d’utiliser toutes ces fonctionnalités avec Curator Framework/Curator Recipes.

Zookeeper utilise un schéma de communication maître/esclave entre les nœuds du cluster. Maître est élu par les membres du cluster. Sachez qu'il peut y avoir des cas Edge (dus à des problèmes de réseau, par exemple) lorsqu'il apparaît plus d'un maître dans le cluster. Dans ce cas, le redémarrage du cluster aide.

La différence entre Eureka et Zookeeper et Consul est qu’Eureka est un système à usage étroit - système de découverte de services et d’équilibrage de charge.

Tous les 3 systèmes peuvent être intégrés avec Spring.

11
Alex M981