ZooKeeper alternatives? (groupe de coordination des services)
ZooKeeper est un très disponible, service de la coordination pour les centres de données. Il trouve son origine dans le projet Hadoop. On peut mettre en œuvre de verrouillage, d'un basculement, chef de file de l'élection, les membres du groupe et d'autres problèmes de coordination sur le dessus de cela.
Existe-il des alternatives à la Gardienne? logiciel gratuit de cours)
Vous devez vous connecter pour publier un commentaire.
J'ai regardé longuement à Zookeeper/Conservateur, Eureka, etcd, et le consul. Zookeeper et Conservatrice, et Eureka sont à bien des égards le plus poli et le plus facile à intégrer si vous êtes dans le monde Java. Etcd est assez cool et très souple, mais Il est vraiment juste une HA magasin de clés de sorte que vous avez à écrire beaucoup de code pour le transformer en un opiniâtre de découverte de service du système.
Consul est (pour moi) le meilleur des deux mondes. C'est un opiniâtre de découverte de service du système d'écrit sur le dessus de serf, à l'aide de radeau pour le groupe de consensus et de ragots pour la communication. Il expose la découverte /l'enregistrement des points de terminaison avec une bien documenté api REST, et vous permet également de découvrir des services avec les enregistrements DNS SRV, et le registre de services avec la configuration (c'est à dire de sorte que vous pouvez enregistrer une base de données ou l'application que vous ne pouvez pas intégrer un client, ou si vous voulez juste pour garder votre service de découverte découplé à partir de votre application)
J'ai écrit un billet de blog à propos consul où vous pouvez en apprendre plus et de marcher à travers mon "essayer" de démonstration
J'ai aussi discuté la découverte de services avec etcd & menu fixe si vous voulez en savoir plus sur ce que le code personnalisé pourrait ressembler.
Une dernière chose! etcd & consul sont écrits en aller, afin de maintenir leur est beaucoup plus facile que les solutions java comme la gardienne. Tous vous avez besoin est le consul /etcd binaire. pas de dépendance, pas de librairies, pas de jvm.
Il y a une alternative très prometteuse pour ZooKeeper appelé etcd (github.com/coreos/etcd), écrit par CoreOS de l'équipe. Contrairement à Doozerd, etcd est activement développée.
Viens de découvrir Accord (C) et OpenReplica/ConCoord (Python) qui peuvent être des solutions intéressantes
[MODIFIER] La Hashicorp de l'équipage, de l'Errance et de Packer fame, sont de cuisine "une solution décentralisée pour le service de découverte et d'orchestration" appelé Serf.
[EDIT2] Hashicorp frappe à nouveau ! Ils viennent de sortir de Consul, construit sur le haut du Serf. Le pitch: "une solution pour la découverte de service et de configuration, complètement distribué, hautement disponible et évolutive à des milliers de nœuds et de services entre plusieurs centres de données".
Oui, il y a aussi Doozerd (https://github.com/ha/doozerd). Prendre un bon coup d'oeil, c'est un gentil, simple binaires distribués coordination service développé par la société Heroku. Avec fixations/bibliothèques java/python/ruby/nœud. Très facile à prendre en main et de jouer.
Prendre un coup d'oeil à Serf. Il y a une comparaison vs Zookeeper ici.
OpenReplica de mon groupe de recherche est très disponible logiciels libres service de coordination pour les centres de données. Il peut être utilisé pour la mise en œuvre de verrouillage, d'un basculement, chef de file de l'élection, les membres du groupe et d'autres services de coordination. Elle diffère de la Gardienne de deux façons:
Il utilise une API orientée objet. Cela le rend beaucoup plus facile d'écrire de la coordination des services. Code de synchronisation pour OpenReplica ressemble exactement à son homologue manuel; il n'est pas nécessaire de maîtriser un fichier et upcall API comme dans ZooKeeper et Joufflu.
Il permet aux membres dynamiques mises à jour pour le jeu de réplicas. Il n'est pas nécessaire pour les fichiers de configuration statique. Le système est intégré dans le système DNS (autorité, de l'esclave pour OpenReplica, ou Amazon Route 53).
Nous soutenons activement le système, n'hésitez pas à laissez-nous savoir si vous avez d'autres questions.
Il y a un projet appelé Noé sur github qui semble intéressant, il dit que c'est "vaguement basé sur Apache ZooKeeper" https://github.com/lusis/Noah avec le RESTE de l'appui d'une touche de fonction (ZK a ce que une contrib/option plutôt qu'intégré).
Il existe différents outils qui optimisent les différents ingénierie de compromis.
Les autres sont un peu intéressant, mais pas encore prouvés. Ne pas se tromper s'ils sont destinés à la production de l'utilisation.
J'avais trouvé cette comparaison de Zookeeper, etcd et Doozer:
http://devo.ps/blog/zookeeper-vs-doozer-vs-etcd/
Serf (le servage.io) est également une bonne solution car il est simple! Mais vous devez prendre en compte, SERF est juste un cluster manager qui vous permet d'envoyer des événements personnalisés à tous les nœuds du cluster. C'est sympa, mais vous devez écrire vos propres scripts shell (aka événements).
Voir cet exemple: "https://www.digitalocean.com/community/articles/how-to-set-up-a-serf-cluster-on-several-ubuntu-vps"
L'avantage est que vous obtenez un très simple cluster manager et vous êtes en mesure de combiner cela avec votre favori de configuration, de déploiement ou de l'outil d'intégration continue.
Il semble Corosync est aussi comme la Gardienne.
Je sais que ce post est assez vieux, mais quelqu'un qui est à la recherche à toutes les alternatives possibles, je voudrais aussi suggérer JGroups de la bibliothèque qui est assez mature pour être utilisé en environnement de production. Je l'ai utilisé avec succès dans un de mes projets, principalement pour la distribution de la coordination et de partager des messages entre le cluster. Elle soutient également des AWS support en plus de son architecture flexible où vous pouvez personnaliser sa pile à obtenir ce dont vous avez besoin. Je vous suggère de avoir un coup d'oeil