Poseemos la mejor respuesta que hallamos on line. Nuestro deseo es que te resulte de ayuda y si puedes aportar alguna mejora puedes hacerlo..
Solución:
Voy a implementar la orquestación de un conjunto de microservicios en mi aplicación.
Este es un problema difícil de resolver por ti mismo. Probablemente sea mejor usar un sistema de orquestación existente (ver más abajo).
¿Hay alguna otra herramienta poderosa?
Debería investigar kubernetes, que parece ser el estándar en la orquestación en estos días. Tiene muchos beneficios adicionales (permite escalabilidad, autorreparación, etc.) y es ampliamente utilizado en producción hoy en día. Consulte los siguientes enlaces:
- página web de Kubernetes
- Artículo
Con respecto a comparar zookeeper, eureka y kubernetes:
- Zookeeper es un distribuido key almacén de valor. Se puede utilizar como base para implementar el descubrimiento de servicios (similar a etcd).
- Eureka es principalmente un localizador de servicios que se utiliza como parte de los balanceadores de carga y conmutación por error de Netflix (permite encontrar los objetivos de servicio correctos para distribuir las llamadas de los clientes a los miembros de un clúster de aplicaciones).
- Kubernetes es una solución de orquestación de contenedores que incluye la implementación, el descubrimiento y la autorreparación de servicios. Para obtener una lista completa de características, consulte el enlace de arriba. El descubrimiento de servicios en kubernetes se basa en dns en la red virtual que abarca y se basa en etcd.
- Consul (mencionado en la otra respuesta) es un marco de descubrimiento de servicios con una interfaz REST y algunas características adicionales (comprobación de estado, segmentación de servicios,…). Tiene su propio interno distribuido key almacén de valor que se puede utilizar también.
Otra herramienta podría ser Cónsul.
Eureka es principalmente una herramienta de descubrimiento de servicios y está diseñada principalmente para usar dentro de la infraestructura de AWS.
Zookeeper es un programa distribuido de propósito común key/almacén de valor que se puede usar para el descubrimiento de servicios junto con el marco curator-x-discovery
Aquí hay una breve descripción general de las soluciones de descubrimiento de servicios
También puede encontrar una comparación de Consul vs Eureka vs Zookeeper aquí.
Aunque Cónsul es además de guardián del zoológico, puede usarse no solo para descubrir, sino también como key/tienda de valor, las ventajas de Consul son características geniales de descubrimiento de servicios listas para usar
- DNS fuera de la caja
- conveniente API RESTful
- API de HealthCheck lista para usar
Además, consul tiene una naturaleza más distribuida: los agentes están instalados en todas las máquinas virtuales de servicio y, por lo tanto, el sistema tiene una mayor disponibilidad que zookeeper. Tenga en cuenta que el sistema cónsul tiene un acoplamiento bajo entre los centros de datos.
Zookeeper es maduro, pero demasiado genérico. Por lo tanto, puede usar zookeeper no solo para el descubrimiento de servicios, sino también para almacenar configuraciones, bloqueos distribuidos, notificaciones, etc. Nuevamente, es conveniente usar toda esta funcionalidad con Curator Framework / Curator Recipes.
Zookeeper utiliza un esquema de comunicación maestro/esclavo entre los nodos del clúster. El maestro es elegido por los miembros del clúster. Tenga en cuenta que podría haber casos extremos (debido a problemas de red, por ejemplo) cuando aparece más de 1 maestro en el clúster. En este caso, el reinicio del clúster ayuda.
La diferencia de Eureka con Zookeeper y Consul es que Eureka es un sistema de propósito limitado: descubrimiento de servicios y sistema de equilibrio de carga.
Los 3 sistemas se pueden integrar con Spring.
Si eres capaz, puedes dejar una reseña acerca de qué te ha parecido esta crónica.