Zjišťování front, témat a odběrů služby Service Bus

Dokončeno

Entity zasílání zpráv, které tvoří jádro funkcí zasílání zpráv ve službě Service Bus, jsou fronty, témata a odběry a pravidla/akce.

Fronty

Fronty nabízejí doručování zpráv metodou FIFO (First In First Out) pro jednoho nebo několik konkurenčních spotřebitelů. To znamená, že příjemci obvykle přijímají a zpracovávají zprávy v pořadí, v jakém byly přidány do fronty. A každá zpráva přijímá a zpracovává pouze jeden příjemce zpráv. Vzhledem k tomu, že zprávy jsou uloženy trvale ve frontě, producenti (odesílatelé) a příjemci (příjemci) nemusí zpracovávat zprávy souběžně.

Související výhodou je vyrovnávání zatížení, které umožňuje výrobcům a příjemcům posílat a přijímat zprávy různými rychlostmi. V mnoha aplikacích se zatížení systému v průběhu času liší. Doba zpracování potřebná pro každou jednotku práce je však obvykle konstantní. Meziprostředkující producenti zpráv a příjemci s frontou znamená, že spotřebová aplikace musí být schopná zpracovávat průměrné zatížení místo zatížení ve špičce.

Použití front k zprostředkování mezi producenty zpráv a příjemci poskytuje základní volné spojení mezi komponentami. Vzhledem k tomu, že producenti a spotřebitelé si navzájem neuvědomují, může být spotřebitel upgradován, aniž by to mělo na producenta žádný vliv.

Fronty můžete vytvářet pomocí webu Azure Portal, PowerShellu, rozhraní příkazového řádku nebo šablon Resource Manageru. Pak můžete odesílat a přijímat zprávy pomocí klientů napsaných v jazyce C#, Java, Python a JavaScript.

Režimy příjmu

Můžete zadat dva různé režimy, ve kterých Service Bus přijímá zprávy: příjem a odstranění nebo náhled zámku.

Příjem a odstranění

Když Service Bus v tomto režimu obdrží požadavek od příjemce, označí zprávu jako spotřebovanou a vrátí ji do aplikace příjemce. Tento režim je nejjednodušším modelem. Nejlépe funguje ve scénářích, ve kterých může aplikace tolerovat, že v případě selhání zprávu nezpracovala. Představte si například scénář, ve kterém příjemce vydá žádost o přijetí a před zpracováním se chybově ukončí. Protože Service Bus označí zprávu jako spotřebovanou, aplikace začne po restartování přijímat zprávy. Zmeškala zprávu, kterou spotřebovala před chybou.

Náhled zámku

V tomto režimu je operace přijetí dvoufázový proces, díky němuž lze podporovat aplikace, které nemohou tolerovat chybějící zprávy.

  1. Najde další zprávu, která se má spotřebovat, uzamkne ji, aby ji ostatní příjemci nemohli přijmout, a pak zprávu vrátí do aplikace.

  2. Jakmile aplikace dokončí zpracování zprávy, požádá službu Service Bus o dokončení druhé fáze procesu příjmu. Služba pak označí zprávu jako spotřebovanou.

Pokud aplikace nemůže zprávu z nějakého důvodu zpracovat, může požádat službu Service Bus o opuštění zprávy. Service Bus zprávu odemkne a zpřístupní ji znovu, buď stejným příjemcem, nebo jiným konkurenčním příjemcem. Za druhé je časový limit spojený se zámkem. Pokud aplikace nedokáže zprávu zpracovat před vypršením zámku, služba Service Bus ji odemkne a zpřístupní ji pro opětovné přijetí.

Témata a předplatná

Fronta umožňuje zpracování zprávy jedním příjemcem. Na rozdíl od front poskytují témata a odběry formu komunikace 1:N ve vzoru publikování a odběru. To je užitečné pro škálování na velký počet příjemců. Každá publikovaná zpráva je k dispozici každému odběru zaregistrovanému v tématu. Publisher odešle zprávu do tématu a jeden nebo více odběratelů obdrží kopii zprávy.

Předplatná můžou používat více filtrů k omezení zpráv, které chtějí přijímat. Vydavatelé odesílají zprávy do tématu stejným způsobem jako zprávy do fronty. Příjemci ale nedostávají zprávy přímo z tématu. Místo toho příjemci přijímají zprávy z odběrů tématu. Odběr tématu se podobá virtuální frontě, která přijímá kopie zpráv odesílaných do tématu. Příjemci dostanou zprávy z odběru stejně jako zprávy z fronty.

Funkce odesílání zpráv fronty se mapuje přímo na téma a její funkce příjmu zpráv se mapuje na odběr. Mimo jiné tato funkce znamená, že předplatná podporují stejné vzory popsané dříve v této části týkající se front: konkurenčního příjemce, dočasného oddělení, vyrovnávání zatížení a vyrovnávání zatížení.

Pravidla a akce

V mnoha scénářích musí být zprávy, které mají specifické charakteristiky, zpracovány různými způsoby. Chcete-li povolit toto zpracování, můžete nakonfigurovat odběry tak, aby našly zprávy s požadovanými vlastnostmi a pak provedly určité úpravy těchto vlastností. I když odběry služby Service Bus uvidí všechny zprávy odeslané do tématu, můžete zkopírovat pouze podmnožinu těchto zpráv do fronty virtuálního předplatného. Toto filtrování se provádí pomocí filtrů předplatného. Takové úpravy se nazývají akce filtru. Po vytvoření odběru můžete zadat výraz filtru, který pracuje s vlastnostmi zprávy. Vlastnosti mohou být systémové vlastnosti (například Popisek) i vlastní vlastnosti aplikace (například StoreName).) Výraz filtru SQL je v tomto případě volitelný. Bez výrazu filtru SQL se všechny akce filtru definované v předplatném provádějí na všech zprávách pro toto předplatné.