Service Bus och tillförlitlighet
Hantera meddelandeutjämning för företag fullständigt med meddelandeköer och publicera/prenumerera-ämnen som används i Azure Service Bus. Den här tjänsten lagrar meddelanden i en asynkron meddelandekö (till exempel en kö) tills den konsumerande parten är redo att ta emot meddelandena.
Fördelarna innefattar:
- Belastningsutjämning för 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 en hög grad av tillförlitlighet.
Mer information om hur du använder Service Bus finns i Azure Service Bus Messaging. Lär dig hur du konfigurerar en meddelandetjänst som ansluter program och tjänster över lokala platser 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
- Azure Service Bus geo-haveriberedskap
- Hantera avbrott och katastrofer
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 Azure Service Bus drifttid. 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 Service Bus-serviceavtalet.
Andra designöverväganden är:
Förutom dokumentationen om meddelandenivåerna Service Bus Premium och Standard är följande funktioner endast tillgängliga på Premium Stock Keeping Unit (SKU):
- Dedikerade resurser.
- Integrering av virtuella nätverk: Begränsar de nätverk som kan ansluta till Service Bus-instansen. Kräver att tjänstslutpunkter är aktiverade 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 namnrymd från specifika virtuella nätverk.
- Privata slutpunkter.
-
IP-filtrering/brandvägg: Begränsa anslutningar till endast definierade
IPv4
adresser ellerIPv4
adressintervall. - Tillgänglighetszoner: Ger förbättrad tillgänglighet genom att sprida repliker mellan tillgänglighetszoner inom en region utan extra kostnad.
- Event Grid-integrering: Tillgängliga händelsetyper.
- Skala meddelandeenheter.
- Geo-haveriberedskap (kopplat namnområde).
- 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 serviceavtalet för drifttid.
Checklista
Har du konfigurerat Azure Service Bus med tillförlitlighet i åtanke?
- Utvärdera fördelarna med Azure Service Bus på Premium-nivån.
- Se till att Undantag för Service Bus-meddelanden hanteras korrekt.
- Anslut till Service Bus med Advanced Messaging Queue Protocol (AMQP) och använd tjänstslutpunkter eller privata slutpunkter när det är möjligt.
- Läs Metodtips för prestandaförbättringar med service bus-meddelanden.
- 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.
- Konfigurera zonredundans i Service Bus-namnområdet (endast tillgängligt med Premium-nivå).
- 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 Meddelandeentiteter i Service Bus.
- Implementera motståndskraft för hantering av tillfälliga fel när du skickar eller tar emot meddelanden.
- Implementera automatisk skalning av meddelandeenheter.
Konfigurationsrekommendationer
Tänk på följande rekommendationer för att optimera tillförlitligheten när du konfigurerar Azure Service Bus:
Rekommendation | Description |
---|---|
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 avbrott och katastrofskydd som stöds av plattformen. |
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 namnrymder ä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-katastrof. |
-
Aktiv/aktiv - Aktiv/passiv - Parkopplat namnområde (aktivt/passivt) - Obs! Den sekundära regionen bör helst vara en länkad Azure-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ål för återställningstid (RTO). |
Konfigurera zonredundans i Service Bus-namnområdet (endast tillgängligt med Premium-nivå). | Zonredundans innehåller tre kopior av meddelandearkivet. En zon allokeras som det primära meddelandearkivet och de andra zonerna allokeras som sekundärfiler. Om den primära zonen blir otillgänglig uppgraderas en sekundär till primär utan märkbar stilleståndstid. Tillgänglighetszoner är tillgängliga i en delmängd av Azure-regioner med nya regioner som läggs till regelbundet. |
Implementera hög tillgänglighet för Service Bus-namnområdet. | Premium-nivån stöder geo-haveriberedskap och replikering på namnområdesnivå. På den här nivån ger Premium-nivån hög tillgänglighet för haveriberedskap för metadata med hjälp av primära och sekundära namnområden för haveriberedskap. |
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 inbyggda SDK:t. Service Bus-sessioner är till exempel inte tillgängliga i JMS. |
Implementera motståndskraft för hantering av tillfälliga fel när du skickar eller tar emot meddelanden. | Det är viktigt att implementera lämplig tillfällig felhantering och felhantering för att skicka och ta emot åtgärder för att upprätthålla dataflödet och förhindra förlust av meddelanden. |
Implementera automatisk skalning av meddelandeenheter fö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å Premium-nivån använder du följande fråga:
Resources | where type == 'microsoft.servicebus/namespaces' | where sku.tier != 'Premium'
Om du vill identifiera Premium Service Bus-instanser som inte är zonredundanta använder du följande fråga:
Resources | where type == 'microsoft.servicebus/namespaces' | where sku.tier == 'Premium' and properties.zoneRedundant == 'false'