Azure Service Bus - Veelgestelde vragen (FAQ)

In dit artikel worden enkele veelgestelde vragen over Microsoft Azure Service Bus besproken. U kunt ook de veelgestelde vragen over Azure-ondersteuning raadplegen voor algemene informatie over prijzen en ondersteuning voor Azure.

Algemene vragen over Azure Service Bus

Wat is Azure Service Bus?

Azure Service Bus is een asynchroon berichtencloudplatform waarmee u gegevens kunt verzenden tussen losgekoppelde systemen. Microsoft biedt deze functie als een service, wat betekent dat u uw eigen hardware niet hoeft te hosten om deze te gebruiken.

Wat is een Service Bus-naamruimte?

Een naamruimte biedt een bereikcontainer voor het adresseren van Service Bus-resources in uw toepassing. Het maken van een naamruimte is nodig om Service Bus te gebruiken en is een van de eerste stappen om aan de slag te gaan.

Wat is een Azure Service Bus wachtrij?

Een Service Bus-wachtrij is een entiteit waarin berichten worden opgeslagen. Wachtrijen zijn handig wanneer u meerdere toepassingen of meerdere onderdelen van een gedistribueerde toepassing hebt die met elkaar moeten communiceren. De wachtrij is vergelijkbaar met een distributiecentrum omdat er meerdere producten (berichten) worden ontvangen en vervolgens vanaf die locatie worden verzonden.

Wat zijn Azure Service Bus onderwerpen en abonnementen?

Een onderwerp kan worden gevisualiseerd als een wachtrij en wanneer u meerdere abonnementen gebruikt, wordt het een uitgebreider berichtenmodel; in feite een een-op-veel-communicatietool. Met dit model voor publiceren/abonneren (of pub/sub) kan een toepassing die een bericht verzendt naar een onderwerp met meerdere abonnementen, dat bericht ontvangen door meerdere toepassingen.

Wat is een gepartitioneerde entiteit?

Een conventionele wachtrij of onderwerp wordt verwerkt door één berichtenbroker en opgeslagen in één berichtenarchief. Een gepartitioneerde wachtrij of onderwerp wordt verwerkt door meerdere berichtbrokers en opgeslagen in meerdere berichtenarchieven. Deze functie betekent dat de algehele doorvoer van een gepartitioneerde wachtrij of onderwerp niet langer wordt beperkt door de prestaties van één berichtenbroker of berichtenarchief. Een tijdelijke storing in een berichtenarchief zorgt er ook niet voor dat een gepartitioneerde wachtrij of onderwerp niet beschikbaar is.

Ordenen is niet gegarandeerd bij het gebruik van gepartitioneerde entiteiten. In het geval dat een partitie niet beschikbaar is, kunt u nog steeds berichten verzenden en ontvangen van de andere partities.

Waar slaat Azure Service Bus gegevens op?

Azure Service Bus Standard-laag maakt gebruik van Azure SQL Database voor de back-endopslaglaag. Voor alle regio's behalve Brazilië - zuid en Azië - zuidoost wordt de back-up van de database gehost in een andere regio (meestal de gekoppelde Azure-regio). Voor de regio's Brazilië - zuid en Azië - zuidoost worden back-ups van databases opgeslagen in dezelfde regio om te voldoen aan de vereisten voor gegevenslocatie voor deze regio's.

Azure Service Bus Premium-laag slaat metagegevens en gegevens op in regio's die u selecteert. Wanneer geo-noodherstel is ingesteld voor een Azure Service Bus Premium-naamruimte, worden de metagegevens gekopieerd naar de secundaire regio die u selecteert.

Welke poorten moet ik openen op de firewall?

U kunt de volgende protocollen gebruiken met Azure Service Bus om berichten te verzenden en te ontvangen:

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

Zie de volgende tabel voor de uitgaande TCP-poorten die u moet openen om deze protocollen te gebruiken om te communiceren met Azure Service Bus:

Protocol Poorten Details
AMQP 5671, 5672 AMQP met TLS. Zie de HANDLEIDING voor HET AMQP-protocol
HTTPS 443 Deze poort wordt gebruikt voor de HTTP/REST API en voor AMQP-over-WebSockets

De HTTPS-poort is over het algemeen vereist voor uitgaande communicatie, ook wanneer AMQP wordt gebruikt via poort 5671, omdat verschillende beheerbewerkingen die worden uitgevoerd door de client-SDK's en het ophalen van tokens uit Azure Active Directory (indien gebruikt) via HTTPS worden uitgevoerd.

De officiële Azure SDK's gebruiken over het algemeen het AMQP-protocol voor het verzenden en ontvangen van berichten van Service Bus.

De protocoloptie AMQP-over-WebSockets wordt uitgevoerd via poort TCP 443, net als de HTTP/REST API, maar is verder functioneel identiek met gewone AMQP. Deze optie heeft een hogere initiële verbindingslatentie vanwege extra handshake roundtrips en iets meer overhead als compromis voor het delen van de HTTPS-poort. Als deze modus is geselecteerd, is TCP-poort 443 voldoende voor communicatie. Met de volgende opties kunt u de AMQP WebSockets-modus selecteren.

