2017-09-21 5 views
0

J'ai un serveur Eureka et un client Eureka. Dans les bootstrap.properties du client, je les configurations ci-dessous:Comment fonctionne le renouvellement du bail Eureka?

eureka.instance.leaseRenewalIntervalInSeconds=240 
eureka.instance.leaseExpirationDurationInSeconds=240 

Ma compréhension est que le client envoie un battement de coeur au serveur toutes les 240 secondes. Si un battement de cœur n'est pas obtenu en 240 secondes, il attendra encore 240 secondes. Si le signal de présence n'est toujours pas reçu, il désinscrit le client.

Cependant, ce que j'ai observé est que quand j'arrête le client manuellement, le tableau de bord d'Eureka montre immédiatement le client en bas sans attendre 240s. J'espérais un délai d'au moins 240 secondes avant que le tableau de bord ne reconnaisse que le client était en panne. Quelqu'un peut-il expliquer pourquoi cela se produit et comment puis-je obtenir le comportement que j'ai mentionné?

Répondre

1

Client de découverte (client Eureka) désinscrit lui-même formulaire serveur Eureka lors de l'arrêt. C'est pourquoi votre instance disparaît instantanément du tableau de bord du serveur Eureka lorsqu'il est arrêté.

Malheureusement, il n'existe aucune propriété pour désactiver ce comportement autant que je sache. Mais vous devez garder à l'esprit que le tableau de bord du serveur Eureka affiche l'état actuel des instances enregistrées. Mais les API du serveur Eureka ont leur propre cache de réponse . Cela signifie que même si votre tableau de bord n'affiche pas votre instance arrêtée, la réponse de l'API peut inclure vos informations d'instance arrêtées pendant la période de cache.

Vous pouvez ajuster cette période de cache du serveur avec la propriété ci-dessous. La valeur par défaut est 30 secondes. PS1) changement eureka.instance.leaseRenewalIntervalInSeconds valeur a un effet secondaire. Un code de serveur eureka suppose que c'est 30 secondes. Si vous modifiez cette propriété, le mode de conservation automatique peut ne pas fonctionner correctement. PS2) Le client Eureka a aussi son propre cache. Ainsi, le client Eureka devra parfois reconnaître la disparition de votre instance.