Cos'è il bus di servizio di Azure?What is Azure Service Bus?

Il bus di servizio di Microsoft Azure è un broker di messaggi di integrazione aziendale completamente gestito.Microsoft Azure Service Bus is a fully managed enterprise integration message broker. Il bus di servizio viene in genere usato per disaccoppiare applicazioni e servizi ed è una piattaforma affidabile e sicura per il trasferimento dello stato e dei dati asincrono.Service Bus is most commonly used to decouple applications and services from each other, and is a reliable and secure platform for asynchronous data and state transfer. I dati vengono trasferiti tra applicazioni e servizi diversi usando i messaggi.Data is transferred between different applications and services using messages. Un messaggio è in formato binario, che può contenere solo testo, XML o JSON.A message is in binary format, which can contain JSON, XML, or just text.

Alcuni scenari di messaggistica comuni sono:Some common messaging scenarios are:

  • Messaggistica: trasferire i dati aziendali, ad esempio gli ordini di vendita o di acquisto, i giornali di registrazione o i movimenti delle scorte.Messaging: transfer business data, such as sales or purchase orders, journals, or inventory movements.
  • Disaccoppiare le applicazioni: migliorare l'affidabilità e la scalabilità di applicazioni e servizi. Non è necessario che il client e il servizio siano online contemporaneamente.Decouple applications: improve reliability and scalability of applications and services (client and service do not have to be online at the same time).
  • Argomenti e sottoscrizioni: abilitare 1:n relazioni tra server di pubblicazione e sottoscrittori.Topics and subscriptions: enable 1:n relationships between publishers and subscribers.
  • Sessioni di messaggistica: implementare i flussi di lavoro che richiedono l'ordinamento di messaggi o il differimento di messaggi.Message sessions: implement workflows that require message ordering or message deferral.

Spazi dei nomiNamespaces

Uno spazio dei nomi è un contenitore di ambito per tutti i componenti di messaggistica.A namespace is a scoping container for all messaging components. Più code e argomenti possono risiedere in un unico spazio dei nomi e gli spazi dei nomi vengono spesso usati come contenitori di applicazioni.Multiple queues and topics can reside within a single namespace, and namespaces often serve as application containers.

QueuesQueues

I messaggi vengono inviati e ricevuti dalle code.Messages are sent to and received from queues. Le code consentono di archiviare i messaggi fino a quando l'applicazione ricevente è disponibile per riceverli ed elaborarli.Queues enable you to store messages until the receiving application is available to receive and process them.

Coda

I messaggi nelle code vengono ordinati e vi viene aggiunto un timestamp all'arrivo.Messages in queues are ordered and timestamped on arrival. Dopo essere stato accettato, il messaggio viene conservato in modo sicuro nella risorsa di archiviazione ridondante.Once accepted, the message is held safely in redundant storage. I messaggi vengono recapitati in modalità pull, ovvero su richiesta.Messages are delivered in pull mode, which delivers messages on request.

ArgomentiTopics

È anche possibile usare gli argomenti per inviare e ricevere i messaggi.You can also use topics to send and receive messages. Mentre una coda viene spesso usata per la comunicazione da punto a punto, gli argomenti sono utili negli scenari di pubblicazione/sottoscrizione.While a queue is often used for point-to-point communication, topics are useful in publish/subscribe scenarios.

Argomento

Gli argomenti possono avere più sottoscrizioni indipendenti.Topics can have multiple, independent subscriptions. Un sottoscrittore a un argomento può ricevere una copia di ogni messaggio inviato a tale argomento.A subscriber to a topic can receive a copy of each message sent to that topic. Le sottoscrizioni sono entità denominate, che vengono create in modo permanente, ma possono facoltativamente scadere o essere eliminate automaticamente.Subscriptions are named entities, which are durably created but can optionally expire or auto-delete.

In alcuni scenari potrebbe essere necessario che singole sottoscrizioni non ricevano tutti i messaggi inviati a un argomento.In some scenarios, you may not want individual subscriptions to receive all messages sent to a topic. In questo caso, è possibile usare regole e filtri per definire le condizioni che attivano azioni facoltative, filtrare i messaggi specificati e impostare o modificare le proprietà dei messaggi.If so, you can use rules and filters to define conditions that trigger optional actions, filter specified messages, and set or modify message properties.

Funzionalità avanzateAdvanced features

Il bus di servizio include anche funzionalità avanzate che consentono di risolvere problemi di messaggistica più complessi.Service Bus also has advanced features that enable you to solve more complex messaging problems. Le sezioni seguenti descrivono queste funzionalità chiave:The following sections describe these key features:

Sessioni di messaggisticaMessage sessions

Per realizzare una garanzia FIFO (First-In-First-Out) nel bus di servizio, usare le sessioni.To realize a first-in, first-out (FIFO) guarantee in Service Bus, use sessions. Le sessioni di messaggistica consentono la gestione congiunta e ordinata di sequenze non vincolate di messaggi correlati.Message sessions enable joint and ordered handling of unbounded sequences of related messages.

Inoltro automaticoAuto-forwarding

La funzionalità di inoltro automatico 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.The auto-forwarding feature enables you to chain a queue or subscription to another queue or topic that is part of the same namespace. 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).When auto-forwarding is enabled, Service Bus automatically removes messages that are placed in the first queue or subscription (source) and puts them in the second queue or topic (destination).

