Integración de Service Discovery y Registration con API7 Enterprise
June 13, 2024
Con la adopción generalizada de la arquitectura de microservicios, las relaciones entre los servicios se están volviendo cada vez más complejas. En este contexto, el descubrimiento de servicios es particularmente importante, ya que permite que los servicios se localicen e interactúen dinámicamente entre sí.
API7 Enterprise, como una plataforma de gestión de API rica en funciones, puede integrarse perfectamente con los registros de descubrimiento de servicios para lograr la detección automática y el enrutamiento inteligente de los servicios ascendentes.
¿Qué es el descubrimiento de servicios?
El descubrimiento de servicios es un mecanismo para detectar automáticamente las instancias de servicio y sus direcciones dentro de una red, de modo que otros servicios o clientes puedan encontrarlos y comunicarse con ellos. En los sistemas distribuidos modernos y la arquitectura de microservicios, el descubrimiento de servicios es un componente crucial, ya que permite la localización y conexión dinámica a los servicios sin necesidad de codificar manualmente las direcciones de los servicios o actualizar manualmente las configuraciones.
Funciones del descubrimiento de servicios
-
Localización dinámica de servicios: En la arquitectura de microservicios, las instancias de servicio pueden iniciarse, detenerse, migrar o escalar dinámicamente. El descubrimiento de servicios puede rastrear automáticamente estos cambios, asegurando que los clientes siempre puedan encontrar instancias de servicio disponibles.
-
Tolerancia a fallos y conmutación por error: Cuando una instancia de servicio falla, el descubrimiento de servicios puede detectar su indisponibilidad y dirigir a los clientes a conectarse a otras instancias saludables, permitiendo la conmutación por error y la alta disponibilidad.
-
Simplificación de la configuración y gestión: A través del descubrimiento de servicios, los desarrolladores no necesitan configurar y gestionar manualmente las direcciones de red de cada servicio. Esto reduce la posibilidad de errores de configuración y simplifica la implementación y gestión de los servicios.
Descubrimiento de servicios en API7 Enterprise
El descubrimiento de servicios se utiliza a menudo junto con un balanceador de carga o una puerta de enlace de API para garantizar que las solicitudes se distribuyan uniformemente entre múltiples instancias de servicio, mejorando así el rendimiento del sistema y el tiempo de respuesta. En los sistemas distribuidos, las instancias de servicio pueden volverse indisponibles por diversas razones, y el mecanismo de descubrimiento de servicios puede identificar rápidamente estos problemas y redirigir las solicitudes a otras instancias de servicio saludables a través del balanceador de carga, asegurando la alta disponibilidad de los servicios.
En API7 Enterprise, el concepto de "upstream" amplía aún más esta flexibilidad. Al configurar el upstream como un registro de servicios, la puerta de enlace de API puede recuperar dinámicamente la lista de instancias de servicio backend y ajustar la estrategia de distribución de solicitudes según sea necesario. Esto significa que incluso cuando el número o el estado de las instancias de servicio cambia, la puerta de enlace de API puede adaptarse rápidamente, sin necesidad de actualizaciones manuales de configuración o reinicios del servicio.
La colaboración entre el descubrimiento de servicios y la puerta de enlace de API proporciona capacidades poderosas de gestión dinámica de servicios y control de tráfico para la arquitectura de microservicios. API7 Enterprise ha mejorado y ampliado aún más esta función, permitiendo que el sistema sea más flexible y eficiente al abordar diversos escenarios y requisitos complejos. Además, con la adopción generalizada de tecnologías nativas de la nube y de contenedores, la implementación y escalado de instancias de servicio se ha vuelto más fácil y rápida.
¿Cómo configurar el descubrimiento de servicios en API7 Enterprise?
Agregar registros de servicios
En el grupo de puertas de enlace, vaya a la página del registro de servicios, haga clic en el botón "Agregar conexión de registro de servicios" y verá el formulario de conexión.

