Direccionabilidad de microservicios y el Registro del servicio
Sugerencia
Este contenido es un extracto del libro electrónico, ".NET Microservices Architecture for Containerized .NET Applications" (Arquitectura de microservicios de .NET para aplicaciones de .NET contenedorizadas), disponible en Documentación de .NET o como un PDF descargable y gratuito que se puede leer sin conexión.
Cada microservicio tiene un nombre único (URL) que se usa para resolver su ubicación. El microservicio debe ser direccionable en cualquier lugar donde se ejecute. Si tiene que pensar en qué equipo se ejecuta un microservicio determinado, todo puede ir mal rápidamente. De la misma manera que DNS resuelve una URL para un equipo en particular, su microservicio debe tener un nombre único para que su ubicación actual sea reconocible. Los microservicios deben tener nombres direccionables que les permitan ser independientes de la infraestructura en que se ejecutan. Este enfoque implica que hay una interacción entre cómo se implementa el servicio y cómo se detecta, porque debe haber un registro del servicio. Del mismo modo, cuando se produce un error en un equipo, el servicio del Registro debe ser capaz de indicar que el servicio se está ejecutando.
El patrón del Registro del servicio es una parte fundamental de la detección de servicios. El Registro es una base de datos que contiene las ubicaciones de red de las instancias del servicio. Un Registro del servicio debe estar muy disponible y actualizado. Los clientes podrían almacenar en caché las ubicaciones de red obtenidas del Registro del servicio. Sin embargo, esa información finalmente se queda obsoleta y los clientes ya no pueden detectar las instancias del servicio. Por tanto, un registro del servicio consta de un clúster de servidores que usan un protocolo de replicación para mantener su coherencia.
En algunos entornos de implementación de microservicios (denominados clústeres, de los cuales se hablará en una sección posterior), la detección de servicios está integrada. Por ejemplo, un entorno de Azure Kubernetes Service (AKS) puede controlar el Registro y la anulación del Registro de la instancia del servicio. También ejecuta un proxy en cada host del clúster que desempeña el rol de enrutador de detección del lado servidor.
Recursos adicionales
Chris Richardson. Pattern: Service registry (Patrón: registro de servicios)
https://microservices.io/patterns/service-registry.htmlAuth0. The Service Registry (El registro de servicios)
https://auth0.com/blog/an-introduction-to-microservices-part-3-the-service-registry/Gabriel Schenker. Detección de servicios
https://lostechies.com/gabrielschenker/2016/01/27/service-discovery/