Contexte d'auto-protection
Tout d'abord, nous devons comprendre le centre d'enregistrement d'Eureka que tous les nœuds d'Eureka sont égaux, et il n'y a pas de concept de rôles dans ZK. Même si les nœuds N-1 sont perdus, cela n'affectera pas le fonctionnement normal des autres nœuds.
Par défaut, si le serveur Eureka ne reçoit pas de battement de cœur d'une instance de microservice dans un certain temps (par défaut 90 secondes), le serveur Eureka supprimera l'instance. Cependant, lorsqu'une défaillance de partition de réseau se produit, le microservice ne peut pas communiquer normalement avec le serveur Eureka et le microservice lui-même fonctionne normalement. Ce microservice ne doit pas être supprimé pour le moment, donc un mécanisme d'auto-protection est introduit.
Mécanisme d'auto-protection
Définition officielle du mécanisme d'autoprotection: https://github.com/netflix/eureka/wiki/Understanding-eureka-peer-to-peer-communication
Le mode d'auto-protection est une mesure de protection de la sécurité pour les fluctuations anormales du réseau. L'utilisation du mode d'auto-protection peut faire fonctionner le cluster Eureka plus robuste et de manière stable.
Le mécanisme de travail du mécanisme d'auto-protection est que si plus de 85% des nœuds clients n'ont pas de rythme cardiaque normal en 15 minutes, alors Eureka estime que le client et le centre d'enregistrement ont une défaillance du réseau et le serveur Eureka entre automatiquement dans le mécanisme d'auto-protection. Pour le moment, les situations suivantes se produiront:
1. Le serveur Eureka ne supprime plus les services qui devraient expirer car ils n'ont pas reçu de battement de cœur depuis longtemps. / /
2. Le serveur Eureka peut toujours accepter les demandes d'enregistrement et de requête pour de nouveaux services, mais ne sera pas synchronisée avec d'autres nœuds pour s'assurer que le nœud actuel est toujours disponible. / /
3. Lorsque le réseau est stable, les nouvelles informations d'enregistrement du serveur Eureka seront synchronisées avec d'autres nœuds.
Par conséquent, le serveur Eureka peut gérer la situation où certains nœuds sont perdus en raison de l'échec du réseau, et ne fera pas paralyser la moitié d'entre eux comme ZK.
Interrupteur d'auto-protection
Mécanisme d'autoprotection d'Eureka, fidèle à l'activation / false en configurant eureka.server.enable-auto-préservation pour désactiver le mécanisme d'autoprotection. La valeur par défaut est activée. Il est recommandé d'ouvrir cette configuration dans l'environnement de production.
Configuration de l'environnement de développement
Si vous souhaitez supprimer automatiquement la défaillance du service dans l'environnement de développement, il vous suffit de modifier la configuration suivante.
1. Le centre d'enregistrement ferme le mécanisme d'auto-protection et modifie l'heure de vérification du service non valide.
Eureka: serveur: Activer-self-préservation: faux expulsion-interval-timer-in-ms: 3000
2. Les modifications des microservices réduisent le temps cardiaque du temps de service.
# Par défaut 90 secondes de bail-expiration-durée dans les secondes: 10 # par défaut 30 secondes Location-renouveau-interval-in-second: 3
La configuration ci-dessus est recommandée pour utiliser la configuration de temps par défaut dans l'environnement de production. J'espère que cela sera utile à l'apprentissage de tous, et j'espère que tout le monde soutiendra davantage Wulin.com.