Antecedentes de autoprotección
En primer lugar, debemos entender sobre el Centro de registro de Eureka que todos los nodos en Eureka son iguales, y no hay un concepto de roles en ZK. Incluso si se pierden los nodos N-1, no afectará el funcionamiento normal de otros nodos.
De manera predeterminada, si Eureka Server no recibe un latido de una instancia de microservicio dentro de un tiempo determinado (predeterminado 90 segundos), Eureka Server eliminará la instancia. Sin embargo, cuando se produce una falla de partición de red, el microservicio no puede comunicarse normalmente con el servidor Eureka, y el microservicio en sí se está ejecutando normalmente. Este microservicio no debe eliminarse en este momento, por lo que se introduce un mecanismo de autoprotección.
Mecanismo de autoprotección
Definición oficial del mecanismo de autoprotección: https://github.com/netflix/eureka/wiki/understanding-eureka-peer-te-piercommunication
El modo de autoprotección es una medida de protección de seguridad para fluctuaciones anormales de la red. El uso del modo de autoprotección puede hacer que el clúster Eureka funcione de manera más robusta y estable.
El mecanismo de trabajo del mecanismo de autoprotección es que si más del 85% de los nodos del cliente no tienen latidos normales en 15 minutos, entonces Eureka cree que el cliente y el centro de registro tienen una falla de red, y el servidor Eureka ingresa automáticamente el mecanismo de autoprotección. En este momento, se producirán las siguientes situaciones:
1. Eureka Server ya no elimina los servicios que deberían caducar porque no han recibido un latido durante mucho tiempo. /
2. El servidor Eureka aún puede aceptar solicitudes de registro y consulta de nuevos servicios, pero no se sincronizará con otros nodos para garantizar que el nodo actual todavía esté disponible. /
3. Cuando la red es estable, la nueva información de registro del servidor Eureka se sincronizará con otros nodos.
Por lo tanto, Eureka Server puede lidiar con la situación en la que algunos nodos se pierden debido a la falla de la red, y no hará que la mitad de ellos se paralicen como ZK.
Interruptor de autoprotección
Mecanismo de autoprotección de Eureka, verdadero para habilitar/falso configurando eureka.server.enable-síf-conservación para deshabilitar el mecanismo de autoprotección. El valor predeterminado está activado. Se recomienda abrir esta configuración en el entorno de producción.
Configuración del entorno de desarrollo
Si desea eliminar automáticamente la falla del servicio en el entorno de desarrollo, solo necesita modificar la siguiente configuración.
1. El centro de registro cierra el mecanismo de autoprotección y modifica el tiempo para verificar el servicio no válido.
eureka: servidor: habilitar la conservación: desalojo falso-intervalado-tímero-in-ms: 3000
2. Las modificaciones de microservicios reducen el tiempo de los latidos del corazón.
# Predeterminado 90 segundos Arrendamiento-Expiración Duración en segundo: 10# Predeterminado 30 segundos Arrendamiento-Renoval-Intervalación en segundo: 3
Se recomienda la configuración anterior para utilizar la configuración de tiempo predeterminada en el entorno de producción. Espero que sea útil para el aprendizaje de todos, y espero que todos apoyen más a Wulin.com.