Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Chaque nœud du maillage publie ses informations de point de terminaison sur le service de résolution via la Register fonction. Le service de résolution stocke ces informations sous forme d’enregistrement. Cet enregistrement contient un identificateur unique (RegistrationID) et des informations de point de terminaison (PeerNodeAddress) pour le nœud.
Enregistrements périmés et heure d'expiration
Dans l’idéal, lorsqu’un nœud quitte le maillage, il appelle la Unregister fonction, ce qui entraîne la suppression de l’entrée d’inscription par le service de résolution. Quelquefois, les nœuds sont arrêtés ou deviennent inaccessibles avant l'appel de Unregister, laissant derrière un enregistrement d'inscription périmé.
Les enregistrements obsolètes dans votre service de résolution peuvent entraîner l’échec des connexions. Si un nœud qui tente de se connecter à un maillage reçoit les informations de connexion obsolètes du service de résolution, il peut prendre plus de temps pour joindre le maillage. Les enregistrements périmés occupent également de l'espace en mémoire. Sans processus de nettoyage efficace, le cache utilisé pour stocker les inscriptions peut éventuellement dépasser et bloquer le service de résolution.
Le CustomPeerResolverService marque chaque enregistrement avec un temps d'expiration (DateTime) et stocke ces informations dans l'enregistrement. Le service utilise le délai d’expiration pour identifier les enregistrements obsolètes. Les implémentations personnalisées doivent faire quelque chose de similaire.
Intervalle de rafraîchissement et intervalle de nettoyage
La propriété RefreshInterval du CustomPeerResolverService définit la durée pendant laquelle les enregistrements d'inscription restent valides dans la table de recherche des inscriptions du service. Lorsque la durée fournie à cette propriété est passée pour un enregistrement donné, cet enregistrement devient obsolète et est marqué pour suppression.
La propriété CleanupInterval de CustomPeerResolverService indique à quel rythme le service doit rechercher et supprimer les dossiers d'enregistrement obsolètes. La valeur de CleanupInterval doit être supérieure ou égale à la valeur RefreshInterval définie sur le service.
Pour implémenter votre propre service de programme de résolution, vous devez écrire une fonction de maintenance pour supprimer les enregistrements d’inscription obsolètes. Pour ce faire, plusieurs méthodes sont possibles :
Maintenance périodique : définissez un minuteur pour qu’il se désactive régulièrement, puis parcourez votre magasin de données pour supprimer les anciens enregistrements. CustomPeerResolverService utilise cette approche.
Suppression passive : au lieu de rechercher activement des enregistrements obsolètes à intervalles réguliers, vous pouvez identifier et supprimer des enregistrements obsolètes lorsque votre service effectue déjà une autre fonction. Cela peut potentiellement ralentir le temps de réponse aux demandes des clients du résolveur, mais il élimine le besoin d’un minuteur et peut être plus efficace si l'on s'attend à ce que peu de nœuds partent sans appeler
Unregister.
RegistrationLifetime et Refresh
Lorsqu’un nœud s’inscrit auprès d’un service de résolution, il reçoit un RegisterResponseInfo objet du service. Cet objet a une RegistrationLifetime propriété qui indique au nœud combien de temps il a avant l’expiration de l’inscription et est supprimé par le service de résolution. Si, par exemple, la RegistrationLifetime valeur est de 2 minutes, le nœud doit appeler Refresh en moins de 2 minutes pour garantir que l’enregistrement reste frais et n’est pas supprimé. Lorsque le service de résolution reçoit une Refresh demande, il recherche l’enregistrement et réinitialise le délai d’expiration. Rafraîchissement retourne un objet RefreshResponseInfo doté de la propriété RegistrationLifetime.