Bus di servizio di Azure - Domande frequenti

Questo articolo risponde ad alcune domande frequenti sul bus di servizio di Microsoft Azure. Per informazioni generali sui prezzi e sul supporto di Azure, vedere Domande frequenti sul supporto di Azure.

Domande generali sul bus di servizio di Azure

Che cos'è il bus di servizio di Azure?

Il bus di servizio di Azure è una piattaforma cloud di messaggistica asincrona che consente di scambiare dati tra sistemi disaccoppiati. Microsoft offre questa funzionalità come servizio. Non è pertanto necessario un hardware per poterla usare.

Cos'è uno spazio dei nomi del bus di servizio?

Lo spazio dei nomi è un contenitore per le risorse del bus di servizio all'interno dell'applicazione. La creazione di uno spazio dei nomi è necessaria per usare il bus di servizio ed è uno dei primi passaggi delle attività iniziali.

Cos'è una coda del bus di servizio di Azure?

La coda del bus di servizio è un'entità in cui vengono archiviati i messaggi. Le code sono utili in presenza di più applicazioni o più parti di un'applicazione distribuita che devono comunicare tra loro. La coda è simile a un centro di distribuzione perché più prodotti (messaggi) vengono ricevuti e quindi inviati da tale posizione.

Cosa sono gli argomenti e le sottoscrizioni del bus di servizio?

Un argomento può essere visualizzato come coda e quando si usano più sottoscrizioni diventa un modello di messaggistica più completo. Si tratta essenzialmente di uno strumento di comunicazione uno-a-molti. Questo modello di pubblicazione/sottoscrizione, detto anche Pub/Sub, consente a un'applicazione che invia un messaggio a un argomento con più sottoscrizioni di garantire la ricezione di tale messaggio da parte di più applicazioni.

Cos'è un'entità partizionata?

Una coda o un argomento convenzionale è gestito da un singolo broker messaggi e archiviato in un archivio di messaggistica. Una coda partizionata o un argomento viene gestito da più broker di messaggi e archiviato in più archivi di messaggistica. Con questa funzionalità la velocità effettiva complessiva di una coda o di un argomento partizionato non è più limitata dalle prestazioni di un singolo broker messaggi o archivio di messaggistica. Inoltre, un'interruzione temporanea di un archivio di messaggistica non determina la mancanza di disponibilità di una coda o di un argomento partizionato.

Se si usano entità partizionate, l'ordinamento non è garantito. Se una partizione non è disponibile è comunque possibile inviare e ricevere messaggi da altre partizioni.

Dove vengono archiviati i dati dal bus di servizio Azure?

