Concatenamento di entità del bus di servizio con l'inoltro automatico

La funzionalità di inoltro automatico del bus di servizio consente di concatenare una coda o una sottoscrizione a un'altra coda o a un altro argomento che fa parte dello stesso spazio dei nomi. Quando l'inoltro automatico è abilitato, il bus di servizio rimuove automaticamente i messaggi presenti nella prima coda o sottoscrizione (origine) e li inserisce nella seconda coda o argomento (destinazione). È comunque possibile inviare direttamente un messaggio all'entità di destinazione.

Nota

Il livello di base di bus di servizio non supporta la funzionalità di inoltro automatico. Per le differenze tra i livelli, vedere prezzi bus di servizio.

L'entità di destinazione deve essere presente al momento della creazione dell'entità di origine. Se l'entità di destinazione non esiste, bus di servizio restituisce un'eccezione quando viene chiesto di creare l'entità di origine.

Scenari

Aumentare le istanze di un singolo argomento

È possibile usare l'inoltro automatico per aumentare il numero di istanze di un singolo argomento. Il bus di servizio limita il numero delle sottoscrizioni per un determinato argomento a 2000. È possibile gestire più sottoscrizioni creando argomenti di secondo livello. Anche se non si è vincolati dalla limitazione bus di servizio sul numero di sottoscrizioni, l'aggiunta di un secondo livello di argomenti può migliorare la velocità effettiva complessiva dell'argomento.

Diagramma di uno scenario di completamento automatico che mostra un messaggio elaborato tramite un argomento Orders che può essere ramo a uno qualsiasi di tre argomenti di secondo livello Ordini.

Separare i mittenti di messaggi dai ricevitori

È possibile usare l'inoltro automatico anche per disaccoppiare i mittenti dei messaggi dai destinatari. Si consideri, ad esempio, un sistema ERP (Enterprise Resource Planning) costituito da tre moduli: elaborazione degli ordini, gestione dell'inventario e gestione delle relazioni con i clienti. Ognuno di questi moduli genera messaggi che vengono accodati in un argomento corrispondente. Due dei rappresentanti di vendita sono interessati a tutti i messaggi correlati ai propri clienti. Per ricevere questi messaggi, i due rappresentanti creano una coda personale e una sottoscrizione per ognuno degli argomenti ERP che inoltrano automaticamente tutti i messaggi alla rispettiva coda.

Diagramma di uno scenario di completamento automatico che mostra tre moduli di elaborazione che inviano messaggi tramite tre argomenti corrispondenti a due code separate.

Se uno dei rappresentanti si assenta, viene riempita la coda personale, ma non l'argomento ERP. In questo scenario, poiché un rappresentante vendite non ha ricevuto messaggi, nessuno degli argomenti ERP raggiunge mai la quota.

Nota

Quando si configura l'inoltro automatico, il valore per AutoDeleteOnIdle nell'entità di origine viene impostato automaticamente sul valore massimo del tipo di dati.

  • Sul lato di origine, il completamento automatico funge da operazione di ricezione, quindi l'origine che ha il completamento automatico abilitato non è mai veramente "inattiva" e quindi non verrà eliminata automaticamente.
  • Il completamento automatico non apporta modifiche all'entità di destinazione. Se AutoDeleteOnIdle è abilitato per l'entità di destinazione, l'entità viene eliminata automaticamente se è inattiva per l'intervallo di inattività specificato. È consigliabile non abilitare AutoDeleteOnIdle l'entità di destinazione perché se l'entità di destinazione viene eliminata, l'entità di origine visualizzerà continuamente eccezioni quando si tenta di inoltrare i messaggi di destinazione.

Considerazioni sull'inoltro automatico

  • bus di servizio non consente la creazione di un ricevitore di messaggi in un'entità di origine con il completamento automatico abilitato.
  • Se l'entità di destinazione accumula troppi messaggi e supera la quota oppure l'entità di destinazione è disabilitata, l'entità di origine aggiunge i messaggi alla coda dei messaggi non recapitabili fino a quando non è presente spazio nella destinazione (o l'entità viene riabilitata). I messaggi restano nella coda dei messaggi non recapitabili, pertanto sarà necessario riceverli ed elaborarli in modo esplicito da tale coda.
  • Quando si concatenano singoli argomenti per ottenere un argomento composito con molte sottoscrizioni, è consigliabile avere un numero moderato di sottoscrizioni nell'argomento di primo livello e molte sottoscrizioni negli argomenti di secondo livello. Ad esempio, un argomento di primo livello con 20 sottoscrizioni, ognuna delle quali concatenata a un argomento di secondo livello con 200 sottoscrizioni, consente una velocità effettiva più alta rispetto a un argomento di primo livello con 200 sottoscrizioni, ognuna delle quali concatenata a un argomento di secondo livello con 20 sottoscrizioni.
  • Il bus di servizio addebita un'operazione per ogni messaggio inoltrato. Ad esempio, se viene inviato un messaggio a un argomento con 20 sottoscrizioni, ognuna delle quali configurata per l'inoltro automatico dei messaggi a una coda o un argomento differente, vengono addebitate 21 operazioni se tutte le sottoscrizioni di primo livello ricevono una copia del messaggio.
  • Per creare una sottoscrizione concatenata a una coda o a un argomento diverso, l'autore deve avere le autorizzazioni di gestione per l'entità di origine e per quella di destinazione. Per l'invio di messaggi solo all'argomento di origine sono necessarie le autorizzazioni di invio per l'argomento di origine.
  • Non creare una catena che supera quattro hop. I messaggi che superano quattro hop vengono recapitati tramite messaggi non recapitabili. Il numero di hop di un messaggio viene incrementato quando un messaggio viene assegnato automaticamente da una coda o un argomento a un'altra coda o argomento. Il conteggio hop di un messaggio può anche essere incrementato nello scenario di invio tramite il quale un messaggio viene inviato tramite una coda di trasferimento.
  • Il completamento automatico non è supportato per le code o le sottoscrizioni abilitate per la sessione.
  • La coda di origine tenta di inoltrare i messaggi all'entità di destinazione nello stesso ordine ricevuto, ma la destinazione potrebbe essere un argomento che non supporta l'ordinamento. Se l'entità di origine o di destinazione è un'entità partizionata, l'ordine non è garantito.

Passaggi successivi

Per informazioni su come abilitare o disabilitare l'inoltro automatico in modi diversi (portale di Azure, PowerShell, interfaccia della riga di comando, modello di Gestione risorse di Azure e così via), vedere Abilitare l'inoltro automatico per code e sottoscrizioni.