Länka Service Bus-entiteter med automatiskforwarding

Med funktionen Autoforwarding i Service Bus kan du länka en kö eller prenumeration till en annan kö eller ett annat ämne som ingår i samma namnområde. När autoforwarding är aktiverat tar Service Bus automatiskt bort meddelanden som placeras i den första kön eller prenumerationen (källa) och placerar dem i den andra kön eller det andra ämnet (målet). Det går fortfarande att skicka ett meddelande direkt till målentiteten.

Kommentar

Den grundläggande nivån för Service Bus har inte stöd för funktionen autoforwarding. Skillnader mellan nivåer finns i Service Bus-priser.

Målentiteten måste finnas när källentiteten skapas. Om målentiteten inte finns returnerar Service Bus ett undantag när du uppmanas att skapa källentiteten.

Scenarier

Skala ut ett enskilt ämne

Du kan använda autoforwarding för att skala ut ett enskilt ämne. Service Bus begränsar antalet prenumerationer i ett visst ämne till 2 000. Du kan hantera fler prenumerationer genom att skapa ämnen på andra nivån. Även om du inte är bunden av Service Bus-begränsningen för antalet prenumerationer kan du förbättra det övergripande dataflödet för ditt ämne genom att lägga till en andra nivå av ämnen.

Diagram över ett autoforwarding-scenario som visar ett meddelande som bearbetas via ett orderämne som kan förgrenas till något av tre orderämnen på andra nivån.

Frikoppla meddelandeavsändare från mottagare

Du kan också använda autoforwarding för att frikoppla meddelandeavsändare från mottagare. Tänk dig till exempel ett ERP-system (Enterprise Resource Planning) som består av tre moduler: orderbearbetning, lagerhantering och hantering av kundrelationer. Var och en av dessa moduler genererar meddelanden som anges i ett motsvarande ämne. Alice och Bob är säljare som är intresserade av alla meddelanden som är relaterade till deras kunder. För att ta emot dessa meddelanden skapar Alice och Bob var och en en personlig kö och en prenumeration på vart och ett av ERP-ämnena som automatiskt vidarebefordrar alla meddelanden till kön.

Diagram över ett autoforwarding-scenario som visar tre bearbetningsmoduler som skickar meddelanden via tre motsvarande ämnen till två separata köer.

Om Alice åker på semester fylls hennes personliga kö i stället för ERP-ämnet upp. I det här scenariot, eftersom en säljare inte har tagit emot några meddelanden, når inget av ERP-ämnena någonsin kvoten.

Kommentar

När autoforwarding konfigureras anges värdet för AutoDeleteOnIdle på källentiteten automatiskt till det maximala värdet för datatypen.

  • På källsidan fungerar automatiskforwarding som en mottagningsåtgärd, så källan som har automatiskforwarding aktiverad är aldrig riktigt "inaktiv" och därför tas den inte bort automatiskt.
  • Autoforwarding gör inga ändringar i målentiteten. Om AutoDeleteOnIdle är aktiverat på målentiteten tas entiteten bort automatiskt om den är inaktiv för det angivna inaktiva intervallet. Vi rekommenderar att du inte aktiverar AutoDeleteOnIdle på målentiteten eftersom källentiteten kontinuerligt ser undantag när den försöker vidarebefordra meddelanden som mål om målentiteten tas bort.

Överväganden för automatiskforwarding

  • Service Bus tillåter inte att du skapar en meddelandemottagare på en källentitet med autoforwarding aktiverat.
  • Om målentiteten ackumulerar för många meddelanden och överskrider kvoten, eller om målentiteten är inaktiverad, lägger källentiteten till meddelandena i kön med obeställbara meddelanden tills det finns utrymme i målet (eller om entiteten återaktiveras). Dessa meddelanden fortsätter att finnas i kön med obeställbara meddelanden, så du måste uttryckligen ta emot och bearbeta dem från kön med obeställbara meddelanden.
  • När du kopplar samman enskilda ämnen för att få ett sammansatt ämne med många prenumerationer rekommenderar vi att du har ett måttligt antal prenumerationer på den första nivån och många prenumerationer på andra nivån. Ett ämne på första nivån med 20 prenumerationer, som var och en är kopplad till ett ämne på andra nivån med 200 prenumerationer, möjliggör till exempel högre dataflöde än ett ämne på första nivån med 200 prenumerationer, var och en länkad till ett ämne på andra nivån med 20 prenumerationer.
  • Service Bus fakturerar en åtgärd för varje vidarebefordrat meddelande. Om du till exempel skickar ett meddelande till ett ämne med 20 prenumerationer debiteras var och en av dem för automatisk avskogning av meddelanden till en annan kö eller ett annat ämne som 21 åtgärder om alla prenumerationer på första nivån får en kopia av meddelandet.
  • Om du vill skapa en prenumeration som är länkad till en annan kö eller ett annat ämne måste prenumerationens skapare ha hantera-behörigheter för både källan och målentiteten. För att skicka meddelanden till källavsnittet krävs endast Skicka behörigheter för källavsnittet.
  • Skapa inte en kedja som överskrider fyra hopp. Meddelanden som överskrider fyra hopp är obeställbara. Hoppantalet för ett meddelande ökas när ett meddelande automatisktforwardas från en kö eller ett ämne till en annan kö eller ett annat ämne. Hoppantalet för ett meddelande kan också ökas i scenariot skicka via där ett meddelande skickas via en överföringskö.
  • Automatiskforwarding stöds inte för sessionsaktiverade köer eller prenumerationer.
  • Källkön försöker vidarebefordra meddelanden till målentiteten i samma ordning som den togs emot, men målet kan vara ett ämne som inte stöder beställning. Om antingen käll- eller målentiteten är en partitionerad entitet garanteras inte ordningen.

Nästa steg

Information om hur du aktiverar eller inaktiverar automatisk vidarebefordran på olika sätt (Azure-portalen, PowerShell, CLI, Azure Resource Management-mall osv.) finns i Aktivera automatisk vidarebefordran för köer och prenumerationer.