Il livello Standard del bus di servizio di Azure usa il database SQL di Azure per il livello di archiviazione back-end. Per tutte le aree tranne il Brasile meridionale e l'Asia sud-orientale, il backup del database è ospitato in un'area diversa (in genere l'area associata di Azure). Per le aree Brasile meridionale e Asia sud-orientale, i backup dei database vengono archiviati nella stessa area per rispettare i requisiti di residenza dei dati per queste aree.

Il livello Premium del bus di servizio di Azure archivia i metadati e i dati nelle aree selezionate. Quando si configura il ripristino di emergenza geografico per uno spazio dei nomi Premium del bus di servizio di Azure, i metadati vengono copiati nell'area secondaria selezionata.

Quali porte è necessario aprire nel firewall?

È possibile usare i protocolli seguenti con il bus di servizio di Azure per inviare e ricevere messaggi:

  • Advanced Message Queuing Protocol 1.0 (AMQP)
  • Hypertext Transfer Protocol 1.1 con TLS (HTTPS)

Vedere la tabella seguente per le porte TCP in uscita che è necessario aprire per usare questi protocolli e comunicare con il bus di servizio di Azure:

Protocollo Porte Dettagli
AMQP 5671, 5672 AMQP con TLS. Vedere Guida al protocollo AMQP
HTTPS 443 Questa porta viene usata per HTTP/API REST e per AMQP su WebSocket

La porta HTTPS è in genere necessaria per la comunicazione in uscita anche quando AMQP viene usato sulla porta 5671, perché diverse operazioni di gestione eseguite dagli SDK client e l'acquisizione di token da Microsoft Entra ID (se usato) vengono eseguite su HTTPS.

Gli SDK ufficiali di Azure usano in genere il protocollo AMQP per l'invio e la ricezione di messaggi dal bus di servizio.

L'opzione di protocollo AMQP over-WebSockets viene eseguita sulla porta TCP 443 esattamente come l'API HTTP/REST, ma è diversamente identica a quella di AMQP normale. Questa opzione ha una latenza di connessione iniziale più elevata a causa di round trip aggiuntivi di handshake e un sovraccarico leggermente maggiore come compromesso per la condivisione della porta HTTPS. Se questa modalità è selezionata, la porta TCP 443 è sufficiente per la comunicazione. Le opzioni seguenti consentono di selezionare la modalità WebSocket AMQP.

Lingua Opzione
.NET (Azure.Messaging.ServiceBus) Creare ServiceBusClient usando un costruttore che accetta ServiceBusClientOptions come parametro. Impostare ServiceBusClientOptions.TransportType su ServiceBusTransportType.AmqpWebSockets
.NET (Microsoft.Azure.ServiceBus) Quando si creano oggetti client, usare costruttori che accettano TransportType, ServiceBus Connessione ion o ServiceBus Connessione ionStringBuilder come parametri.

Per la costruzione che accetta transportType come parametro, impostare il parametro su TransportType.AmqpWebSockets.

Per il costruttore che accetta ServiceBusConnection come parametro, impostare ServiceBus Connessione ion. TransportType in TransportType.AmqpWebSockets.

Se si usa ServiceBusConnectionStringBuilder, usare costruttori che offrono un'opzione per specificare .transportType

Java (com.azure.messaging.servicebus) Quando si creano client, impostare ServiceBusClientBuilder.transportType su AmqpTransportType.AMQP.AMQP_WEB_SOCKETS
Java (com.microsoft.azure.servicebus) Quando si creano client, impostare transportType in com.microsoft.azure.servicebus.Client Impostazioni su com.microsoft.azure.servicebus.primitives.TransportType.AMQP_WEB_SOCKETS
JavaScript Quando si creano bus di servizio oggetti client, usare la webSocketOptions proprietà in ServiceBusClientOptions.
Python Quando si creano client bus di servizio, impostare ServiceBusClient.transport_type su TransportType.AmqpOverWebSocket

Il 30 settembre 2026 verranno ritirati le librerie di bus di servizio di Azure SDK WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus e com.microsoft.azure.servicebus, che non sono conformi alle linee guida di Azure SDK. Il supporto del protocollo SBMP verrà terminato, quindi non sarà più possibile usare questo protocollo dopo il 30 settembre 2026. Eseguire la migrazione alle librerie più recenti di Azure SDK, che offrono aggiornamenti critici della sicurezza e funzionalità migliorate, prima di tale data.

Anche se le librerie precedenti possono ancora essere usate oltre il 30 settembre 2026, non riceveranno più il supporto e gli aggiornamenti ufficiali da Microsoft. Per altre informazioni, vedere l’annuncio del ritiro del supporto.

Bus di servizio di Azure supporta Java Message Service (JMS)?

Quali indirizzi IP è necessario aggiungere all'elenco elementi consentiti?

Per trovare gli indirizzi IP corretti da aggiungere all'elenco elementi consentiti per le connessioni, seguire questa procedura:

  1. Al prompt dei comandi eseguire il comando seguente:

    nslookup <YourNamespaceName>.servicebus.windows.net
    
  2. Annotare l'indirizzo IP restituito in Non-authoritative answer.

Se si usa la ridondanza della zona per lo spazio dei nomi, è necessario eseguire alcuni passaggi aggiuntivi:

  1. Per prima cosa, eseguire nslookup nello spazio dei nomi.

    nslookup <yournamespace>.servicebus.windows.net
    
  2. Annotare il nome nella sezione di risposta non autorevole, presente in uno dei formati seguenti:

    <name>-s1.cloudapp.net
    <name>-s2.cloudapp.net
    <name>-s3.cloudapp.net
    
  3. Eseguire nslookup per ciascuna di esse con suffissi S1, S2 e S3 per ottenere gli indirizzi IP di tutte e tre le istanze in esecuzione in tre zone di disponibilità.

    Nota

    L'indirizzo IP restituito dal comando nslookup non è un indirizzo IP statico. Rimane costante finché la distribuzione sottostante non viene eliminata o spostata in un cluster diverso, tuttavia l'uso di indirizzi IN non è consigliato o supportato e sarà necessario tenere traccia delle modifiche apportate agli indirizzi IP.

Dove è possibile trovare l'indirizzo IP del client che invia o riceve i messaggi da o verso uno spazio dei nomi?

Gli indirizzi IP dei client che inviano o ricevono i messaggi da o verso uno spazio dei nomi non vengono registrati. Rigenerare le chiavi in modo che tutti i client esistenti non riescano a eseguire l'autenticazione ed esaminare le impostazioni del Controllo degli accessi in base al ruolo di Azure per assicurarsi che solo gli utenti o le applicazioni consentiti abbiano accesso allo spazio dei nomi.

Se si usa uno spazio dei nomi Premium usare il filtro IP, gli endpoint del servizio di rete virtuale e gli endpoint privati per limitare l'accesso allo spazio dei nomi.

Procedure consigliate

Quali sono alcune procedure consigliate per il bus di servizio di Azure?

Consultare Procedure consigliate per il miglioramento delle prestazioni tramite il bus di servizio: questo articolo descrive come ottimizzare le prestazioni durante lo scambio di messaggi.

Cosa è necessario sapere prima di creare entità?

Le proprietà seguenti di code e argomenti non sono modificabili. Prendere in considerazione questa limitazione quando si creano le entità, perché queste proprietà non possono essere modificate senza creare una nuova entità sostitutiva.

  • Partizionamento
  • Sessioni
  • Rilevamento duplicati
  • Entità espressa

Prezzi

In questa sezione vengono fornite le risposte ad alcune delle domande più frequenti sul modello di prezzo del bus di servizio.

L'articolo Informazioni sul prezzo e la fatturazione del Bus di servizio spiega i metodi di fatturazione nel bus di servizio. Per informazioni specifiche sulle opzioni relative ai prezzi del bus di servizio, vedere la pagina relativa ai prezzi del Bus di servizio.

Per informazioni generali sui prezzi di Azure, vedere le Domande frequenti sul supporto di Azure.

Quali sono le modalità di addebito per il bus di servizio?

Per informazioni complete sui prezzi del bus di servizio, vedere la pagina relativa ai prezzi del Bus di servizio. Oltre ai prezzi indicati, vengono addebitati i trasferimenti di dati associati in uscita dal data center in cui è stato effettuato il provisioning dell'applicazione.

Quale tipo di utilizzo del bus di servizio è soggetto all'addebito per trasferimento di dati Quale non lo è?

Qualsiasi trasferimento di dati nell'ambito di una specifica area di Azure non è soggetto ad alcun addebito, come qualsiasi trasferimento di dati verso l'interno. Il trasferimento di dati all'esterno di un'area è soggetto alle spese di uscita indicate qui.

Per il bus di servizio viene addebitato lo spazio di archiviazione?

No. Per il bus di servizio non viene addebitato lo spazio di archiviazione. È tuttavia prevista una quota che limita la quantità massima di dati che è possibile salvare in modo permanente per ogni coda e argomento. Vedere la risposta alla domanda successiva.

Si dispone di uno spazio dei nomi Standard del bus di servizio. Perché i costi sono visualizzati nel gruppo di risorse '$system'?

Il bus di servizio di Azure ha aggiornato di recente i componenti della fatturazione. A causa di questa modifica, se si dispone di un bus di servizio spazio dei nomi Standard, è possibile che vengano visualizzati elementi di riga per la risorsa /subscriptions/<azure_subscription_id>/resourceGroups/$system/providers/Microsoft.ServiceBus/namespaces/$system nel gruppo $systemdi risorse .

Questi addebiti rappresentano l'addebito di base per ogni sottoscrizione di Azure che ha effettuato il provisioning dello spazio dei nomi Standard del bus di servizio.

È importante notare che questi addebiti non sono nuovi, vale a dire che esistevano anche nel modello di fatturazione precedente. L'unica modifica è che sono ora elencate in $system. Questa operazione viene eseguita a causa di vincoli nel nuovo sistema di fatturazione che raggruppa gli addebiti a livello di sottoscrizione, non associati a una risorsa specifica, con l'ID $system risorsa.

Obiettivi di vendita

Per un elenco di limiti e quote del bus di servizio, vedere la panoramica sulle quote del bus di servizio.

Come gestire i messaggi di dimensioni superiori a 1 MB?

bus di servizio servizi di messaggistica (code e argomenti/sottoscrizioni) consentono all'applicazione di inviare messaggi di dimensioni fino a 256 KB (livello standard) o 100 MB (livello Premium). Se si gestiscono messaggi di dimensioni maggiori delle dimensioni consentite, usare il modello di controllo attestazione descritto in questo post di blog.

Risoluzione dei problemi

Come si crea uno spazio dei nomi dopo l'eliminazione da un'altra sottoscrizione?

Quando si elimina uno spazio dei nomi da una sottoscrizione, attendere 4 ore prima di ricrearla con lo stesso nome in un'altra sottoscrizione. In caso contrario, è possibile che venga visualizzato il messaggio di errore seguente: Namespace already exists.

Quali sono alcune delle eccezioni generate dalle API del bus di servizio di Azure e le azioni consigliate?

Per un elenco delle possibili eccezioni del bus di servizio, vedere Eccezioni di messaggistica del bus di servizio.

Cos'è una firma di accesso condiviso e quali linguaggi supportano la generazione di una firma?

Le firme di accesso condiviso sono un meccanismo di autenticazione basato su hash sicuri SHA-256 o URI. Per informazioni su come generare le firme in Node.js, PHP, Java, Python e C#, vedere l'articolo Firme di accesso condiviso.

Gestione di sottoscrizioni e spazio dei nomi

Come si esegue la migrazione di uno spazio dei nomi a un'altra sottoscrizione di Azure?

È possibile spostare uno spazio dei nomi da una sottoscrizione di Azure a un'altra usando il portale di Azure o i comandi di PowerShell. Per eseguire l'operazione, lo spazio dei nomi deve essere già attivo. L'utente che esegue i comandi deve essere un amministratore delle sottoscrizioni di origine e di destinazione.

Portale

Per usare il portale di Azure per eseguire la migrazione degli spazi dei nomi del bus di servizio a un'altra sottoscrizione, seguire le istruzioni riportate qui.

PowerShell

La sequenza di comandi PowerShell seguente sposta uno spazio dei nomi da una sottoscrizione di Azure a un'altra. Per eseguire questa operazione, lo spazio dei nomi deve essere già attivo e l'utente che esegue i comandi di PowerShell deve essere un amministratore nella sottoscrizione di origine e in quella di destinazione.

# Create a new resource group in target subscription
Select-AzSubscription -SubscriptionId 'ffffffff-ffff-ffff-ffff-ffffffffffff'
New-AzResourceGroup -Name 'targetRG' -Location 'East US'

# Move namespace from source subscription to target subscription
Select-AzSubscription -SubscriptionId 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
$res = Find-AzResource -ResourceNameContains mynamespace -ResourceType 'Microsoft.ServiceBus/namespaces'
Move-AzResource -DestinationResourceGroupName 'targetRG' -DestinationSubscriptionId 'ffffffff-ffff-ffff-ffff-ffffffffffff' -ResourceId $res.ResourceId

È possibile disabilitare TLS 1.0 o 1.1 negli spazi dei nomi del bus di servizio?

Sì, è possibile disabilitare TLS 1.0 o 1.1 negli spazi dei nomi bus di servizio impostando la versione minima di TLS. Per altre informazioni, vedere Applicare una versione minima richiesta di Transport Layer Security (TLS) per le richieste a uno spazio dei nomi bus di servizio.

Passaggi successivi

Per altre informazioni sul bus di servizio, vedere gli articoli seguenti: