Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 8397|Odpověď: 0

Úvod do tří výměnných režimů (fanout, přímý a tematický) v RabbitMQ

[Kopírovat odkaz]
Zveřejněno 29.03.2018 14:30:45 | | | |
Úvod:
V RabbitMQ jsou všechny zprávy odeslané producenty přijaty Exchange, která je pak přeposílá do fronty k uložení podle konkrétní politiky
RabbitMQ nabízí čtyři typy výměn: fanout, přímou, tematickou a hlavičkovou
Režim hlavičky se v praxi používá méně a tento článek porovnává pouze první tři režimy.

1. Přímá výměna


Jakékoliv zprávy odeslané Direct Exchange jsou přeposílány do fronty určené v RouteKey.

1. Obecně můžete použít Exchange, který je součástí rabbitMQ:" (název Exchange je prázdný řetězec, dále jen výchozí Exchange).

2. V tomto režimu není potřeba provádět žádné vazebné operace na Exchange

3. Pro zasílání zpráv je vyžadován "RouteKey", který lze jednoduše chápat jako název fronty, do které má být odeslána.

4. Pokud název fronty uvedený v RouteKey ve vhostu neexistuje, zpráva je zahozena.

2. Výměna rozhození


Jakékoliv zprávy zaslané na Fanout Exchange jsou přeposílány všem frontám navázaným na tuto burzu.

1. Lze ji chápat jako vzor směrovací tabulky

2. Tento režim nevyžaduje RouteKey

3. Tento režim vyžaduje předem svázat Exchange s frontou, jedna výměna může vázat více front a jedna fronta může být vázána na více výměn.

4. Pokud Exchange, který zprávu obdržel, není vázán na žádnou frontu, zpráva je zahozena.

3. Výměna témat


Jakékoliv zprávy zaslané do Topic Exchange jsou přeposílány všem frontám, které se zajímají o témata specifikovaná v RouteKey

1. Tento vzorec je složitější, jednoduše řečeno, každá fronta má své vlastní téma zájmu, všechny zprávy mají "název" (RouteKey) a Exchange přepošle zprávu všem frontám, které mohou fuguelně odpovídat RouteKey daného tématu.

2. Tento režim vyžaduje RouteKey, případně předem svázat Exchange and Queue.

3. Při vázání uveďte téma, na kterém frontě záleží, například "#.log.#", což naznačuje, že fronta se zajímá o všechny zprávy týkající se logů (zpráva s RouteKey "MQ.log.error" bude do fronty přeposlána).

4. "#" znamená 0 nebo několik klíčových slov a "" znamená jedno klíčové slovo. Například "log." Může odpovídat "log.warn", ale nemůže odpovídat "log.warn.timeout"; Ale "log.#" odpovídá výše uvedenému.

5. Podobně, pokud Exchange nenajde frontu odpovídající RouteKey, tuto zprávu zahodí.




Předchozí:Použijte XPosed k obejití silné validace SSL certifikátů Android
Další:.net/c# Připojení .net/c# RabbitMQ – odpojení a opětovné připojení
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com