Co je Azure Service Bus?
Azure Service Bus je plně spravovaný podnikový zprostředkovatel zpráv s frontami zpráv a tématy publikování a odběru (v oboru názvů). Service Bus se používá k oddělení aplikací a služeb od sebe navzájem a poskytuje následující výhody:
- Práce na vyrovnávání zatížení mezi konkurenčními pracovníky
- Bezpečné směrování a přenos dat a řízení napříč hranicemi služeb a aplikací
- Koordinace transakční práce, která vyžaduje vysoký stupeň spolehlivosti
Poznámka
Porovnání služeb zasílání zpráv Azure najdete v tématu Volba mezi službami zasílání zpráv Azure – Event Grid, Event Hubsa Service Bus .
Přehled
Data se mezi různými aplikacemi a službami přenáší pomocí zpráv. Zpráva je kontejner dekorovaný metadaty a obsahuje data. Těmito daty může být jakýkoli druh informací, včetně strukturovaných dat kódovaných pomocí běžných formátů, jako jsou json, XML, Apache Avro nebo prostý text.
Mezi běžné scénáře zasílání zpráv patří:
Zasílání zpráv. Přenášet obchodní data, jako jsou prodejní nebo nákupní objednávky, deníky nebo přesuny zásob.
Oddělení aplikací. Vylepšete spolehlivost a škálovatelnost aplikací a služeb. Producent a spotřebitel nemusí být online ani snadno dostupný ve stejnou dobu. Zatížení je srovnána tak, aby špičky provozu službu nezocely.
Vyrovnávání zatížení. Umožňuje více konkurenčním spotřebitelům číst z fronty současně, z nichž každý bezpečně získá výhradní vlastnictví konkrétních zpráv.
Témata a odběry. Povolte 1:n vztahů mezi vydavatelia odběrateli, což umožňuje odběratelům vybrat konkrétní zprávy z publikovaného streamu zpráv.
Transakce. Umožňuje provádět několik operací, to vše v rozsahu atomické transakce. Například následující operace lze provést v oboru transakce.
- Získejte zprávu z jedné fronty.
- Výsledky zpracování můžete odeslat do jedné nebo více různých front.
- Přesuňte vstupní zprávu z původní fronty.
Výsledky se zobrazí pro podřízené uživatele pouze při úspěchu, včetně úspěšného vypořádání vstupní zprávy, což umožňuje sémantiku zpracování pouze jednou. Tento transakční model je robustním základem pro model kompenzační transakce ve větším kontextu řešení.
Relace zpráv. Implementujte koordinaci pracovních postupů a multiplexovaných přenosů ve velkém měřítku, které vyžadují striktní řazení zpráv nebo odložení zpráv.
Pokud znáte další zprostředkovatele zpráv, jako je Apache ActiveMQ, jsou Service Bus podobné těm, které znáte. Protože Service Bus platforma jako služba (PaaS), hlavní rozdíl spočívá v tom, že se nemusíte starat o následující akce. Azure se o tyto věci postará za vás.
- Obavy o selhání hardwaru
- Udržování opravených operačních systémů nebo produktů
- Umístění protokolů a správa místa na disku
- Zpracování záloh
- Při selhání do záložního počítače
Koncepty
Tato část popisuje základní koncepty Service Bus.
Fronty
Zprávy se odesílají do front a přijímají se z nich. Fronty ukládají zprávy, dokud není přijímající aplikace dostupná pro jejich příjem a zpracování.

Zprávy ve frontách jsou seřazené a mají při doručení časové razítko. Po přijetí zprostředkovatelem se zpráva trvale trvale nachází v trojnásobně redundantním úložišti, které je rozloženo mezi zóny dostupnosti, pokud je obor názvů povolený pro zónu. Service Bus zprávy v paměti ani nestálém úložišti po jejich ohlášení klientovi jako akceptovány.
Zprávy se doručí v režimu vyžádání, zprávy se doručí jenom na vyžádání. Na rozdíl od modelu zaneprázdněného dotazování některých jiných cloudových front může být operace vyžádané instalace dlouhodobá a dokončená pouze po zobrazení zprávy.
Poznámka
Porovnání front Service Bus s frontami Storage najdete v tématu Storage fronty a fronty Service Bus– porovnání a kontrast.
Témata
K odesílání a přijímání zpráv můžete také použít témata. Zatímco fronta se často používá pro komunikaci point-to-point, témata jsou užitečná ve scénářích publikování nebo přihlášení k odběru.

