Comportement et propriétés des messages Pub/Sub
Un message contient l'objet de données réel qui est envoyé par l'éditeur et remis aux abonnés via le sujet. Par exemple, certains abonnés sont intéressés par les détails de la commande d'une entreprise. Un sujet est créé pour que l'éditeur y publie des messages liés aux commandes d'une entreprise, et tous les abonnés intéressés s'abonneront à ce sujet.
Une fois que l'éditeur publie le message sur le sujet, les abonnés enregistrés sont informés qu'un message concernant leur intérêt a été publié. En cas de messages multiples, ils sont stockés dans une séquence à l'intérieur de la file d'attente d'un sujet particulier.
Notes
Le même message peut être affecté à plusieurs sujets. Ceci est identifié de manière unique par un identifiant généré automatiquement.
Propriétés des messages
Vous pouvez spécifier les options de remise des messages via un Option de livraison enum sur la façon dont un message peut être livré. Voici les deux options de livraison fournies par NCache:
Tout: Les messages sont livrés à tous les abonnés enregistrés.
Année: Les messages sont livrés à n'importe quel abonné enregistré unique. Si un accusé de réception n'est pas reçu, les messages sont réaffectés à l'abonné suivant. Si un accusé de réception est reçu, les messages sont supprimés.
Comportement des messages
Notes
Cette fonctionnalité n'est disponible que pour Edition pour Entreprise.
Les messages sont invalidés si les critères suivants sont remplis :
Expulsion : Si l'expulsion est activée sur le cache, les messages seront également expulsés des rubriques à l'aide de LRU (moins récemment utilisé), LFU (moins fréquemment utilisé) ou d'une politique basée sur la priorité.
Si le cache utilisé pour les transactions Pub/Sub est le même que celui utilisé pour la mise en cache normale, la première priorité d'éviction sera toujours les données du cache.
Si les données du cache ne sont pas disponibles pour l'expulsion, les messages seront alors expulsés. Cela garantira que les messages ne seront supprimés que dans des cas extrêmes ou lorsque le cache est dédié à Pub/Sub uniquement.
Expiration: L'expiration peut être activée sur les messages comme pour les éléments du cache. Les messages seront expirés du cache dès que l'intervalle d'expiration est passé et utilise le même mécanisme d'intervalle de nettoyage.
Vider le cache: Les messages sont supprimés avec les éléments du cache une fois le cache vidé.
Redémarrage du cache: Semblable à l'effacement du cache, le contenu du cache est effacé lorsque le cache est redémarré. Cela inclut également tous les sujets et les messages qu'ils contiennent.
Stockage et distribution
Les messages sont répartis entre les nœuds en fonction des topologies.
Pour les topologies Partition of Replica et Partitioned, la distribution basée sur le hachage est utilisée.
Pour la topologie répliquée, les messages sont répliqués sur tous les nœuds du cache en cluster. Cependant, le nœud coordinateur est responsable de la manipulation des messages.
Pour la topologie miroir, les messages sont publiés sur le nœud actif, puis répliqués sur le nœud passif en conséquence.
Si la banque de messages est proche de l'éviction, un événement est consigné qui indique que la banque est pleine et que l'éviction a commencé.
Les messages ont une surcharge sur la mémoire cache. Par conséquent, la taille du message est prise en compte lors du calcul de la taille du cache.
Chiffrement et compression
Notes
Cette fonctionnalité n'est disponible que pour Edition pour Entreprise.
Le chiffrement et la compression configurés au niveau du cache s'appliquent également à la charge utile des messages de rubrique.
Transfert d'État
En cas de transfert d'état, lorsque les messages se déplacent vers un autre nœud du cluster, le nœud où le message est finalement stocké est responsable de la livraison.
Notes
Il est possible que les abonnés reçoivent des messages en double lors du transfert d'état.
Messages ordonnés
Notes
Cette fonctionnalité est uniquement disponible dans NCache 5.2 et suivants.
NCache prend désormais en charge les messages ordonnés où la séquence des messages est conservée côté client. Un utilisateur peut spécifier un nom de séquence pour un bloc de messages, et les messages ordonnés sont livrés aux abonnés dans le même ordre exact dans lequel ils sont publiés. La chaîne de séquence doit être la même pour une chaîne de messages ordonnés. À l'aide de la chaîne de séquence, tous les messages résident sur le même nœud à l'aide du mécanisme d'affinité d'emplacement.
Voici les caractéristiques importantes des messages ordonnés :
Les messages d'un éditeur avec la même séquence résident sur un seul nœud de cache.
Si la
DeliveryOption
est défini sur Any, tous les messages ordonnés de la même séquence sont délivrés au même abonné. Dans le cas où l'abonné spécifique perd la connexion ou devient indisponible, un nouvel abonné est réaffecté à cet effet. Cependant, si leDeliveryOption
est défini sur Tous, alors tous les messages ordonnés de la même séquence sont distribués à tous les abonnés.En cas de transfert d'état, les messages ordonnés peuvent perdre leur séquence et être publiés sans conserver l'ordre.
Les messages triés ne peuvent être publiés qu'en utilisant le mode Sync dans l'API de publication. Les appels d'API en masse et asynchrones ne sont pas pris en charge.
Ressources additionnelles
NCache fournit un exemple d'application pour Pub/Sub sur GitHub.
Voir aussi
Notifications d'événements dans le cache
Sujets Pub/Sub
Messages publics au sujet
Abonnez-vous aux messages du sujet
Requête continue