RabbitMQ. Vaega 2. Malamalama i Fetufaaiga

Exchange - suitulaga po'o le fa'afesuia'iga. E auina atu i ai savali. Exchange tufaina savali i se tasi pe sili atu laina. O ia auala savali i se laina faʻavae i luga o fesoʻotaʻiga na faia (bindings) i le va o ia ma le laina.

Exchange e leai faiga Erlang. Mo mafuaaga scalability exchange - ole laina lea (feso'ota'i i se module fa'atasi ai ma le fa'ailoga o lo'o i ai le fa'atonuga ole auala) ile fa'amaumauga tu'ufa'atasi. mnesia. 1 afe tagata faʻatau e faʻaaogaina naʻo le 1MB o le manatua.

Lisi o Mataupu

Fetufaaiga tuusao

Direct exchange - fa'aaoga pe a mana'omia momoli atu fe'au i laina fa'apitoa. O le feʻau e faʻasalalau i le tagata faʻatau ma se faʻamatalaga patino ki auala ma o'o atu i laina uma o lo'o feso'ota'i atu i lenei fa'afesuia'i ma se ki fa'aalaala tutusa. O le ki o le auala o se manoa. O lo'o maua fa'atusa fa'aoga siaki manoa mo le tutusa.

Fa'atusa fa'atusa o fe'au fe'au:

RabbitMQ. Vaega 2. Malamalama i Fetufaaiga

В rabbitmq e iai se manatu fa'afesuia'i fa'aletonu. lea direct exchange leai se igoa. Afai e fa'aogaina le fa'afesuia'i fa'aletonu, o le a ave le fe'au i se laina fa'atasi ma se igoa e tutusa ma ki e ave ai savali.

Fetufaaiga Autu

Topic exchange – tutusa direct exchange e mafai ai ona filifili auala e ala i le fa'atusatusaina o le ki fa'aalaala. Ae, i lenei tulaga, ua tuuina atu le ki e tusa ai ma le mamanu. Pe a fatuina se mamanu, faʻaaoga 0 pe sili atu upu (tusi AZ и az ma numera 0-9), tuueseese i se togi, faapea ma faailoga * и #.

  • * - e mafai ona suia i le tonu 1 le upu
  • # - e mafai ona suia e 0 pe sili atu upu

Fa'atusa fa'atusa o fe'au fe'au:

RabbitMQ. Vaega 2. Malamalama i Fetufaaiga

Talu mai le lomiga RabbitMQ 2.4.0 routing algorithm mo topic exchange amata galue seia 145 taimi vave. Na latou ausia lenei mea e ala i le faʻalauiloaina o se auala taumafai e faatino, lea e aofia ai le faʻatusaina o mamanu o se fausaga o laʻau. Mo se faʻataʻitaʻiga templates a.b.c, a.*.b.c, a.#.c и b.b.c o le a fa'atusalia e le fausaga nei:

RabbitMQ. Vaega 2. Malamalama i Fetufaaiga

O le su'esu'ega mo le fa'atusaina o se fa'ata'ita'iga o lo'o fa'atinoina e amata mai i le a'a ma fa'asolosolo mai luga i lalo.

Vaega:

  • e mafai ona avea le faaaogaina o lenei exchanger se filifiliga lelei mo le atina'eina o le talosaga i le lumana'i, ona fa'ata'ita'iga e mafai ona fa'avasegaina i taimi uma ina ia fa'asalalauina le fe'au i le auala lava e tasi direct exchange poʻo fanout exchange
  • mamanu e faʻaaogaina * sili atu le saoasaoanai lo mamanu e faʻaaogaina #.
  • topic exchange fa'agesegese direct exchange

Fetufaaiga Fanout

Fanout exchange - o fe'au uma e momoli atu i laina uma e tusa lava pe o loʻo faʻamaoti mai se ki faʻasologa i le feʻau.

Vaega:

  • RabbitMQ e le aoga i ki ta'avale ma mamanu lea e iai sona aafiaga lelei i le gaosiga. O le vave lea exchange;
  • e tatau i tagata fa'atau uma ona mafai ona fa'agasolo uma fe'au;