Inserimento nella coda di messaggi non recapitabiliDead-lettering

Il bus di servizio supporta una coda di messaggi non recapitabili per conservare i messaggi che non possono essere recapitati ai ricevitori o che non possono essere elaborati.Service Bus supports a dead-letter queue (DLQ) to hold messages that cannot be delivered to any receiver, or messages that cannot be processed. È quindi possibile rimuovere messaggi dalla coda di messaggi non recapitabili ed esaminarli.You can then remove messages from the DLQ and inspect them.

Recapito pianificatoScheduled delivery

È possibile inviare messaggi a una coda o un argomento per l'elaborazione ritardata, ad esempio pianificando un processo in modo che diventi disponibile per l'elaborazione da parte di un sistema a una determinata ora.You can submit messages to a queue or topic for delayed processing; for example, to schedule a job to become available for processing by a system at a certain time.

Differimento di messaggiMessage deferral

Se un client di coda o di sottoscrizione riceve un messaggio che è disposto a elaborare, ma l'elaborazione non è possibile a causa di circostanze particolari all'interno dell'applicazione, l'entità può rinviare il recupero del messaggio a un secondo momento.When a queue or subscription client receives a message that it is willing to process, but for which processing is not currently possible due to special circumstances within the application, the entity has the option to defer retrieval of the message to a later point. Il messaggio rimane nella coda o nella sottoscrizione, ma viene messo da parte.The message remains in the queue or subscription, but it is set aside.

Creazione di batchBatching

L'invio in batch sul lato client consente a un client di coda o argomento di ritardare l'invio di un messaggio per un determinato periodo di tempo.Client-side batching enables a queue or topic client to delay sending a message for a certain period of time. Se il client invia messaggi aggiuntivi durante questo periodo di tempo, trasmette i messaggi in un singolo batch.If the client sends additional messages during this time period, it transmits the messages in a single batch.

TransazioniTransactions

Una transazione raggruppa due o più operazioni in un ambito di esecuzione.A transaction groups two or more operations together into an execution scope. Il bus di servizio supporta le operazioni di raggruppamento in una singola entità di messaggistica (coda, argomento, sottoscrizione) nell'ambito di una transazione.Service Bus supports grouping operations against a single messaging entity (queue, topic, subscription) within the scope of a transaction.

Filtro e azioniFiltering and actions

I sottoscrittori possono definire i messaggi che vogliono ricevere da un argomento.Subscribers can define which messages they want to receive from a topic. Per specificare tali messaggi, viene usata una o più regole di sottoscrizione denominate.These messages are specified in the form of one or more named subscription rules. Per ogni condizione di regola corrispondente, la sottoscrizione genera una copia del messaggio, che può essere annotata in modo diverso per ogni regola.For each matching rule condition, the subscription produces a copy of the message, which may be differently annotated for each matching rule.

Eliminazione automatica in caso di inattivitàAuto-delete on idle

L'eliminazione automatica in caso di inattività consente di specificare un intervallo di inattività dopo il quale la coda viene automaticamente eliminata.Auto-delete on idle enables you to specify an idle interval after which the queue is automatically deleted. La durata minima è 5 minuti.The minimum duration is 5 minutes.

Rilevamento duplicatiDuplicate detection

Se si verifica un errore a causa del quale il client è in dubbio sul risultato di un'operazione di invio, il rilevamento dei duplicati elimina il dubbio da queste situazioni, consentendo al mittente di inviare nuovamente lo stesso messaggio che, se duplicato, verrà rimosso automaticamente dalla coda o dall'argomento.If an error occurs that causes the client to have any doubt about the outcome of a send operation, duplicate detection takes the doubt out of these situations by enabling the sender re-send the same message, and the queue or topic discards any duplicate copies.

Firma di accesso condiviso, controllo degli accessi in base al ruolo e identità del servizio gestitaSAS, RBAC, and MSI

Il bus di servizio supporta i protocolli di sicurezza, ad esempio firme di accesso condiviso, controllo degli accessi in base al ruolo e identità del servizio gestita.Service Bus supports security protocols such as Shared Access Signatures (SAS), Role Based Access Control (RBAC) and Managed Service Identity (MSI).

Ripristino di emergenza geograficoGeo-disaster recovery

Quando le aree o i data center di Azure riscontrano tempo di inattività, il ripristino di emergenza geografico fa in modo che l'elaborazione dei dati continui a funzionare in un'area o in un data center diverso.When Azure regions or datacenters experience downtime, Geo-disaster recovery enables data processing to continue operating in a different region or datacenter.

SicurezzaSecurity

Il bus di servizio supporta i protocolli AMQP 1.0 e HTTP/REST standard.Service Bus supports standard AMQP 1.0 and HTTP/REST protocols.

Librerie clientClient libraries

Il bus di servizio supporta le librerie client per .NET, Java, JMS.Service Bus supports client libraries for .NET, Java, JMS.

IntegrazioneIntegration

Il bus di servizio si integra completamente con i servizi di Azure seguenti:Service Bus fully integrates with the following Azure services:

Passaggi successiviNext steps

Per iniziare a usare la messaggistica del bus di servizio, vedere gli articoli seguenti:To get started using Service Bus messaging, see the following articles: