Centro de registro de servicios Spring Cloud Eureka
Spring Cloud Eureka es parte del paquete de microservicios Spring Cloud Netflix, que se basa en Netflix
Eureka es un paquete secundario y es el principal responsable de completar el Función de gestión de servicios de arquitectura de microservicio. Spring Cloud agrega una configuración automatizada estilo Spring Boot a
Eureka, lo que nos permite
integrar fácilmente los microservicios creados por Spring Boot simplemente introduciendo dependencias y configuración de anotaciones. el sistema de gobernanza de servicios Eureka.
En este capítulo, guiaremos a los lectores a través de los siguientes elementos centrales y construiremos la infraestructura para la gobernanza del servicio
.
- Creación de un registro de servicios
- Registro de servicios y descubrimiento de servicios
Infraestructura de Eureka
Mecanismo de gobernanza de servicios de Eureka
p>
Configuración de Eureka
Gobernanza de servicios
Gobernanza de servicios
Se puede decir que la gobernanza de servicios es el módulo central y más básico del arquitectura de microservicios. Se utiliza para registrar y descubrir automáticamente instancias de microservicios individuales
. ¿Por qué necesitamos tanto la gobernanza de servicios en la arquitectura de microservicios? ¿Habrá algún problema con los sistemas de microservicios sin gobernanza de servicios?
Cuando comenzamos a construir un sistema de microservicios, es posible que la cantidad de servicios no sea mucha. Podemos realizar algunas configuraciones estáticas para completar las llamadas de servicio.
. Por ejemplo, hay dos servicios A y B. El servicio A necesita llamar al servicio B para completar una operación comercial para lograr una alta disponibilidad del servicio, ya sea utilizando el equilibrio de carga del lado del servidor o del cliente. Equilibrio de carga del lado. Todos requieren
mantenimiento manual de una lista de instancias específicas del servicio. Sin embargo, a medida que el negocio se desarrolla, el sistema se vuelve cada vez más complejo, el número correspondiente de aplicaciones de microservicio también aumenta y nuestra configuración estática se vuelve cada vez más difícil de mantener. Además, frente al negocio en continuo desarrollo
, el tamaño de nuestro clúster, la ubicación del servicio, el nombre del servicio, etc., pueden cambiar si todavía se mantiene manualmente
. Es fácil causar problemas como errores o conflictos de nombres. Al mismo tiempo, el mantenimiento de dicho contenido estático
Para resolver el problema de mantenimiento de instancias de servicio en la arquitectura de microservicios, han surgido una gran cantidad de marcos y productos de gobernanza de servicios.
Esto seguramente consumirá mucha mano de obra.
La implementación de estos marcos y productos gira en torno al registro de servicios y mecanismos de descubrimiento de servicios para automatizar la gestión de instancias de microservicios.
Registro de servicios: en el marco de gobernanza de servicios, generalmente se crea un registro y cada unidad de servicio registra los servicios que proporciona en el registro
y establece el número de host y puerto y la versión. número, protocolo de comunicación y otra información adicional para informar al registro
, que organiza la lista de servicios según el nombre del servicio. Por ejemplo, tenemos dos procesos que brindan el servicio A
, ejecutándose en 192.168.0.100:8000 y 192.168.0.101:8000 respectivamente, y tres procesos que brindan el servicio B
, ejecutándose en 192.168.0.100:9000, 192.168.0.101:9000 y 192.168.0.102:9000 respectivamente. Una vez que todos estos procesos han comenzado,
y han registrado sus servicios en el registro, el registro mantiene una lista de servicios similar a la siguiente.
Además, el registro de servicios necesita monitorear la disponibilidad de los servicios en la lista en tiempo real. Si estos servicios no están disponibles
, deben eliminarse de la lista de servicios. solución de problemas.
Nombre del servicio
Ubicación
Servicio A
192.168.0.100:8000, 192.168.0.101:8000
Servicio B
192.168.0.100:9000, 192.168.0.101:9000, 192.168.0.102:9000
Descubrimiento de servicios: desde que se ejecuta bajo el marco de gobierno de servicios, las llamadas entre servicios son ya no se logra especificando una dirección de instancia específica
, sino realizando una llamada de solicitud al nombre del servicio. Por lo tanto, al llamar a la interfaz del proveedor
del proveedor de servicios, quien llama al servicio no conoce la ubicación de una instancia de servicio específica. Por lo tanto, la persona que llama debe consultar el registro de servicios
y obtener una lista de todas las instancias de servicios para poder acceder a una instancia de servicio específica. Por ejemplo,
Si el servicio C existente quiere llamar al servicio A, el servicio C debe iniciar una solicitud de servicio de consultoría al centro de registro. El centro de registro del servicio devolverá la ubicación del servicio A a la lista del servicio C. , por ejemplo, según la situación del servicio A en el ejemplo anterior, C obtendrá
las dos ubicaciones disponibles del servicio A: 192.168.0.100:8000 y 192.168.0.101:8000.
Cuando el servicio Cuando se realiza una llamada, elige una posición de esa lista y utiliza algún tipo de estrategia de sondeo para realizar la llamada del servicio
Este es el equilibrio de carga del lado del cliente, que cubrir más tarde. Aquí presentamos una lógica de gobernanza de servicios simple para facilitar la comprensión de los conceptos básicos de cómo funciona el marco de gobernanza de servicios. El marco real no recupera servicios del registro de servicios cada vez para mejorar el rendimiento
Diferentes aplicaciones
tienen diferentes estrategias de implementación con respecto al almacenamiento en caché y la denegación de servicios.