Taal Optie
.NET (Azure.Messaging.ServiceBus) Maak ServiceBusClient met behulp van een constructor die ServiceBusClientOptions als parameter gebruikt. Stel ServiceBusClientOptions.TransportType in op ServiceBusTransportType.AmqpWebSockets
.NET (Microsoft.Azure.ServiceBus) Gebruik bij het maken van clientobjecten constructors die TransportType, ServiceBusConnection of ServiceBusConnectionStringBuilder als parameters gebruiken.

Voor de constructie die als parameter wordt gebruikt transportType , stelt u de parameter in op TransportType.AmqpWebSockets.

Voor de constructor die als parameter wordt gebruikt ServiceBusConnection , stelt u ServiceBusConnection.TransportType in op TransportType.AmqpWebSockets.

Als u gebruikt ServiceBusConnectionStringBuilder, gebruikt u constructors die u een optie geven om de transportTypeop te geven.

Java (com.azure.messaging.servicebus) Wanneer u clients maakt, stelt u ServiceBusClientBuilder.transportType in op AmqpTransportType.AMQP.AMQP_WEB_SOCKETS
Java (com.microsoft.azure.servicebus) Stel bij het maken van clients transportType in com.microsoft.azure.servicebus.ClientSettings in op com.microsoft.azure.servicebus.primitives.TransportType.AMQP_WEB_SOCKETS
JavaScript Gebruik bij het maken van Service Bus-clientobjecten de webSocketOptions eigenschap in ServiceBusClientOptions.
Python Wanneer u Service Bus-clients maakt, stelt u ServiceBusClient.transport_type in op TransportType.AmqpOverWebSocket

Welke IP-adressen moet ik toevoegen aan de acceptatielijst?

Voer de volgende stappen uit om de juiste IP-adressen te vinden die u wilt toevoegen aan de acceptatielijst voor uw verbindingen:

  1. Voer de volgende opdracht uit vanaf een opdrachtprompt:

    nslookup <YourNamespaceName>.servicebus.windows.net
    
  2. Noteer het IP-adres dat wordt geretourneerd in Non-authoritative answer.

Als u de zoneredundantie voor uw naamruimte gebruikt, moet u een paar extra stappen uitvoeren:

  1. Eerst voert u nslookup uit op de naamruimte.

    nslookup <yournamespace>.servicebus.windows.net
    
  2. Noteer de naam in de sectie niet-gezaghebbend antwoord , die een van de volgende indelingen heeft:

    <name>-s1.cloudapp.net
    <name>-s2.cloudapp.net
    <name>-s3.cloudapp.net
    
  3. Voer nslookup uit voor elk exemplaar met achtervoegsels s1, s2 en s3 om de IP-adressen op te halen van alle drie de exemplaren die worden uitgevoerd in drie beschikbaarheidszones,

    Notitie

    Het IP-adres dat door de nslookup opdracht wordt geretourneerd, is geen statisch IP-adres. Deze blijft echter constant totdat de onderliggende implementatie wordt verwijderd of verplaatst naar een ander cluster.

Waar vind ik het IP-adres van de client die berichten verzendt/ontvangt van/naar een naamruimte?

We registreren niet de IP-adressen van clients die berichten verzenden of ontvangen van/naar uw naamruimte. Sleutels opnieuw genereren, zodat alle bestaande clients de instellingen voor op rollen gebaseerd toegangsbeheer (Azure RBAC) niet kunnen verifiëren en controleren om ervoor te zorgen dat alleen toegestane gebruikers of toepassingen toegang hebben tot de naamruimte.

Als u een Premium-naamruimte gebruikt, gebruikt u IP-filtering, service-eindpunten voor virtuele netwerken en privé-eindpunten om de toegang tot de naamruimte te beperken.

Aanbevolen procedures

Wat zijn enkele aanbevolen procedures voor Azure Service Bus?

Zie Best practices voor prestatieverbeteringen met Service Bus . In dit artikel wordt beschreven hoe u de prestaties kunt optimaliseren bij het uitwisselen van berichten.

Wat moet ik weten voordat ik entiteiten maak?

De volgende eigenschappen van een wachtrij en onderwerp zijn onveranderbaar. Houd rekening met deze beperking wanneer u uw entiteiten inricht, omdat deze eigenschappen niet kunnen worden gewijzigd zonder een nieuwe vervangende entiteit te maken.

  • Partitionering
  • Sessies
  • Detectie van duplicaten
  • Express-entiteit

Prijzen

In deze sectie vindt u antwoorden op enkele veelgestelde vragen over de prijsstructuur van Service Bus.

In het artikel Service Bus-prijzen en -facturering worden de factureringsmeters in Service Bus uitgelegd. Zie Service Bus-prijsinformatie voor specifieke informatie over Service Bus-prijsopties.

U kunt ook de Veelgestelde vragen over Azure-ondersteuning raadplegen voor algemene azure-prijsinformatie.

Hoe worden er kosten in rekening gebracht voor Service Bus?

