Redigera

Dela via


Använda en meddelandekö och händelser för att integrera företagssystem

Azure Event Grid
Azure Service Bus

Den här arkitekturen baseras på den grundläggande arkitekturen för företagsintegrering men innehåller hur du integrerar backend-system för företag. Den här arkitekturen använder meddelandeköer och händelser för att frikoppla tjänster för bättre skalbarhet och tillförlitlighet. Se till att du är bekant med designen och komponenterna i den grundläggande integrationsarkitekturen. Dessa element ger grundläggande information om kärnkomponenterna i den här arkitekturen.

Arkitektur

De backend-system som den här designen refererar till innehåller SaaS-system (programvara som en tjänst), Azure-tjänster, meddelandebaserade tjänster och befintliga webbtjänster i företaget.

Diagram som visar en referensarkitektur för företagsintegrering som använder köer och händelser.

Ladda ned en Visio-fil med den här arkitekturen.

Information om scenario

Den föregående arkitekturen bygger på den enklare grundläggande företagsintegreringsarkitekturen som använder Azure Logic Apps för att samordna arbetsflöden direkt med serverdelssystem och använder Azure API Management för att skapa kataloger med API:er.

Den här versionen av arkitekturen lägger till två komponenter som gör systemet mer tillförlitligt och skalbart:

Den här arkitekturen använder asynkron kommunikation via en meddelandekö i stället för att göra direkta, synkrona anrop till serverdelstjänster. Asynkron kommunikation ger följande fördelar:

  • Använder mönstret Köbaserad belastningsutjämning för att hantera bursts i arbetsbelastningar via belastningsutjämning

  • Använder mönstret Publisher-Subscriber så att du kan skicka meddelanden till flera konsumenter

  • Spårar förloppet för långvariga arbetsflöden på ett tillförlitligt sätt, även när de omfattar flera steg eller flera program

  • Hjälper till att frikoppla program

  • Integrerar med befintliga meddelandebaserade system

  • Ger möjlighet att köa meddelanden när ett serverdelssystem inte är tillgängligt

Använd Event Grid så att olika komponenter i systemet kan reagera på händelser när de inträffar, i stället för att förlita sig på avsökningar eller schemalagda uppgifter. På samma sätt som i en meddelandekö och ämnen hjälper Event Grid till att frikoppla program och tjänster. Om ett program eller en tjänst publicerar händelser meddelas alla intresserade prenumeranter. Du kan lägga till nya prenumeranter utan att uppdatera avsändaren.

Många Azure-tjänster stöder sändning av händelser till Event Grid. En logikapp kan till exempel lyssna efter en händelse när nya filer läggs till i ett bloblager. Det här mönstret skapar reaktiva arbetsflöden där uppladdning av en fil eller att placera ett meddelande i en kö startar en serie processer. Processerna kan köras parallellt eller i en specifik sekvens.

Rekommendationer

Överväg följande rekommendationer. Fler rekommendationer finns i Grundläggande arkitektur för företagsintegrering.

Service Bus

Service Bus har två leveransmodeller, pull-modellen och den proxied push-modellen :

  • Pull-modell: Mottagaren söker kontinuerligt efter nya meddelanden. Om du behöver hantera flera köer och avsökningstider kan avsökningen vara ineffektiv. Men den här modellen kan förenkla din arkitektur eftersom den tar bort extra komponenter och datahopp.

  • Proxied push-modell: Mottagaren prenumererar först på en viss händelsetyp i ett Event Grid-ämne. När ett nytt meddelande är tillgängligt genererar och skickar Service Bus en händelse via Event Grid. Den här händelsen utlöser sedan mottagaren för att hämta nästa batch med meddelanden från Service Bus. Den här modellen gör det möjligt för system att ta emot meddelanden nästan i realtid, men utan att använda resurser för att kontinuerligt söka efter nya meddelanden. Den här arkitekturen använder extra komponenter som du måste distribuera, hantera och skydda.

När du skapar ett Standard Logic Apps-arbetsflöde som använder Service Bus-meddelanden rekommenderar vi att du använder de inbyggda anslutningsutlösarna för Service Bus. De inbyggda anslutningsutlösarna sammanfattar det mesta av pull-modellkonfigurationen utan att lägga till extra kostnad. Den här funktionen ger rätt balans mellan kostnad, ythantering och säkerhet eftersom anslutningsappen kontinuerligt loopar i Logic Apps-körningsmotorn. Mer information finns i Inbyggda anslutningsutlösare för Service Bus.

Använd PeekLock-läge för att komma åt en grupp meddelanden. När du använder PeekLock kan logikappen utföra steg för att verifiera varje meddelande innan du slutför eller avger meddelandet. Den här metoden förhindrar oavsiktlig meddelandeförlust.

Event Grid

När en Event Grid-utlösare utlöses innebär det att minst en händelse har inträffat. När en logikapp till exempel hämtar en Event Grid-utlösare för ett Service Bus-meddelande kan det finnas flera meddelanden att bearbeta.

Att tänka på

Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, som är en uppsättning vägledande grundsatser som kan användas för att förbättra kvaliteten på en arbetsbelastning. Mer information finns i Microsoft Azure Well-Architected Framework.

Tillförlitlighet

