Service Bus och tillförlitlighet
Hantera meddelandeköer för företag fullständigt med meddelandeköer och publicera prenumerationsämnen som används i Azure Service Bus-. Den här tjänsten lagrar meddelanden i en mäklare (till exempel en kö) tills den mottagande parten är redo att ta emot meddelandena.
Här är några fördelar:
- Belastningsutjämning mellan konkurrerande arbetare.
- Routning och överföring av data och kontroll över tjänst- och programgränser på ett säkert sätt.
- Samordna transaktionsarbete som kräver hög tillförlitlighet.
Mer information om hur du använder Service Bus finns i Azure Service Bus Messaging-. Lär dig hur du konfigurerar meddelanden som ansluter program och tjänster i lokala miljöer och molnmiljöer.
Information om hur Service Bus bidrar till en tillförlitlig arbetsbelastning finns i följande avsnitt:
- Asynkrona meddelandemönster och hög tillgänglighet
- Geografisk katastrofåterhämtning i Azure Service Bus
- Hantering av avbrott och katastrofer
- tillgänglighetszoner
Not
Tidigare var det nödvändigt att ange egenskapen zoneRedundant
till true
för att aktivera tillgänglighetszoner, men det här beteendet har ändrats för att aktivera tillgänglighetszoner som standard. Befintliga namnområden migreras till tillgänglighetszoner där det är möjligt och egenskapen zoneRedundant
håller på att bli inaktuell. Egenskapen zoneRedundant
kan fortfarande visas som false
, även när tillgänglighetszoner har aktiverats.
Följande avsnitt är specifika för Azure Service Bus och tillförlitlighet:
- Designöverväganden
- Checklista för konfiguration
- Rekommenderade konfigurationsalternativ
- Källartefakter
Designöverväganden
Maximera tillförlitligheten med ett serviceavtal för drifttid i Azure Service Bus. Korrekt konfigurerade program kan skicka eller ta emot meddelanden eller utföra andra åtgärder i en distribuerad kö eller ett ämne. Mer information finns i serviceavtalet för Service Bus.
Andra designöverväganden är:
Förutom dokumentationen på Service Bus Premium- och Standard-meddelandenivåerär följande funktioner endast tillgängliga på Premium Stock Keeping Unit (SKU):
- Dedikerade resurser.
- Integrering av virtuellt nätverk: Begränsar de nätverk som kan ansluta till Service Bus-instansen. Kräver att tjänstslutpunkter aktiveras i undernätet. Det finns betrodda Microsoft-tjänster som inte stöds när du implementerar virtuella nätverk (till exempel integrering med Event Grid). Mer information finns i Tillåt åtkomst till Azure Service Bus-namnområdet från specifika virtuella nätverk.
- Privata slutpunkter.
-
IP-filtrering/brandvägg: Begränsa anslutningar till endast definierade
IPv4
adresser ellerIPv4
adressintervall. - Event Grid-integrering: Tillgängliga händelsetyper.
- Skala meddelandeenheter.
- Geo-Disaster Recovery (kopplat namnområde).
- geo-replikering (fullständig datareplikering mellan regioner).
- CMK (Kundhanterad nyckel): Azure Service Bus krypterar vilande data och dekrypterar dem automatiskt när de används, men kunderna kan också ta med sin egen kundhanterade nyckel.
När du distribuerar Service Bus med geo-haveriberedskap och i tillgänglighetszoner ökar servicenivååtgärden (SLO) dramatiskt, men ändrar inte drifttidsavtalet.
Checklista
Har du konfigurerat Azure Service Bus med tillförlitlighet i åtanke?
- Utvärdera fördelarna med Azure Service Bus på Premium-nivån.
- Kontrollera att Service Bus-meddelandefel hanteras korrekt.
- Anslut till Service Bus med AMQP (Advanced Messaging Queue Protocol) och använd tjänstslutpunkter eller privata slutpunkter när det är möjligt.
- Granska bästa praxis för prestandaförbättringar med hjälp av Service Bus Messaging.
- Implementera geo-replikering på avsändar- och mottagarsidan för att skydda mot avbrott och katastrofer.
- Konfigurera geo-katastrof.
- Om du behöver verksamhetskritiska meddelanden med köer och ämnen rekommenderas Service Bus Premium med Geo-Disaster Recovery.
- Implementera hög tillgänglighet för Service Bus-namnområdet.
- Se till att relaterade meddelanden levereras i garanterad ordning.
- Utvärdera olika JMS-funktioner (Java Messaging Service) via JMS-API:et.
- Använd .NET Nuget-paket för att kommunicera med Service Bus-meddelandeentiteter.
- Implementera motståndskraft för tillfällig felhantering när du skickar eller tar emot meddelanden.
- Implementera automatisk skalning av meddelandeenheter.
Konfigurationsrekommendationer
Överväg följande rekommendationer för att optimera tillförlitligheten när du konfigurerar Azure Service Bus:
Rekommendation | Beskrivning |
---|---|
Utvärdera fördelarna med Azure Service Bus på Premium-nivån. | Överväg att migrera till Premium-nivån för Service Bus för att dra nytta av plattformsstödd avbrottssäkring och haveriberedskap. |
Anslut till Service Bus med AMQP-protokollet och använd tjänstslutpunkter eller privata slutpunkter när det är möjligt. | Den här rekommendationen behåller trafiken på Azure-stamnätet.
Obs! Standardanslutningsprotokollet för Microsoft.Azure.ServiceBus och Windows.Azure.ServiceBus namnområden är AMQP . |
Implementera geo-replikering på avsändar- och mottagarsidan för att skydda mot avbrott och katastrofer. | Standardnivån stöder endast implementering av geo-redundans på avsändar- och mottagarsidan. Ett avbrott eller en katastrof i en Azure-region kan orsaka driftstopp för din lösning. |
Konfigurera Geo-Disaster. |
-
Aktiv/Aktiv - aktiv/passiv - parat namnrymd (aktiv/passiv) - Geo-Replication (aktiv/passiv med fullständig datareplikering) - Obs! Den sekundära regionen bör helst vara en azure-länkad region. |
Om du behöver verksamhetskritiska meddelanden med köer och ämnen rekommenderas Service Bus Premium med Geo-Disaster Recovery. | Valet av mönster beror på affärskraven och målet för återställningstid (RTO). |
Implementera hög tillgänglighet för Service Bus-namnområdet. | Premium-nivån stöder geografisk haveriberedskap och replikering på namnrymdsnivå. På den här nivån ger Premium-nivån hög tillgänglighet för återställning av metadata med hjälp av primära och sekundära haveriberedskapsnamnområden. |
Se till att relaterade meddelanden levereras i garanterad ordning. | Tänk på kravet på att ange en partitionsnyckel, sessions-ID eller meddelande-ID för varje meddelande för att säkerställa att relaterade meddelanden skickas till samma partition i meddelandeentiteten. |
Utvärdera olika JMS-funktioner via JMS-API:et. | Funktioner som är tillgängliga via JMS 2.0 API (och dess Software Development Kit (SDK)) är inte samma som de funktioner som är tillgängliga via det interna SDK:t. Service Bus-sessioner är till exempel inte tillgängliga i JMS. |
Implementera motståndskraft för tillfällig felhantering när du skickar eller tar emot meddelanden. | Det är viktigt att implementera lämplig övergående felhantering och felhantering för sändnings- och mottagningsoperationer för att upprätthålla dataflödet och förhindra meddelandeförlust. |
Implementera automatisk skalning av meddelandeenheterför att säkerställa att du har tillräckligt med resurser tillgängliga för dina arbetsbelastningar. |
Källartefakter
Om du vill identifiera Premium Service Bus-instanser som inte använder privata slutpunkter använder du följande fråga:
Resources | where type == 'microsoft.servicebus/namespaces' | where sku.tier == 'Premium' and isempty(properties.privateEndpointConnections)
Om du vill identifiera Service Bus-instanser som inte finns på premiumnivån använder du följande fråga:
Resources | where type == 'microsoft.servicebus/namespaces' | where sku.tier != 'Premium'