Coda e Argomento sono due modelli di messaggistica supportati da JMS: 1. Modello di messaggistica a coda punto a punto (PTP): Con questo modello di messaggistica, un'applicazione (cioè il produttore dei messaggi) può inviare un messaggio a un'altra applicazione (cioè al consumatore di messaggi). In questo modello di consegna, il tipo di destinazione del messaggio è una coda (cioè, l'istanza della classe di implementazione dell'interfaccia di destinazione viene creata dall'istanza della classe di implementazione dell'interfaccia Session chiamando il suo metodo createQueue e passando il nome della coda). Il messaggio viene prima consegnato a una coda specifica lato server di messaggi e, da lì, il messaggio viene consegnato a un consumatore che sta ascoltando questa coda. La stessa coda può associare più produttori di messaggi e consumatori di messaggi, ma un messaggio può essere consegnato solo a un consumatore di messaggi. Se più consumatori di messaggi stanno ascoltando i messaggi in coda, il server di messaggi JMS determina quale consumatore riceve il messaggio successivo basandosi sul principio "primo arrivato, primo arrivato". Se nessun consumatore di messaggi sta ascoltando la coda, il messaggio rimane in coda finché il consumatore di messaggi non si connette alla coda. Questo modello di messaggistica è pigro o un modello di sondaggio nel senso tradizionale. In questo modello, i messaggi non vengono automaticamente inviati al consumatore di messaggi, ma vengono richiesti dalla coda dal consumatore di messaggi. 2. Modello di messaggistica degli argomenti pubblicati/iscriviti (pubblicazione/sottotitolo): Con questo modello di messaggistica, le applicazioni sono in grado di inviare un singolo messaggio a più consumatori di messaggi. In questo modello di consegna, il tipo di destinazione del messaggio è il topic (cioè, l'istanza della classe di implementazione dell'interfaccia di destinazione viene creata dall'istanza della classe di implementazione dell'interfaccia Session chiamando il suo metodo createTopic e passando il nome dell'argomento). Il messaggio viene prima pubblicato su un argomento specifico nel server di messaggi dal produttore del messaggio, che poi lo consegna a tutti i consumatori abbonati all'argomento. Gli obiettivi tematici supportano anche abbonamenti a lungo termine. Un abbonamento a lungo termine significa che il consumatore è iscritto all'obiettivo dell'argomento, ma può essere inattivo quando il messaggio raggiunge la destinazione. Il messaggio verrà ricevuto quando il consumatore sarà nuovamente attivo. Se nessuno dei consumatori è iscritto a una destinazione di argomento, l'argomento mantiene i messaggi solo per i consumatori inattivi che si sono iscritti a un abbonamento a lungo termine. A differenza del modello di messaggistica PTP, il modello di messaggistica pub/sub permette a più abbonati di ricevere lo stesso messaggio. JMS trattiene il messaggio finché tutti gli abbonati agli argomenti non lo ricevono. Il modello di messaggistica pub/sub è fondamentalmente un modello push. In questo modello, i messaggi vengono trasmessi automaticamente e i consumatori non devono richiedere attivamente o interrogare gli argomenti per ricevere nuovi messaggi. Le differenze specifiche sono le seguenti:
digitare
| Argomento
| Coda | Panoramica
| Pubblica Iscriviti messaggi Pubblica messaggi in abbonamento
| Punto a punto
| Non esiste uno stato
| I dati degli argomenti sono senza stato di default.
| I dati della coda vengono salvati come file sul server MQ di default, ad esempio, Active MQ è solitamente memorizzato sotto $AMQ_HOME\data\kr-store\data. Può anche essere configurato come uno store DB.
| Garanzia di integrità
| Non vi è alcuna garanzia che ogni dato pubblicato dall'editore venga accettato dall'abbonato.
| La coda garantisce che ogni dato possa essere ricevuto dal ricevitore.
| se il messaggio andrà perduto
| In generale, quando un editore pubblica un messaggio su un argomento, solo il subreddit che ascolta l'indirizzo può ricevere il messaggio. Se non c'è un subreddit che ascolta, l'argomento si perde.
| Il mittente invia un messaggio alla coda di destinazione, e il destinatario può ricevere messaggi su questa coda in modo asincrono. I messaggi nella Coda non andranno persi se non c'è un destinatario che li riprenda per il momento.
| Politica di ricezione del rilascio dei messaggi
| Politica di pubblicazione e ricezione di messaggi uno a molti, più subreddit che ascoltano lo stesso indirizzo possono ricevere messaggi inviati dall'editore. Il sub riceve la notifica al server mq
| Politiche di pubblicazione e ricezione di messaggi uno a uno, i messaggi inviati da un mittente possono essere ricevuti solo da un destinatario. Dopo che il destinatario riceve, il server MQ notifica al server MQ che è stato ricevuto, e il server MQ elimina o adotta altre azioni sui messaggi nella coda.
|
|