Los microservicios necesariamente necesitan usar alguna forma de descubrimiento de servicios para localizar y comunicarse con otros microservicios. La manera más fácil de comenzar es probablemente dejando que su sistema de descubrimiento de servicios maneje otro intermediario bien entendido, como DNS o HAProxy. Pero estas soluciones tienen desventajas: el DNS tarda en actualizarse y le da muy poco control a los clientes, lo que hace que sea difícil o imposible hacer cosas como actualizaciones continuas o un balanceo adecuado; Las soluciones basadas en proxy introducen un cuello de botella que también puede convertirse en un único punto de falla.
Por estas razones, muchas organizaciones optan por hacer que los microservicios establezcan y mantengan conexiones al sistema de descubrimiento de servicios directamente y, de hecho, mantengan su propio grupo de instancias con equilibrio de carga, tolerancia a fallas y circuito roto localmente. Esto tiene la ventaja de un control mucho mayor de las dependencias y los comportamientos del lado del cliente, a costa de poner más responsabilidad a los microservicios.
Definitivamente no es un antipatrón. La mayoría de las tiendas de microservicios grandes funcionan de esta manera y han creado herramientas para soportarlo; Finagle de Twitter, Eureka de Netflix y paquetes genéricos como (el mío) el kit Go admiten este estilo. Y la mayoría de los sistemas de descubrimiento de servicios esperan ser utilizados de esta manera, como Consul.
- ¿El descubrimiento de qué físico tuvo un gran efecto práctico en nuestro mundo?
- ¿Alan Guth pasará a la historia científica después de este gran descubrimiento?
- ¿Alguna vez has deseado no haber descubierto la verdad sobre algo?
- ¿Cuáles son algunas cosas que se descubrieron primero en India?
- ¿El descubrimiento de ondas gravitacionales desacredita la teoría M?