Témata mohou mít více nezávislých odběrů, která se připojí k tématu a jinak fungují úplně stejně jako fronty na straně příjemce. Odběratel tématu může přijímat kopie všech zpráv zaslaných do daného tématu. Předplatná jsou pojmenované entity. Předplatná jsou ve výchozím nastavení odolná, ale je možné je nakonfigurovat tak, aby jejich platnost vypršela a pak se automaticky odstranila. Prostřednictvím rozhraní API JMS (Java Message Service) Service Bus Premium také vytvářet nestálá předplatná, která existují po dobu trvání připojení.
Můžete definovat pravidla pro předplatné. Pravidlo odběru obsahuje filtr definující podmínku pro zkopírování zprávy do odběru a volitelnou akci, která může upravit metadata zprávy. Další informace najdete v tématu Filtry témat a akce. Tato funkce je užitečná v následujících scénářích:
- Nechcete, aby odběr dostávat všechny zprávy odeslané do tématu.
- Chcete označit zprávy s dodatečnými metadaty, když procházejí předplatným.
Poznámka
Další informace o frontách a tématech najdete v tématu Service Bus front, témata odběrů .
Obory názvů
Obor názvů je kontejner pro všechny součásti zasílání zpráv (fronty a témata). Více front a témat může být v jednom oboru názvů a obory názvů často slouží jako kontejnery aplikací.
Obor názvů lze porovnat se serverem v terminologii jiných zprostředkovatelů, ale koncepty nejsou přímo ekvivalentní. Obor Service Bus je váš vlastní řez kapacity velkého clusteru, který se sčítá z desítek virtuálních počítačů, které jsou všechny aktivní. Volitelně může zahrnovat tři zóny dostupnosti Azure. Získáte tak všechny výhody dostupnosti a odolnosti při spouštění zprostředkovatele zpráv v obrovském měřítku. Nemusíte si dělat starosti se základními složitostmi. Service Bus je zasílání zpráv bez serveru.
Pokročilé funkce
Service Bus má také pokročilé funkce, které vám umožní řešit složitější problémy týkající se zasílání zpráv. Následující části popisují tyto klíčové funkce:
Relace zpráv
Pokud chcete ve službě Service Bus zajistit použití metody FIFO (first in first out), použijte relace. Relace zpráv umožňují společné a seřazené zpracování sekvencí souvisejících zpráv bez vazby.
Automatické přeposílání
Funkce automatického přeposílání umožňuje zřetězit frontu nebo odběr do jiné fronty nebo tématu, které jsou součástí stejného oboru názvů. Pokud je automatické přeposílání povoleno, Service Bus automaticky odebere zprávy, které jsou umístěné v první frontě nebo odběru (zdroj) a vloží je do druhé fronty nebo tématu (cíl).
Ukládání nedoručených zpráv
Service Bus podporuje frontu nedoručených zpráv (DLQ) k ukládání zpráv, které nemohou být doručeny jakémukoli příjemci, nebo zpráv, které nejdou zpracovat. Zprávy pak můžete z DLQ odebrat a prozkoumat je.
Naplánované doručení
Zprávy můžete odeslat do fronty nebo tématu pro zpožděné zpracování. Pokud například chcete naplánovat, aby byla úloha dostupná pro zpracování systémem v určitou dobu.
Odložení zpráv
Když klient fronty nebo odběru obdrží zprávu, kterou je ochotná zpracovat, ale pro kterou momentálně není možné zpracování z důvodu zvláštních okolností v rámci aplikace, může entita odložit načtení zprávy na pozdější bod. Zpráva zůstane ve frontě nebo odběru, ale je odstavná.
Dávkování
Dávkování na straně klienta umožňuje, aby klient fronty nebo tématu zpozdil odeslání zprávy po určené časové období. Pokud klient během tohoto časového období odešle více zpráv, přenese je v jedné dávce.
Transakce
Skupiny transakcí seskupují dvě nebo více operací do rozsahu provádění. Service Bus podporuje operace seskupení u jedné entity zasílání zpráv (fronty, tématu, odběru) v rámci oboru transakce.
Filtrování a akce
Odběratelé mohou definovat zprávy, které chtějí z tématu přijímat. Tyto zprávy se určují ve formě jednoho nebo více pojmenovaných pravidel odběru. Pro každou odpovídající podmínku pravidla odběr vytvoří kopii zprávy, která může pro každé odpovídající pravidlo obsahovat jiné poznámky.
Automatické odstranění v případě nečinnosti
Automatické odstranění v případě nečinnosti umožňuje zadat interval nečinnosti, po jehož uplynutí se fronta automaticky odstraní. Minimální doba trvání je 5 minut.
Vyhledávání duplicit
Pokud dojde k chybě, která způsobí, že klient bude mít pochybnosti o výsledku operace odeslání, vyhledávání duplicit odstraní pochybnosti z těchto situací tím, že odesílateli umožní odeslat stejnou zprávu znovu a fronta nebo téma zahodí všechny duplicitní kopie.
Sdílený přístupový podpis (SAS), řízení přístupu na základě role a spravované identity
Service Bus podporuje protokoly zabezpečení, jako jsou sdílené přístupové podpisy (SAS), řízení přístupu na základě role (RBAC) a spravované identity pro prostředky Azure.
Geografické zotavení po havárii
Pokud v oblastech nebo datových centrech Azure dojde k výpadku, geografické zotavení po havárii umožní, aby zpracování dat pokračovalo v jiné oblasti nebo datovém centru.
Zabezpečení
Service Bus podporuje protokoly ROZŠÍŘENÝ PROTOKOL ŘÍZENÍ FRONT ZPRÁV (AMQP) (AMQP) 1.0 a HTTP/REST.
Poznámka
Další informace o těchto funkcích najdete v tématu Pokročilé funkce Azure Service Bus.
Dodržování standardů a protokolů
Primární přenosový protokol pro Service Bus je AMQP (Advanced Messaging Queueing Protocol) 1.0, otevřený standard ISO/IEC. Umožňuje zákazníkům psát aplikace, které pracují s Service Bus a místními zprostředkovateli, jako je ActiveMQ nebo RabbitMQ. Průvodce protokolem AMQP poskytuje podrobné informace pro případ, že chcete takovou abstrakci vytvořit.
Service Bus Premium je plně kompatibilní s rozhraním JAVA/Jakarta EE Java Message Service (JMS) 2.0 API. A Service Bus Standard podporuje podmnožinu JMS 1.1 zaměřenou na fronty. JMS je běžná abstrakce pro zprostředkovatele zpráv a integruje se s mnoha aplikacemi a rozhraními, včetně oblíbené architektury Spring. Pokud chcete přejít z jiných zprostředkovatelů na Azure Service Bus, stačí znovu vytvořit topologii front a témat a změnit závislosti a konfiguraci zprostředkovatele klienta. Příklad najdete v průvodci migrací ActiveMQ.
Klientské knihovny
Plně podporované Service Bus klientské knihovny jsou k dispozici prostřednictvím sady Azure SDK.
- Azure Service Bus pro .NET
- Knihovny Service Bus Azure pro Javu
- Poskytovatel Service Bus Azure pro Java JMS 2.0
- Moduly Azure Service Bus pro JavaScript a TypeScript
- Knihovny Service Bus Azure pro Python
Primárním protokolem služby Azure Service Bus je protokol AMQP 1.0 a je možné ho použít z libovolného klienta protokolu kompatibilního s PROTOKOLem AMQP 1.0. Několik open source klientů AMQP obsahuje ukázky, které explicitně demonstrují Service Bus interoperabilitu. V příručce k protokolu AMQP 1.0 najdete informace o tom, jak používat funkce Service Bus s klienty AMQP 1.0 přímo.
| Jazyk | Knihovna |
|---|---|
| Java | Apache Qpid Proton-J |
| C/C++ | Azure UAMQP C, Apache Qpid Proton-C |
| Python | Azure uAMQP pro Python, Apache Qpid Proton Python |
| PHP | Azure uAMQP pro PHP |
| Ruby | Apache Qpid Proton Ruby |
| Go | Azure přejít na AMQP, Apache Qpid Proton přejít |
| C#/F #/VB | AMQP .NET Lite, Apache NMS AMQP |
| JavaScript/uzel | Rhea |
Integrace
Service Bus se plně integruje s mnoha službami Microsoft a Azure, například:
Další kroky
Pokud chcete začít používat zasílání zpráv služby Service Bus, podívejte se na následující články: