Zuul (puerta de enlace de microservicios)

Los diferentes microservicios generalmente tienen diferentes direcciones de red, y es posible que los clientes externos necesiten llamar a múltiples interfaces de servicio para cumplir con un requisito comercial. Por ejemplo, una aplicación móvil para la compra de entradas de cine puede llamar a múltiples interfaces de microservicios para completar el proceso comercial de compra de entradas. Si el cliente se comunica directamente con cada microservicio, habrá los siguientes problemas:

(a) El cliente solicitará diferentes microservicios varias veces, lo que aumenta la complejidad del cliente.

(b) Hay solicitudes entre dominios y el procesamiento es relativamente complicado en ciertos escenarios.

(c) La autenticación es compleja y requiere una autenticación independiente para cada servicio.

(d) Difícil de refactorizar. A medida que el proyecto itera, es posible que sea necesario volver a particionar los microservicios. Por ejemplo, es posible fusionar múltiples servicios en uno o dividir un servicio en varios. Si los clientes se comunican directamente con los microservicios, la refactorización será difícil de implementar.

(e) Algunos microservicios pueden usar protocolos que no son amigables con los firewalls/navegadores, lo que dificulta el acceso a ellos directamente.

Los problemas anteriores se pueden resolver mediante el uso de la puerta de enlace de microservicio. La puerta de enlace de microservicios es una capa intermedia entre el cliente y el servidor, y todas las solicitudes externas pasarán primero a través de la puerta de enlace de microservicios. Después de usar la puerta de enlace de microservicio, la puerta de enlace de microservicio encapsulará la estructura interna de la aplicación, y el cliente solo necesita interactuar con la puerta de enlace sin llamar directamente a la interfaz de un microservicio específico. De esta manera, el desarrollo se puede simplificar. No solo eso, sino que el uso de una puerta de enlace de microservicio tiene las siguientes ventajas:

(a) Facilidad de seguimiento. Los datos de monitoreo se pueden recopilar en la puerta de enlace de microservicios y enviarlos a sistemas externos para su análisis.

(b) Facilidad de autenticación. La autenticación se puede realizar en la puerta de enlace de microservicios antes de reenviar la solicitud a los microservicios de back-end sin tener que autenticarse en cada microservicio.

(c) Se reduce el número de interacciones entre clientes y microservicios individuales.

Last updated