Fa'atusa fa'atusa o fe'au fe'au:

RabbitMQ. Vaega 2. Malamalama i Fetufaaiga

Ulutala Fetufaaiga

Headers exchange - fa'asalalau fe'au i laina fa'atasi e fa'atatau i fa'atusatusaga o (ki, tau) pa'aga meatotino headers fusifusia ma uiga tutusa o feʻau. headers a Dictionary<ключ, значение>.

Afai e te fa'aopoopoina se ki fa'apitoa i le lomifefiloi x-match ma le uiga any, ona fa'asalalauina lea o le fe'au pe a iai se vaega fa'atusa o (ki, tau) paga. O lenei amio e tutusa ma le tagata fa'afoe or.

var bindingArguments = new Dictinary<String, Object>();
bindingArguments.add("x-match", "any");

Ki masani x-match o lo'o i ai le tau all. O lona uiga e fa'asalalauina le fe'au pe a fetaui lelei le (ki, tau). O lenei amio e tutusa ma le tagata fa'afoe and.

Fa'atusa fa'atusa o fe'au fe'au:

RabbitMQ. Vaega 2. Malamalama i Fetufaaiga

Vaega:

  • fetuutuunai faaopoopo
  • fa'aopoopo i luga ole laiga. O paga uma (ki, taua) o se uiga headers e tatau ona fa'avasega ile igoa autu a'o le'i fa'asoaina tau fa'aalaala savali. Telegese nai lo isi ituaiga fesuiaiga.

Fetufaaiga Fetufaaiga-Hashing

O le exchanger lea sulu i totonu и le fausia i totonu в RabbitMQ.

Consistent-hashing exchange (fetufa'i ma le fa'asalaina faifaipea) - fa'aaoga pe a tele ni laina e ono maua ai se fe'au, ma pe a mana'omia le faapaleniina o le uta i le va. O le feso'ota'iga o se fe'au ma le fa'asologa e tupu i le mamafa (fa'atonuga tau manoa mai 0 - n).

E tutusa le mamafa o laina - o loʻo faʻaalia ai o le a maua e laina taʻitasi e tusa ma le aofaiga tutusa fe'au (o le a tu'u fe'au ta'itasi i le laina e tasi). E leai se fa'amaoniga atoatoa o le tufatufaina tutusa o fe'au.

Fa'atusa fa'atusa o fe'au fe'au:

RabbitMQ. Vaega 2. Malamalama i Fetufaaiga

Hash fa'atatau ile ki fa'aalaala po'o meatotino headers savali. Afai o fe'au fa'asalalau uma e eseese ki fa'aala po'o headers, ona tupu lea o le tufatufaga i le mamafa. A leai, o le a fa'aoga le ki fa'aala po'o headers.

E tatau ona fesoasoani pe a manaʻomia le faʻatupulaia o le aofaʻi o tagata faʻatau nai lo se fofo ma le tele o tagata faʻatau e faʻaaoga se laina e tasi.

Tu'ufa'atasiga fa'afesuia'i (E2E)

O amioga a tagata faʻatau uma e mafai ona tuʻufaʻatasia e faʻaaoga ai fesoʻotaʻiga Fetufaaiga-i-Fesuiaiga (o le tuʻufaʻatasia o fefaʻatauaʻiga e le o aofia i totonu o faʻamatalaga AMQP. O se faʻaopoopoga lea o le protocol mai le itu RabbitMQ).

Fa'atusa fa'atusa o fe'au fe'au:

RabbitMQ. Vaega 2. Malamalama i Fetufaaiga

I le tau o E2E e mafai ona tatou maua le faatulagaga scalable sa'o e fetaui ma manaoga o loʻo iai nei ma faʻatupulaia.

Fausia Fetufaaiga

O le fausiaina o se exchanger e tupu i le faʻaogaina o le synchronous RPC talosaga i le server. O le talosaga e faia i le auala Exchange.Declarevala'au fa'atasi:

  • igoa suisui
  • ituaiga suitulaga
  • isi vaega

Fa'ata'ita'iga o le foafoaga exchange faatasi ai ma le fesoasoani RabbitMQ.Client:

