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, il che significa che non è necessario ospitare hardware proprio per utilizzarla.
Cos'è uno spazio dei nomi di bus di servizio?
Un namespace fornisce un contenitore di ambito per l'indirizzamento delle risorse di bus di servizio nell'applicazione. La creazione di uno spazio dei nomi è necessaria per usare bus di servizio ed è uno dei primi passaggi per iniziare.
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 i topic e le sottoscrizioni di bus di servizio di Azure?
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. Le code o gli argomenti partizionati vengono gestiti da più broker dei messaggi e salvati 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 un namespace Premium di 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:
- Protocollo Avanzato di Coda dei Messaggi 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 presenta una latenza di connessione iniziale più elevata a causa di ulteriori round trip di handshake e di un overhead leggermente maggiore come compromesso per la condivisione della porta HTTPS. Se è selezionata questa modalità, la porta TCP 443 è sufficiente per la comunicazione. Le opzioni seguenti consentono di selezionare la modalità WebSocket AMQP.
| Lingua | Opzione |
|---|---|
| .NET (Azure. Messaggistica.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, ServiceBusConnection o ServiceBusConnectionStringBuilder come parametri. Per la costruzione che accetta Per il costruttore che accetta Se si utilizza |
| 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 i client, impostare transportType in com.microsoft.azure.servicebus.ClientSettings su com.microsoft.azure.servicebus.primitives.TransportType.AMQP_WEB_SOCKETS |
| JavaScript | Quando si creano gli oggetti client di bus di servizio, usare la proprietà webSocketOptions in ServiceBusClientOptions. |
| Pitone | Quando si creano client di bus di servizio, impostare ServiceBusClient.transport_type su TransportType.AmqpOverWebSocket |
Il 30 settembre 2026 verranno ritirate le librerie dell'SDK del bus di servizio di Azure WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus e com.microsoft.azure.servicebus, che non sono conformi alle linee guida di Azure SDK. Verrà terminato anche il supporto del protocollo SBMP, 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 della fine del supporto.
Bus di servizio di Azure supporta Java Message Service (JMS)?
Sì. Lo fa. Fai riferimento ai seguenti articoli:
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:
Al prompt dei comandi eseguire il comando seguente:
nslookup <YourNamespaceName>.servicebus.windows.netAnnotare l'indirizzo IP restituito in
Non-authoritative answer.
Se si usa la ridondanza della zona per lo spazio dei nomi, è necessario eseguire alcuni ulteriori passaggi:
Innanzitutto, esegui nslookup sul namespace.
nslookup <yournamespace>.servicebus.windows.netAnnotare 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.netEseguire 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
nslookupnon è un indirizzo IP statico. Rimane costante finché la distribuzione sottostante non viene eliminata o spostata in un cluster diverso, tuttavia l'uso di indirizzi IP 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 eseguano l'autenticazione e esaminino le impostazioni di controllo degli accessi in base al ruolo di Azure per garantire che solo gli utenti o le applicazioni autorizzati abbiano accesso allo spazio dei nomi.
Se si usa uno spazio dei nomi Premium, usare il filtraggio 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à Express
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 anche i costi per i trasferimenti di dati associati al traffico in uscita all'esterno del 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 Cosa non lo è?
Qualsiasi trasferimento di dati all'interno di una determinata area di Azure viene fornito senza alcun costo e qualsiasi trasferimento di dati in ingresso. Il trasferimento di dati all'esterno di un'area è soggetto alle spese di uscita indicate qui.
bus di servizio addebita i costi di archiviazione?
No. bus di servizio non prevede addebiti per l'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.
Ho un namespace Standard di 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 namespace bus di servizio Standard, è possibile che vengano visualizzate voci di riga per la risorsa /subscriptions/<azure_subscription_id>/resourceGroups/$system/providers/Microsoft.ServiceBus/namespaces/$system nel gruppo di risorse $system.
Questi addebiti rappresentano il costo base per ogni sottoscrizione Azure in cui è stato effettuato il provisioning di un namespace bus di servizio Standard.
È 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.
Quote
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?
I servizi di messaggistica di bus di servizio (code e argomenti/sottoscrizioni) consentono a un'applicazione di inviare messaggi di dimensioni fino a 256 KB (livello standard) o 100 MB (livello premium). Se è necessario gestire messaggi di dimensioni superiori alle dimensioni consentite, usare il modello claim check 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 di bus di servizio, vedere Panoramica delle eccezioni.
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 delle sottoscrizioni e dello 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 di bus di servizio a un'altra subscription, seguire le istruzioni disponibili 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, vedi Applicare una versione minima obbligatoria di Transport Layer Security (TLS) per le richieste a uno spazio dei nomi di bus di servizio.
Passaggi successivi
Per altre informazioni sul bus di servizio, vedere gli articoli seguenti:
- Introduzione ad bus di servizio di Azure Premium (post di blog)
- Introduzione ad bus di servizio di Azure Premium (Channel9)
- Panoramica del bus di servizio
- Introduzione alle code del bus di servizio