Tento článek popisuje některé nejčastější dotazy týkající se služby Microsoft Azure Service Bus. Můžete také navštívit nejčastější dotazy k podpoře Azure, kde najdete obecné informace o cenách a podpoře Azure.
Obecné dotazy týkající se služby Azure Service Bus
Co je Azure Service Bus?
Azure Service Bus je cloudová platforma pro asynchronní zasílání zpráv, která umožňuje odesílat data mezi oddělenými systémy. Microsoft tuto funkci nabízí jako službu, což znamená, že k jeho použití nemusíte hostovat vlastní hardware.
Co je obor názvů služby Service Bus?
Obor názvů poskytuje kontejner oborů pro adresování prostředků služby Service Bus v rámci vaší aplikace. Vytvoření oboru názvů je nezbytné pro použití služby Service Bus a je jedním z prvních kroků v začátcích.
Co je fronta služby Azure Service Bus?
Fronta služby Service Bus je entita, ve které se ukládají zprávy. Fronty jsou užitečné, když máte více aplikací nebo více částí distribuované aplikace, které spolu potřebují komunikovat. Fronta se podobá distribučnímu centru v tom, že se přijímá více produktů (zpráv) a pak se odesílají z daného umístění.
Co jsou témata a odběry služby Azure Service Bus?
Téma lze vizualizovat jako frontu a při použití více předplatných se stává bohatším modelem zasílání zpráv; v podstatě komunikační nástroj 1:N. Tento model publikování/přihlášení k odběru (nebo pub/sub) umožňuje aplikaci, která odesílá zprávu do tématu s více odběry, aby byla tato zpráva přijata více aplikacemi.
Co je dělená entita?
Konvenční frontu nebo téma zpracovává jeden zprostředkovatel zpráv a je uložený v jednom úložišti zpráv. Dělenou frontu nebo téma zpracovává několik zprostředkovatelů zpráv a ukládá se do více úložišť zpráv. Tato funkce znamená, že celková propustnost dělené fronty nebo tématu už není omezena výkonem jednoho zprostředkovatele zpráv nebo úložištěm zpráv. Dočasný výpadek úložiště zpráv navíc nevykreslí dělenou frontu nebo téma, které není k dispozici.
Při použití dělených entit není řazení zajištěno. V případě nedostupnosti oddílu můžete dál odesílat a přijímat zprávy z ostatních oddílů.
Kde Azure Service Bus ukládá data?
Úroveň Standard služby Azure Service Bus využívá azure SQL Database pro svou vrstvu úložiště back-endu. Pro všechny oblasti kromě Brazílie – jih a jihovýchodní Asie se záloha databáze hostuje v jiné oblasti (obvykle spárovaná oblast Azure). V oblastech Brazílie – jih a Jihovýchodní Asie se zálohy databází ukládají ve stejné oblasti, aby vyhovovaly požadavkům na rezidenci dat pro tyto oblasti.
Azure Service Bus úrovně Premium ukládá metadata a data do vybraných oblastí. Při nastavení geografického zotavení po havárii pro obor názvů Premium služby Azure Service Bus se metadata zkopírují do sekundární oblasti, kterou vyberete.
Jaké porty je potřeba otevřít v bráně firewall?
K odesílání a příjmu zpráv můžete použít následující protokoly se službou Azure Service Bus:
- Rozšířený protokol řízení front zpráv 1.0 (AMQP)
- Protokol Hypertext Transfer Protocol 1.1 s protokolem TLS (HTTPS)
Informace o odchozích portech TCP, které potřebujete otevřít, abyste mohli komunikovat se službou Azure Service Bus pomocí těchto protokolů, najdete v následující tabulce:
Protokol | Porty | Detaily |
---|---|---|
AMQP | 5671, 5672 | AMQP s protokolem TLS. Viz průvodce protokolem AMQP |
HTTPS | 443 | Tento port se používá pro rozhraní HTTP/REST API a pro AMQP-over-WebSockets. |
Port HTTPS se obecně vyžaduje pro odchozí komunikaci také v případě, že se protokol AMQP používá přes port 5671, protože několik operací správy provedených klientskými sadami SDK a získání tokenů z ID Microsoft Entra (při použití) běží přes HTTPS.
Oficiální sady Azure SDK obecně používají protokol AMQP k odesílání a přijímání zpráv ze služby Service Bus.
Možnost protokolu AMQP-over-WebSockets běží přes port TCP 443 stejně jako http/REST API, ale jinak je funkčně identická s prostým protokolem AMQP. Tato možnost má vyšší počáteční latenci připojení kvůli dodatečným opakovaným pokusům handshake a mírně větší režii, protože se jedná o kompromis pro sdílení portu HTTPS. Pokud je tento režim vybraný, je pro komunikaci dostatečný port TCP 443. Následující možnosti umožňují vybrat režim AMQP WebSockets.
Jazyk | Možnost |
---|---|
.NET (Azure.Messaging.ServiceBus) | Vytvořte ServiceBusClient pomocí konstruktoru, který jako parametr přebírá ServiceBusClientOptions. Nastavení ServiceBusClientOptions.TransportType na ServiceBusTransportType.AmqpWebSockets |
.NET (Microsoft.Azure.ServiceBus) | Při vytváření klientských objektů použijte konstruktory, které jako parametry přebírají TransportType, ServiceBus Připojení ion nebo ServiceBus Připojení ionStringBuilder. U konstrukce, která přebírá Pro konstruktor, který přebírá Pokud použijete , použijte |
Java (com.azure.messaging.servicebus) | Při vytváření klientů nastavte ServiceBusClientBuilder.transportType na AmqpTransportType.AMQP.AMQP_WEB_SOCKETS |
Java (com.microsoft.azure.servicebus) | Při vytváření klientů nastavte transportType na com.microsoft.azure.servicebus.Client Nastavení na com.microsoft.azure.servicebus.primitives.TransportType.AMQP_WEB_SOCKETS |
JavaScript | Při vytváření objektů klienta služby Service Bus použijte webSocketOptions vlastnost v ServiceBusClientOptions. |
Python | Při vytváření klientů Service Bus nastavte ServiceBusClient.transport_type na TransportType.AmqpOverWebSocket. |
30. září 2026 vyřadíme knihovny sady SDK služby Azure Service Bus pro WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus a com.microsoft.azure.servicebus, které nevyhovují pokynům sady Azure SDK. Také ukončíme podporu protokolu SBMP, takže tento protokol už nebudete moct používat po 30. září 2026. Před tímto datem migrujte na nejnovější knihovny sady Azure SDK, které nabízejí důležité aktualizace zabezpečení a vylepšené funkce.
I když starší knihovny je možné používat i po 30. září 2026, nebudou už od Microsoftu dostávat oficiální podporu a aktualizace. Další informace najdete v oznámení o vyřazení podpory.
Podporuje Azure Service Bus službu Java Message Service (JMS)?
Ano. Dělá to. Podívejte se na následující články:
Jaké IP adresy je potřeba přidat do seznamu povolených?
Pokud chcete najít správné IP adresy, které chcete přidat do seznamu povolených připojení, postupujte takto:
Z příkazového řádku spusťte následující příkaz:
nslookup <YourNamespaceName>.servicebus.windows.net
Poznamenejte si IP adresu vrácenou v
Non-authoritative answer
.
Pokud pro obor názvů používáte redundanci zóny, musíte udělat několik dalších kroků:
Nejprve spustíte nslookup v oboru názvů.
nslookup <yournamespace>.servicebus.windows.net
Poznamenejte si název v oddílu neautoritativní odpovědi , který je v jednom z následujících formátů:
<name>-s1.cloudapp.net <name>-s2.cloudapp.net <name>-s3.cloudapp.net
Spuštěním příkazu nslookup pro každou z nich s příponami s1, s2 a s3 získejte IP adresy všech tří instancí spuštěných ve třech zónách dostupnosti.
Poznámka:
IP adresa vrácená příkazem
nslookup
není statickou IP adresou. Zůstane konstantní, dokud se základní nasazení neodstraní nebo nepřesune do jiného clusteru, ale použití adres IN se nedoporučuje ani nepodporuje a budete muset sledovat změny IP adres.
Kde najdu IP adresu klienta odesílajícího nebo přijímajícího zprávy z oboru názvů?
Ip adresy klientů, kteří odesílají nebo přijímají zprávy z vašeho oboru názvů, nezapíšeme. Znovu vygenerujte klíče, aby se všem stávajícím klientům nepodařilo ověřit a zkontrolovat nastavení řízení přístupu na základě role v Azure (Azure RBAC) a zajistit tak, aby k oboru názvů měli přístup jenom uživatelé nebo aplikace.
Pokud používáte obor názvů premium, použijte filtrování IP adres, koncové body služby virtuální sítě a privátní koncové body k omezení přístupu k oboru názvů.
Osvědčené postupy
Jaké jsou některé osvědčené postupy služby Azure Service Bus?
Podívejte se na osvědčené postupy pro vylepšení výkonu pomocí služby Service Bus – tento článek popisuje, jak optimalizovat výkon při výměně zpráv.
Co mám vědět před vytvořením entit?
Následující vlastnosti fronty a tématu jsou neměnné. Při vytváření entit zvažte toto omezení, protože tyto vlastnosti nelze upravit, aniž byste vytvořili novou náhradní entitu.
- dělení na části
- Přednášky
- Vyhledávání duplicit
- Entita Express
Ceny
V této části najdete odpovědi na některé nejčastější dotazy týkající se cenové struktury služby Service Bus.
Článek o cenách a fakturaci služby Service Bus vysvětluje měřiče fakturace ve službě Service Bus. Konkrétní informace o cenových možnostech služby Service Bus najdete v podrobnostech o cenách služby Service Bus.
Můžete také navštívit nejčastější dotazy k podpoře Azure pro obecné informace o cenách Azure.
Jak se vám účtují poplatky za Service Bus?
Úplné informace o cenách služby Service Bus najdete v podrobnostech o cenách služby Service Bus. Kromě uvedených cen se vám budou účtovat související přenosy dat za výchozí přenos dat mimo datové centrum, ve kterém je vaše aplikace zřízená.
Jaké využití služby Service Bus podléhá přenosu dat? Co není?
Jakýkoli přenos dat v dané oblasti Azure se poskytuje bez poplatků a také jakýkoli příchozí přenos dat. Přenos dat mimo oblast podléhá poplatkům za výchozí přenos dat, které najdete tady.
Účtuje se služba Service Bus za úložiště?
Ne. Service Bus se neúčtuje za úložiště. Existuje však kvóta, která omezuje maximální množství dat, která je možné zachovat na každou frontu nebo téma. Podívejte se na další nejčastější dotazy.
Mám obor názvů Service Bus Standard. Proč se ve skupině prostředků $system zobrazují poplatky?
Služba Azure Service Bus nedávno upgradovala fakturační komponenty. Z důvodu této změny, pokud máte obor názvů Service Bus Standard, může se zobrazit řádkové položky pro prostředek /subscriptions/<azure_subscription_id>/resourceGroups/$system/providers/Microsoft.ServiceBus/namespaces/$system
ve skupině $system
prostředků .
Tyto poplatky představují základní poplatek za předplatné Azure, které zřídilo obor názvů Service Bus Standard.
Je důležité si uvědomit, že tyto poplatky nejsou nové, to znamená, že existovaly i v předchozím fakturačním modelu. Jedinou změnou je, že jsou teď uvedené v seznamu $system
. Provádí se kvůli omezením v novém fakturačním systému, který seskupuje poplatky na úrovni předplatného, nikoli vázané na konkrétní prostředek v rámci $system
ID prostředku.
Kvóty
Seznam omezení a kvót služby Service Bus najdete v přehledu kvót služby Service Bus.
Jak zpracovat zprávy o velikosti > 1 MB?
Služby zasílání zpráv service Bus (fronty a témata/odběry) umožňují aplikaci odesílat zprávy o velikosti až 256 kB (úroveň Standard) nebo 100 MB (úroveň Premium). Pokud pracujete se zprávami o velikosti větší než povolená velikost, použijte vzor kontroly deklarací identity popsaný v tomto blogovém příspěvku.
Řešení problému
Proč po odstranění z jiného předplatného nemůžu vytvořit obor názvů?
Když odstraníte obor názvů z předplatného, počkejte 4 hodiny, než ho znovu vytvoříte se stejným názvem v jiném předplatném. V opačném případě se může zobrazit následující chybová zpráva: Namespace already exists
.
Jaké jsou některé výjimky vygenerované rozhraními API služby Azure Service Bus a jejich navrhovanými akcemi?
Co je sdílený přístupový podpis a které jazyky podporují generování podpisu?
Sdílené přístupové podpisy jsou ověřovací mechanismus založený na zabezpečených hashách SHA-256 nebo identifikátorech URI. Informace o tom, jak vygenerovat vlastní podpisy v Node.js, PHP, Javě, Pythonu a C#, najdete v článku Sdílené přístupové podpisy .
Správa předplatného a oboru názvů
Návody migrovat obor názvů do jiného předplatného Azure?
Obor názvů můžete přesunout z jednoho předplatného Azure do jiného pomocí webu Azure Portal nebo příkazů PowerShellu. Chcete-li operaci spustit, musí být obor názvů již aktivní. Uživatel, který spouští příkazy, musí být správcem zdrojového i cílového předplatného.
Portál
Pokud chcete pomocí webu Azure Portal migrovat obory názvů služby Service Bus do jiného předplatného, postupujte podle zde uvedených pokynů.
PowerShell –
Následující posloupnost příkazů PowerShellu přesune obor názvů z jednoho předplatného Azure do jiného. Pokud chcete tuto operaci spustit, musí být obor názvů již aktivní a uživatel, který spouští příkazy PowerShellu, musí být správcem zdrojového i cílového předplatného.
# 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
Je možné zakázat protokol TLS 1.0 nebo 1.1 v oborech názvů služby Service Bus?
Ano, protokol TLS 1.0 nebo 1.1 v oborech názvů služby Service Bus můžete zakázat nastavením minimální verze protokolu TLS. Další informace najdete v tématu Vynucení minimální požadované verze protokolu TLS (Transport Layer Security) pro požadavky na obor názvů služby Service Bus.
Další kroky
Další informace o službě Service Bus najdete v následujících článcích:
- Představujeme Azure Service Bus Premium (blogový příspěvek)
- Představujeme Azure Service Bus Premium (Channel9)
- Přehled služby Service Bus
- Začínáme s frontami služby Service Bus