Tillförlitlighet säkerställer att ditt program kan uppfylla de åtaganden du gör gentemot dina kunder. Mer information finns i Checklista för designgranskning för tillförlitlighet.

Information om garanterad tillgänglighetsinformation för varje tjänst finns i Serviceavtal för onlinetjänster.

Säkerhet

Säkerhet ger garantier mot avsiktliga attacker och missbruk av dina värdefulla data och system. Mer information finns i Checklista för designgranskning för säkerhet.

För att skydda Service Bus kopplar du Microsoft Entra-autentisering med hanterade identiteter. Microsoft Entra ID-integrering för Service Bus-resurser ger rollbaserad åtkomstkontroll i Azure (RBAC) för detaljerad kontroll över en klients åtkomst till resurser. Du kan använda Azure RBAC för att bevilja behörigheter till ett säkerhetsobjekt, till exempel en användare, en grupp eller ett huvudnamn för programtjänsten. Programtjänstens huvudnamn i det här scenariot är en hanterad identitet.

Om du inte kan använda Microsoft Entra-ID använder du SAS-autentisering (signatur för delad åtkomst) för att ge användarna åtkomst och specifika rättigheter till Service Bus-resurser.

Om du behöver exponera en Service Bus-kö eller ett ämne som en HTTP-slutpunkt, till exempel för att publicera nya meddelanden, använder du API Management för att skydda kön genom att fronta slutpunkten. Du kan sedan använda certifikat eller OAuth-autentisering för att skydda slutpunkten. Det enklaste sättet att skydda en slutpunkt är att använda en logikapp som har en HTTP-begäran eller svarsutlösare som mellanhand.

Event Grid-tjänsten hjälper till att skydda händelseleveransen via en valideringskod. Om du använder Logic Apps för att använda händelsen är valideringen automatisk. Mer information finns i Säkerhet och autentisering för Event Grid.

Nätverkssäkerhet

Överväg nätverkssäkerhet i hela designen.

Kostnadsoptimering

Kostnadsoptimering handlar om att titta på sätt att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i Checklista för designgranskning för kostnadsoptimering.

Normalt beräknar du kostnader med hjälp av priskalkylatorn för Azure. Här följer några andra överväganden.

API Management

Du debiteras för alla API Management-instanser när de körs. Om du skalar upp och sedan inte längre behöver den prestandanivån skalar du ned eller konfigurerar automatisk skalning manuellt.

För lätta användningsarbetsbelastningar bör du överväga förbrukningsnivån, vilket är ett billigt, serverlöst alternativ. Förbrukningsnivån faktureras per API-anrop. Andra nivåer faktureras per timme.

Logic Apps

Logic Apps använder en serverlös modell. Fakturering beräknas baserat på antalet åtgärder och anslutningsanrop. Mer information finns i avsnittet med priser för Logic Apps.

Service Bus-köer, ämnen och prenumerationer

Service Bus-köer och -prenumerationer stöder både proxierade push- och pull-modeller för att leverera meddelanden. I pull-modellen mäts varje avsökningsbegäran som en åtgärd. Även om du anger en lång avsökning till standardvärdet 30 sekunder kan kostnaden vara hög. Om du inte behöver leverans av meddelanden i realtid bör du överväga att använda den proxierade push-modellen.

Service Bus-köer ingår i alla nivåer: Basic, Standard och Premium. Service Bus-ämnen och -prenumerationer är tillgängliga på Standard- och Premium-nivåer. Mer information finns i Service Bus-priser.

Event Grid

Event Grid använder en serverlös modell. Fakturering beräknas baserat på antalet åtgärder. Åtgärderna omfattar händelser som går till domäner eller ämnen, avancerade matchningar, leveransförsök och hanteringsanrop. Användningen av upp till 100 000 åtgärder är kostnadsfri.

Mer information finns i Priser för Event Grid och Kostnadsoptimering för väldefinierade ramverk.

Driftseffektivitet

Operational Excellence omfattar de driftsprocesser som distribuerar ett program och håller det igång i produktion. Mer information finns i Checklista för designgranskning för Operational Excellence.

Den grundläggande referensarkitekturen för företagsintegrering ger vägledning om DevOps-mönster, som överensstämmer med grundpelare för välkonstruerat ramverk för driftskvalitet .

Automatisera återställningsåtgärder så mycket som möjligt för att förbättra driftskvaliteten. Med automatisering i åtanke kan du kombinera Azure-loggövervakning med Azure Automation för att automatisera redundansväxlingen av dina Service Bus-resurser. Ett exempel på automatiseringslogik för att initiera en redundansväxling finns i Redundansflöde.

Prestandaeffektivitet

Prestandaeffektivitet är arbetsbelastningens förmåga att skala för att uppfylla användarnas krav på ett effektivt sätt. Mer information finns i Checklista för designgranskning för prestandaeffektivitet.

För att uppnå högre skalbarhet kan Service Bus Premium-nivån skala ut antalet meddelandeenheter. Mer information finns i Service Bus Premium- och Standard-meddelandenivåer och funktionen Autoskalning.

Fler Service Bus-rekommendationer finns i Metodtips för prestandaförbättringar med hjälp av Service Bus-meddelanden.

Nästa steg