Comportamento e proprietà dei messaggi Pub/Sub
A message contains the actual data object which is sent by the publisher and delivered to the subscribers via the topic. For example, some subscribers are interested in the order details of a company. A topic is created for the publisher to publish m
Una volta che l'editore ha pubblicato il messaggio sull'argomento, gli abbonati registrati vengono informati che è stato pubblicato un messaggio relativo al loro interesse. In caso di più messaggi, vengono archiviati in sequenza all'interno della coda di un determinato argomento.
Note:
Lo stesso messaggio può essere assegnato a più argomenti. Questo è identificato in modo univoco tramite un ID generato automaticamente.
Proprietà del messaggio
È possibile specificare le opzioni di consegna dei messaggi tramite a Opzione di consegna enum su come un messaggio può essere consegnato. Di seguito sono riportate le due opzioni di consegna fornite da NCache:
Tutti: I messaggi vengono consegnati a tutti gli abbonati registrati.
anno: I messaggi vengono consegnati a ogni singolo abbonato registrato. Se non viene ricevuta una conferma, i messaggi vengono riassegnati all'utente successivo. Se viene ricevuta una conferma, i messaggi vengono rimossi.
Comportamento del messaggio
Note:
Questa funzione è disponibile solo per Edizione Enterprise.
I messaggi vengono invalidati se vengono soddisfatti i seguenti criteri:
espulsione: se l'eliminazione è abilitata nella cache, i messaggi verranno rimossi anche dagli argomenti utilizzando LRU (utilizzato meno di recente), LFU (utilizzato meno frequentemente) o criteri basati sulla priorità.
Se la cache utilizzata per le transazioni Pub/Sub è la stessa utilizzata per la normale memorizzazione nella cache, la prima priorità di eliminazione sarà sempre quella dei dati della cache.
Se i dati della cache non sono disponibili per l'eliminazione, i messaggi verranno eliminati. Ciò garantirà che i messaggi vengano eliminati solo in casi estremi o quando la cache è dedicata solo a Pub/Sub.
Scadenza: la scadenza può essere abilitata sui messaggi come con gli elementi della cache. I messaggi scadranno dalla cache non appena l'intervallo di scadenza sarà trascorso e utilizzerà lo stesso meccanismo di intervallo di pulizia.
Cancella cache: i messaggi vengono rimossi insieme agli elementi della cache una volta che la cache è stata svuotata.
Riavvio della cache: Come per svuotare la cache, il contenuto della cache viene cancellato al riavvio della cache. Ciò include anche tutti gli argomenti ei messaggi in essi contenuti.
Stoccaggio e distribuzione
I messaggi sono distribuiti tra i nodi in base alle topologie.
Per le topologie Partition of Replica e Partitioned, viene utilizzata la distribuzione basata su hash.
Per la topologia replicata, i messaggi vengono replicati su tutti i nodi della cache del cluster. Tuttavia, il nodo coordinatore è responsabile della manipolazione dei messaggi.
Per la topologia Mirror, i messaggi vengono pubblicati sul nodo attivo e quindi replicati di conseguenza sul nodo passivo.
Se l'archivio messaggi è prossimo allo sfratto, viene registrato un evento che indica che l'archivio è pieno e lo sfratto è iniziato.
I messaggi hanno un sovraccarico sulla memoria cache. Pertanto, la dimensione del messaggio viene considerata durante il calcolo della dimensione della cache.
Crittografia e compressione
Note:
Questa funzione è disponibile solo per Edizione Enterprise.
La crittografia e la compressione configurate a livello di cache si applicano anche al payload del messaggio dell'argomento.
Trasferimento di Stato
In caso di trasferimento di stato, quando i messaggi si spostano su un altro nodo del cluster, il nodo in cui il messaggio viene infine archiviato è responsabile della consegna.
Note:
C'è la possibilità che gli abbonati ricevano messaggi duplicati durante il trasferimento di stato.
Messaggi ordinati
Note:
Questa funzione è disponibile solo in NCache 5.2 e successive.
NCache ora supporta i messaggi ordinati in cui la sequenza dei messaggi viene mantenuta sul lato client. Un utente può specificare un nome di sequenza per un blocco di messaggi e i messaggi ordinati vengono consegnati agli abbonati nello stesso identico ordine in cui sono pubblicati. La stringa di sequenza dovrebbe essere la stessa per una catena di messaggi ordinati. Utilizzando la stringa di sequenza, tutti i messaggi risiedono sullo stesso nodo utilizzando il meccanismo di affinità di posizione.
Di seguito sono riportate le caratteristiche importanti dei messaggi ordinati:
I messaggi di un publisher con la stessa sequenza risiedono su un singolo nodo della cache.
Se l'
DeliveryOption
è impostato su Qualsiasi, tutti i messaggi ordinati della stessa sequenza vengono consegnati allo stesso abbonato. Nel caso in cui l'abbonato specifico perda la connessione o non sia disponibile, a questo scopo viene riassegnato un nuovo abbonato. Tuttavia, se ilDeliveryOption
è impostato su Tutti, quindi tutti i messaggi ordinati della stessa sequenza vengono consegnati a tutti gli abbonati.In caso di trasferimento di stato, i messaggi ordinati potrebbero perdere la sequenza e venire pubblicati senza mantenere l'ordine.
I messaggi ordinati possono essere pubblicati solo utilizzando la modalità di sincronizzazione nell'API di pubblicazione. Le chiamate API in blocco e asincrone non sono supportate.
Risorse addizionali
NCache fornisce un'applicazione di esempio per Pub/Sub su GitHub.
Vedere anche
Notifiche di eventi nella cache
Argomenti Pub/Sub
Messaggi pubblici sull'argomento
Iscriviti per i messaggi di argomento
Interrogazione continua