Zie Service Bus pricing details (Service Bus-prijzen) voor volledige informatie over Service Bus-prijzen. Naast de vermelde prijzen worden er kosten in rekening gebracht voor de bijbehorende gegevensoverdrachten voor uitgaand verkeer buiten het datacenter waarin uw toepassing is ingericht.

Welk gebruik van Service Bus is onderhevig aan gegevensoverdracht? Wat is er niet?

Elke gegevensoverdracht binnen een bepaalde Azure-regio wordt gratis aangeboden, evenals elke binnenkomende gegevensoverdracht. Gegevensoverdracht buiten een regio is onderhevig aan uitgaande kosten, die hier te vinden zijn.

Brengt Service Bus kosten in rekening voor opslag?

Nee. Service Bus brengt geen kosten in rekening voor opslag. Er is echter een quotum dat de maximale hoeveelheid gegevens per wachtrij/onderwerp beperkt. Zie de volgende veelgestelde vragen.

Ik heb een Service Bus Standard-naamruimte. Waarom zie ik kosten onder resourcegroep '$system'?

Azure Service Bus de factureringsonderdelen onlangs bijgewerkt. Als u een Service Bus Standard-naamruimte hebt, ziet u vanwege deze wijziging mogelijk regelitems voor de resource '/subscriptions/<azure_subscription_id>/resourceGroups/$system/providers/Microsoft. ServiceBus/naamruimten/$system' onder resourcegroep '$system'.

Deze kosten vertegenwoordigen de basiskosten per Azure-abonnement dat een Service Bus Standard-naamruimte heeft ingericht.

Het is belangrijk om te weten dat deze kosten niet nieuw zijn, dat wil gezegd dat ze ook aanwezig waren in het vorige factureringsmodel. De enige wijziging is dat ze nu worden vermeld onder '$system'. Dit wordt gedaan vanwege beperkingen in het nieuwe factureringssysteem dat kosten op abonnementsniveau groepeert, niet gekoppeld aan een specifieke resource, onder de resource-id '$system'.

Quota

Zie overzicht van Service Bus-quota voor een lijst met Service Bus-limieten en -quota.

Hoe kan ik berichten afhandelen met een grootte van > 1 MB?

Met Service Bus-berichtenservices (wachtrijen en onderwerpen/abonnementen) kan een toepassing berichten verzenden met een grootte van maximaal 256 kB (Standard-laag) of 100 MB (Premium-laag). Als u te maken hebt met berichten die groter zijn dan de toegestane grootte, gebruikt u het claimcontrolepatroon dat in dit blogbericht wordt beschreven.

Problemen oplossen

Waarom kan ik geen naamruimte maken nadat ik deze uit een ander abonnement heb verwijderd?

Wanneer u een naamruimte verwijdert uit een abonnement, wacht u 4 uur voordat u deze opnieuw maakt met dezelfde naam in een ander abonnement. Anders wordt mogelijk het volgende foutbericht weergegeven: Namespace already exists.

Wat zijn enkele van de uitzonderingen die worden gegenereerd door Azure Service Bus API's en de voorgestelde acties?

Zie Overzicht van uitzonderingen voor een lijst met mogelijke Service Bus-uitzonderingen.

Wat is een Shared Access Signature en welke talen ondersteunen het genereren van een handtekening?

Shared Access Signatures is een verificatiemechanisme op basis van SHA-256 beveiligde hashes of URI's. Zie het artikel Shared Access Signatures (Shared Access Signatures ) voor informatie over het genereren van uw eigen handtekeningen in Node.js, PHP, Java, Python en C#.

Abonnements- en naamruimtebeheer

Hoe kan ik een naamruimte migreren naar een ander Azure-abonnement?

U kunt een naamruimte van het ene Azure-abonnement naar het andere verplaatsen met behulp van de Azure Portal- of PowerShell-opdrachten. Als u de bewerking wilt uitvoeren, moet de naamruimte al actief zijn. De gebruiker die de opdrachten uitvoert, moet een beheerder zijn voor zowel het bron- als het doelabonnement.

Portal

Als u de Azure Portal wilt gebruiken om Service Bus-naamruimten te migreren naar een ander abonnement, volgt u hier de aanwijzingen.

PowerShell

Met de volgende reeks PowerShell-opdrachten wordt een naamruimte van het ene Azure-abonnement naar het andere verplaatst. Als u deze bewerking wilt uitvoeren, moet de naamruimte al actief zijn en moet de gebruiker die de PowerShell-opdrachten uitvoert een beheerder zijn voor zowel het bron- als het doelabonnement.

# 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

Is het mogelijk om TLS 1.0 of 1.1 uit te schakelen in Service Bus-naamruimten?

Ja, u kunt TLS 1.0 of 1.1 op Service Bus-naamruimten uitschakelen door de minimale TLS-versie in te stellen. Zie Een minimaal vereiste versie van Tls (Transport Layer Security) afdwingen voor aanvragen naar een Service Bus-naamruimte voor meer informatie.

Volgende stappen

Zie de volgende artikelen voor meer informatie over Service Bus: