Dela via


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 ) 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:

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):

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'
    

Nästa steg