//...
channel.ExchangeDeclare(
    exchange: "my_exchange",
    type: "direct",
    durable: "false",
    autoDelete: "false",
    arguments: null
);
//...

  • exchange - le igoa o le exchanger matou te mananao e fai. E tatau ona tulaga ese le igoa
  • type - ituaiga o suitulaga
  • durable - pe a fa'apipi'i true, ona exchange o le a tumau. O le a teuina i luga o le tisiki ma e mafai ona ola i le toe amataina o le server/broker. Afai o le tau false, ona exchange e le tumau ma o le a tapeina pe a toe faʻafouina le server/broker
  • autoDelete - aveese otometi. Exchange o le a tapeina pe a tape uma laina e fesoʻotaʻi ma ia
  • arguments - finauga faitalia. O le tele o taimi, latou te fa'amaoti mai e ala i finauga alternative exchange (sui sui). Afai e le mafai ona fealua'i se fe'au i le ulua'i auala, e mafai ona lafo i se isi tagata fa'afesuia'i e fa'asalalauina i se isi ala.

RabbitMQ. Vaega 2. Malamalama i Fetufaaiga

Afai o le foafoaga exchange atonu, ona auina atu lea e le server i le kalani se synchronous RPC tali Exchange.DeclareOk. Afai o le foafoaga e le mafai (na teena le talosaga Exchange.Declare) o le a tapuni le alavai 'au'aunaga e fa'aaoga se fa'atonuga e le fa'atasi Channel.Close ma o le a maua e le kalani se tuusaunoaga OperationInterruptedException, lea o le a aofia ai le code sese ma lona faʻamatalaga.

E tatau ona faia se tagata fa'afesuia'i a'o le'i lafoina ni fe'au. Afai e te fa'asalalauina se fe'au i se tagata e le o iai - RabbitMQ o le a aveesea filemu.

Fausia Fetufaaiga e ala ile GUI

Alu i le admin panel RabbitMQ i lalo ole tagata fa'aoga guest (igoa fa'aoga: guest ma upu faataga: guest). Faamolemole ia matau o le tagata e faaaogāina guest e mafai ona faʻafesoʻotaʻi mai localhost. Se'i o tatou o i le tab Exchanges ma kiliki i luga Add a new exchange. Faatumu meatotino:

RabbitMQ. Vaega 2. Malamalama i Fetufaaiga

O le tele o meatotino ua faʻamatalaina i luga. O iinei tatou te matauina pe a tatou seti Internal, ona mafai lea ona faʻaaogaina le fesuiaiga mo E2E. Producer o le a le mafai ona auina atu savali i sea fesuiaiga.

iʻuga

Pe a atiaʻe se faiga, e faigofie ona faʻamatalaina le topology auala fa'aaogaina o se kalafi. Ae ae e te leʻi amata fausia se kalafi, e taua le faʻamalamalamaina o auala ma le maualuga o feoaiga, aua o i latou ia e fa’atonu maualuga le gaosiga (faatinoga). Le isi, e mafai ona e fa'avasegaina le ta'avale. Ona faatoa amata lea ona fausia.

Afai i totonu o le kalafi ua fausia e iai seti gata auala ki, ona aoga lea e va'ai i ni nai mea fanout exchange, lea e 1:1 e fesoʻotaʻi ma le ki taʻavale. Tatou te manatua lena mea fanout exchange le televave.

Afai o le numera o auala e masani lava i le le gata, ona tatau lea ona e gauai atu i ai topic exchange pe, afai e le manaʻomia le mamanu, e mafai ona e filifilia direct exchnge, ona e televave atu o ia topic exchange.

Tuufaatasiga o eseese exchange e tatau ona fesoasoani ia te oe e su'e le mea sa'o scalable configuration, lea e fa'amalieina uma mana'oga o lo'o iai nei ma le fa'atupulaia.

Numera o exchange ma o laina e tatau ona laʻititi pe a faʻatusatusa i le numera o auala.

I le isi tusiga o le a amata ona tatou malamalama i le Queues ma le Bindings i auiliiliga.

mau

puna: www.habr.com

Faaopoopo i ai se faamatalaga