En el post anterior vimos como podemos mantener las configuraciones de nuestros microservicios y ahora veamos que productos hay en el mercado:
Etcd: Proyecto de código abierto escrito en Go. Se utiliza para el descubrimiento de servicios y la gestión de configuración. Utiliza el protocolo raft (https://raft.github.io/) para su modelo de computación distribuida. Como beneficios podemos nombrar:
- Muy rápido y escalable
- Distribuible
- Impulsado por línea de comandos
- Fácil de usar y configurar
Eureka: Escrito por Netflix. Extremadamente probado en batalla. Se utiliza tanto para el descubrimiento de servicios como para la gestión de forma clave-valor. Como características podemos nombrar:
- Almacén distribuido clave-valor.
- Flexible; requiere esfuerzo para configurar
- Ofrece actualización dinámica del cliente lista para usar
Cónsul: Escrito por Hashicorp. Similar a Etcd y Eureka en características, pero usa un algoritmo diferente para su modelo de computación distribuida (protocolo SWIM; https://www.cs.cornell.edu/~asdas/research/dsn02-swim.pdf).
- Rápido
- Ofrece descubrimiento de servicios nativos con la opción de integrarse directamente con DNS
- No ofrece actualización dinámica para el cliente de inmediato.
ZooKeeper: un proyecto de Apache que ofrece capacidades de bloqueo distribuidas. A menudo se utiliza como una solución de gestión de la configuración para acceder a datos valor-clave.
- Las soluciones más antiguas y probadas en batalla
- El más complejo de usar
- Se puede utilizar para la gestión de la configuración, pero solo debe tenerse en cuenta si ya está utilizando ZooKeeper en otras piezas de su arquitectura.
Servidor de configuración de Spring Cloud: un proyecto de código abierto que ofrece una solución de administración de configuración general con diferentes backends. Puede integrarse con Git, Eureka y Consul como back-end.
- Almacén distribuido clave-valor no distribuido
- Ofrece una estrecha integración para los servicios Spring y no Spring
- Puede usar múltiples backends para la creación de historias
- datos de configuración que incluyen sistema de archivos, Eureka, Consul y Git