Intercettazione di pubblicazioni e pubblicazione / sottoscrizione distribuita

Seguire un pattern semplice quando si distribuisce l'intercettazione di sottoscrittori o le uscite di pubblicazione in una topologia di pubblicazione / sottoscrizione distribuita. Distribuire i sottoscrittori di intercettazione sugli stessi gestori code dei publisher e le uscite di pubblicazione sugli stessi gestori code dei sottoscrittori finali.

La Figura 1 mostra due gestori code connessi in un cluster di pubblicazione - sottoscrizione. Un publisher crea una pubblicazione per un argomento cluster a livello di pubblicazione 9. Le frecce numerate mostrano la sequenza di passi intrapresi dalla pubblicazione durante il flusso ai sottoscrittori dell'argomento cluster. La pubblicazione viene intercettata dal sottoscrittore con Sublevel 9 e ripubblicata con Publevel 8. Viene intercettata nuovamente da un sottoscrittore in Livello secondario 8. Il sottoscrittore ripubblica a Publevel 7. Il sottoscrittore proxy fornito dal gestore code inoltra la pubblicazione al gestore code B, dove è stata distribuita un'uscita di pubblicazione oltre a un sottoscrittore finale. La pubblicazione viene elaborata dall'uscita di pubblicazione prima che venga finalmente ricevuta dal sottoscrittore finale a Sottolivello 1. I sottoscrittori intercettatori e l'uscita di pubblicazione vengono visualizzati con contorni interrotti.
Figura 1. Uscita di pubblicazione e intercettazione in un cluster
Il diagramma mostra due gestori code, con un publisher che crea una pubblicazione a livello di pubblicazione 9 e due sottoscrittori sullo stesso gestore code. Un utente è al livello secondario 9 e uno al livello secondario 8. Il sottoscrittore di Sublevel 9 ripubblica al livello 8. La pubblicazione viene portata all'altro gestore code al livello di pubblicazione 8 (livello secondario effettivo 1). Sul secondo gestore code è presente un'uscita di pubblicazione e gli stessi sottoscrittori. Questa volta il sottoscrittore di Sublevel 9 non riceve una pubblicazione come Publevel 8.

L'obiettivo del modello semplice è che ogni sottoscrittore che riceve una pubblicazione riceva la pubblicazione identica. La pubblicazione passa attraverso la stessa sequenza di trasformazioni indipendentemente da dove è connesso il sottoscrittore. Probabilmente si desidera evitare che la sequenza di trasformazioni vari, a seconda di dove sono connessi i publisher o i sottoscrittori finali. Un'eccezione ragionevole sarebbe quella di adattare la pubblicazione finalmente consegnata a ogni singolo sottoscrittore. Utilizzare l'uscita di Pubblicazione per personalizzare la pubblicazione in base alla coda a cui la pubblicazione viene consegnata.

È necessario considerare attentamente dove distribuire le intercettazioni dei sottoscrittori e le uscite di pubblicazione in una topologia di pubblicazione / sottoscrizione distribuita. Il modello semplice distribuisce le intercettazioni dei sottoscrittori allo stesso gestore code dei publisher e le uscite di pubblicazione agli stessi gestori code dei sottoscrittori finali.

Anti - modello

La Figura 2 mostra come le cose possono andare storto, se non si segue un modello semplice. Per complicare la distribuzione, viene aggiunto un sottoscrittore finale al gestore code A e due ulteriori sottoscrittori di intercettazione vengono aggiunti al gestore code B.

La pubblicazione viene inoltrata al gestore code B in PubLevel 7, dove viene intercettata da un sottoscrittore in SubLevel 5 prima di essere utilizzata dal sottoscrittore finale in SubLevel 1. L'uscita di pubblicazione intercetta la pubblicazione prima che venga passata sia al consumer intercettore che a quello finale sul gestore code B. La pubblicazione raggiunge il sottoscrittore finale sul gestore code A senza essere elaborata dall'uscita di pubblicazione.

In una topologia di pubblicazione / sottoscrizione, i sottoscrittori proxy si sottoscrivono a SubLevel 1e passano il PubLevel impostato dall'ultimo sottoscrittore intercettore. Nella Figura 2, il risultato è che la pubblicazione non viene intercettata dal sottoscrittore utilizzando SubLevel 9 sul gestore code B.

Figura 2. Distribuzione complessa dei sottoscrittori di intercettazioni
Modifica alla figura 1, con due ulteriori sottoscrittori intercettori aggiunti al gestore code che ospita il sottoscrittore finale.