En el formulario, debemos completar la información básica y las configuraciones de conexión relevantes para el registro de servicios. Actualmente, API7 Enterprise admite la integración de registros de servicios de Kubernetes y Nacos. Aquí, usaremos Nacos como ejemplo. Seleccione "Nacos" como el tipo de descubrimiento, y luego especifique cómo API7 Enterprise obtendrá el token para la autenticación, lo cual se puede hacer mediante cuenta/contraseña, clave de acceso y clave secreta, o ingresando directamente el valor del token.

Además de las configuraciones básicas de autenticación, API7 Enterprise también ofrece opciones de configuración más detalladas, como el tiempo de espera de conexión y el tiempo de espera de lectura/escritura. Estas configuraciones se pueden ajustar de manera flexible según las necesidades reales, evitando eficazmente solicitudes pendientes prolongadas debido a conexiones de red inestables y reduciendo el uso ineficiente de los recursos del sistema.
Después de crear el registro de servicios, el nuevo elemento de conexión aparecerá inmediatamente en la lista, pero el estado de la conexión se marcará como saludable después de la verificación del sistema. A través de este elemento de conexión, los usuarios pueden verificar convenientemente el estado del descubrimiento de servicios y las configuraciones relevantes del registro de servicios.
Configurar el descubrimiento de servicios en el upstream
El registro de servicios es un recurso que pertenece al grupo de puertas de enlace. En el grupo de puertas de enlace donde se ha creado el registro de servicios, cualquier servicio publicado en ese grupo de puertas de enlace puede usar la configuración de este registro de servicios. Podemos configurar el upstream durante el proceso de publicación del servicio o en un servicio ya publicado.
Seleccione una plantilla de servicio, publíquela en el grupo de puertas de enlace que acaba de agregar el registro de servicios, elija usar el descubrimiento de servicios como el upstream, luego seleccione el registro de servicios Nacos que acabamos de crear y elija el espacio de nombres, grupo e instancia específicos.
Después de publicar el servicio, puede ver el registro de servicios configurado actualmente en la página de upstream de los detalles del servicio y realizar cambios en la configuración del descubrimiento de servicios en cualquier momento.
Ver servicios asociados, actualizar y eliminar configuraciones de conexión
En la lista de registros de servicios, a través del menú "Más" a la derecha, puede gestionar convenientemente las configuraciones de conexión, ver el historial de conexiones, rastrear el uso del servicio o eliminar las configuraciones de conexión que ya no son necesarias.

Los "Servicios asociados" muestran claramente qué servicios han cambiado sus configuraciones de descubrimiento de servicios, permitiéndonos evaluar el impacto potencial antes de realizar cualquier cambio de configuración, evitando eficazmente riesgos operativos.

Tenga en cuenta que actualizar las configuraciones de conexión del registro de servicios afectará a todos los servicios upstream que utilicen ese registro. Si ya hay servicios upstream que lo utilizan, no puede cambiar el tipo de descubrimiento del registro o eliminar directamente la conexión. Primero debe ajustar manualmente las configuraciones de los servicios upstream para usar otros registros o nodos, y luego realizar la operación de eliminación.

Conclusión
Hemos revisado el concepto detallado del descubrimiento de servicios, su función y su aplicación en API7 Enterprise. A través del descubrimiento de servicios, la arquitectura de microservicios puede gestionar e invocar servicios dinámicamente, mejorando enormemente la flexibilidad y disponibilidad del sistema.
A medida que la arquitectura de microservicios continúa evolucionando, la importancia del descubrimiento de servicios es cada vez más evidente. Esperamos que el descubrimiento de servicios se enfoque más en la inteligencia, automatización y tolerancia a fallos en el futuro.
API7 Enterprise explorará la integración con más tipos de registros de servicios y combinará verificaciones de salud para lograr una mayor alta disponibilidad, ayudando a las empresas a construir arquitecturas de microservicios más robustas y eficientes.