CodeQueues

Le code consentono un recapito dei messaggi di tipo FIFO (First In, First Out) a uno o più consumer concorrenti.Queues offer First In, First Out (FIFO) message delivery to one or more competing consumers.In altri termini, i messaggi in genere vengono ricevuti ed elaborati dai ricevitori secondo l'ordine temporale in cui sono stati aggiunti alla coda e ogni messaggio viene ricevuto ed elaborato da un solo consumer.That is, messages are typically expected to be received and processed by the receivers in the order in which they were added to the queue, and each message is received and processed by only one message consumer.Il vantaggio principale derivante dall'uso delle code è quello di ottenere un "disaccoppiamento temporale" dei componenti applicativi,A key benefit of using queues is to achieve "temporal decoupling" of application components.ovvero non è necessario che i producer e i consumer inviino e ricevano i messaggi contemporaneamente perché i messaggi restano archiviati nella coda.In other words, the producers (senders) and consumers (receivers) do not have to be sending and receiving messages at the same time, because messages are stored durably in the queue.Il producer inoltre non deve attendere la risposta del consumer per continuare a elaborare e inviare messaggi.Furthermore, the producer does not have to wait for a reply from the consumer in order to continue to process and send messages.

Se per qualche motivo l’applicazione non è in grado di elaborare il messaggio, può chiamare il metodo Abandon, invece di Complete, per il messaggio ricevuto.If the application is unable to process the message for some reason, it can call the Abandon method on the received message (instead of Complete).In questo modo, il bus di servizio sbloccherà il messaggio che sarà disponibile per essere nuovamente ricevuto dallo stesso consumer o da un altro consumer concorrente.This enables Service Bus to unlock the message and make it available to be received again, either by the same consumer or by another competing consumer.Al blocco è associato anche un timeout. Se l'applicazione non riesce a elaborare il messaggio prima della scadenza del timeout, ad esempio a causa di un arresto anomalo, il bus di servizio sblocca il messaggio rendendolo nuovamente disponibile per la ricezione (eseguendo essenzialmente un'operazione Abandon per impostazione predefinita).Secondly, there is a timeout associated with the lock and if the application fails to process the message before the lock timeout expires (for example, if the application crashes), then Service Bus unlocks the message and makes it available to be received again (essentially performing an Abandon operation by default).

Argomenti e sottoscrizioniTopics and subscriptions

Diversamente dalle code, in cui ogni messaggio viene elaborato da un unico consumer, gli argomenti e le sottoscrizioni offrono una forma di comunicazione di tipo uno-a-molti, in un modello di pubblicazione/sottoscrizione.In contrast to queues, in which each message is processed by a single consumer, topics and subscriptions provide a one-to-many form of communication, in a publish/subscribe pattern.Particolarmente utile per la comunicazione con un numero molto elevato di destinatari, ogni messaggio pubblicato è reso disponibile per ogni sottoscrizione registrata con l'argomento.Useful for scaling to very large numbers of recipients, each published message is made available to each subscription registered with the topic.I messaggi vengono inviati a un argomento e recapitati a una o più sottoscrizioni associate, a seconda delle regole di filtro che possono essere impostate per ogni sottoscrizione.Messages are sent to a topic and delivered to one or more associated subscriptions, depending on filter rules that can be set on a per-subscription basis.Per limitare i messaggi da ricevere, le sottoscrizioni possono usare filtri aggiuntivi.The subscriptions can use additional filters to restrict the messages that they want to receive.I messaggi vengono inviati a un argomento nello stesso modo in cui vengono inviati a una coda, con la differenza che i messaggi non vengono ricevuti direttamente dall'argomento.Messages are sent to a topic in the same way they are sent to a queue, but messages are not received from the topic directly.Vengono ricevuti dalle sottoscrizioni.Instead, they are received from subscriptions.La sottoscrizione di un argomento è simile a una coda virtuale che riceve copie dei messaggi inviati all'argomento.A topic subscription resembles a virtual queue that receives copies of the messages that are sent to the topic.La procedura di ricezione dei messaggi da parte di una sottoscrizione è identica a quella usata per la ricezione da parte di una coda.Messages are received from a subscription identically to the way they are received from a queue.