RabbitMQ. Cuid 2. Malartáin a Thuiscint

Exchange — malartóir nó pointe malartaithe. Seoltar teachtaireachtaí chuige. Exchange dáileann teachtaireacht i scuaine amháin nó níos mó. sé cuireann sé teachtaireachtaí chuig scuaine bunaithe ar na naisc chruthaithe (bindings) idir é féin agus an scuaine.

Exchange Níl Próiseas Erlang. Ar chúiseanna inscálaithe exchange - is líne í seo (nasc le modúl le cód ina bhfuil an loighic ródaithe) sa bhunachar sonraí ionsuite mnesia. Ní dhéanfaidh 1 míle malartóir ach 1MB de chuimhne a ithe.

Tábla na nÁbhar

  • RabbitMQ. Part 1. Réamhrá. Erlang, AMQP agus RPC
  • RabbitMQ. Cuid 2. Malartáin a Thuiscint
  • RabbitMQ. Cuid 3. Scuainí agus Ceangail a Thuiscint
  • RabbitMQ. Cuid 4. A thuiscint cad is teachtaireachtaí agus frámaí ann
  • RabbitMQ. Cuid 5: Foilsitheoireachta Teachtaireachta agus Feidhmíocht Tomhaltais
  • RabbitMQ. Cuid 6. Athbhreithniú ar mhodúil na Cónaidhme agus na Sluasaid
  • RabbitMQ. Cuid 7. Sonraí maidir le Ceangal agus Chanel
  • RabbitMQ. Cuid 8. RabbitMQ in .NET
  • RabbitMQ. Cuid 9. Faireachán

Malartú Díreach

Direct exchange - a úsáidtear nuair is gá teachtaireacht a sheachadadh chuig scuainí ar leith. Foilsítear an teachtaireacht chuig an malartóir le sainiúil eochair ródaithe agus téann sé isteach i ngach scuainí atá ceangailte leis an malartóir seo le heochair ródaithe den chineál céanna. Teaghrán is ea an eochair ródaithe. Faightear meaitseáil ag baint úsáide as teaghráin a sheiceáil le haghaidh coibhéise.

Léiriú grafach ar shreabhadh na teachtaireachta:

RabbitMQ. Cuid 2. Malartáin a Thuiscint

В rabbitmq tá coincheap ann malartóir réamhshocraithe. Tá sé direct exchange Gan ainm. Má úsáidtear an malartóir réamhshocraithe, cuirfear an teachtaireacht chuig scuaine le hainm comhionann le eochair ródú teachtaireachta.

Malartú Ábhair

Topic exchange – comhchosúil direct exchange cuireann sé ar chumas ródú roghnach trí chomparáid a dhéanamh idir an eochair ródaithe. Ach, sa chás seo, tugtar an eochair de réir an teimpléid. Agus teimpléad á chruthú, bain úsáid as 0 nó níos mó focail (litreacha AZ и az agus uimhreacha 0-9), scartha le ponc, chomh maith le siombailí * и #.

  • * - is féidir a chur in ionad go díreach 1 an focal
  • # - is féidir a chur in ionad 0 nó níos mó focail

Léiriú grafach ar shreabhadh na teachtaireachta:

RabbitMQ. Cuid 2. Malartáin a Thuiscint

Ó leagan RabbitMQ 2.4.0 algartam ródú le haghaidh topic exchange thosaigh sé ag obair go dtí 145 huaire níos tapúla. Bhain siad é seo amach trí chur chuige a thabhairt isteach trie chur i bhfeidhm, a bhaineann le patrúin a léiriú mar struchtúr crann. Mar shampla teimpléid a.b.c, a.*.b.c, a.#.c и b.b.c déanfar an struchtúr seo a leanas a léiriú:

RabbitMQ. Cuid 2. Malartáin a Thuiscint

Déantar an cuardach le haghaidh patrún a mheaitseáil ag tosú ón bhfréamh agus ag dul ar aghaidh ó bhun go barr.

Gnéithe:

  • is féidir úsáid a bhaint as an malartóir seo rogha mhaith chun an feidhmchlár a fhorbairt amach anseo, mar is féidir teimpléid a shaincheapadh i gcónaí ionas go bhfoilsítear an teachtaireacht ar an mbealach céanna direct exchangefanout exchange
  • teimpléid a úsáideann * i bhfad níos gastaná teimpléid a úsáideann #.
  • topic exchange níos moille direct exchange

Malartú Fanout

Fanout exchange - seoltar gach teachtaireacht chuig gach scuaine fiú má shonraítear eochair ródaithe sa teachtaireacht.

Gnéithe:

  • RabbitMQ ní oibríonn sé le heochracha ródaithe agus teimpléid a bhfuil tionchar dearfach aige ar tháirgiúlacht. Is é seo an tapúla exchange;
  • caithfidh gach tomhaltóir a bheith in ann gach teachtaireacht a phróiseáil;

Léiriú grafach ar shreabhadh na teachtaireachta:

RabbitMQ. Cuid 2. Malartáin a Thuiscint

Malartú Ceanntásca

Headers exchange - cuireann sé teachtaireachtaí chuig scuainí gaolmhara bunaithe ar chomparáid idir péirí maoine (eochair, luach). headers ceangail agus airíonna teachtaireachta comhchosúla. headers a Dictionary<ключ, значение>.

Má chuireann tú eochair speisialta leis an bhfoclóir x-match le brí any, ansin cuirtear an teachtaireacht chun cinn má tá meaitseáil pháirteach de phéirí (eochair, luach). Tá an iompar seo cosúil leis an oibreoir or.

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

Eochair réamhshocraithe x-match ina bhfuil an luach all. Ciallaíonn sé seo go bhfuil an teachtaireacht ródaithe má mheaitseálann na péirí (eochair, luach) go díreach. Tá an iompar seo cosúil leis an oibreoir and.

Léiriú grafach ar shreabhadh na teachtaireachta:

RabbitMQ. Cuid 2. Malartáin a Thuiscint

Gnéithe:

  • solúbthacht bhreise
  • forchostais ríomhaireachta breise. Gach péire (eochair, luach) de tréith headers Ní mór iad a shórtáil de réir ainm eochrach roimh luachanna ródaithe na dteachtaireacht a ríomh. Níos moille ná cineálacha malairte eile.

Malartú Comhsheasmhach-Hashing

Tá an malartóir seo plugáil isteach и nach bhfuil tógtha i в RabbitMQ.

Consistent-hashing exchange (malartú le hashing comhsheasmhach) - a úsáidtear nuair a bhíonn roinnt scuainí ann atá ina bhfaighteoirí féideartha teachtaireachta, agus nuair is gá duit an t-ualach a chothromú eatarthu. Tarlaíonn nasc teachtaireachta leis an scuaine de réir meáchain (luach teaghrán coinníollach ó 0 - n).

Meáchan coibhéiseach na scuainí - léiríonn sé go bhfaighidh gach scuaine thart ar an méid céanna teachtaireachtaí (cuirfear gach teachtaireacht i scuaine amháin). Níl aon ráthaíocht iomlán ann maidir le dáileadh aonfhoirmeach teachtaireachtaí.

Léiriú grafach ar shreabhadh na teachtaireachta:

RabbitMQ. Cuid 2. Malartáin a Thuiscint

Hash ríomh bunaithe ar eochair ródaithe nó airí headers teachtaireachtaí. Dá mbeadh eochracha ródaithe éagsúla nó headers, ansin beidh an dáileadh tarlú de réir meáchain. Seachas sin, úsáidfear an eochair ródú nó headers.

Ba cheart go gcabhródh sé sin nuair a bhíonn gá le méadú níos airde ar thréchur na dtomhaltóirí ná mar a bheadh ​​réiteach agus go n-úsáideann tomhaltóirí iolracha scuaine amháin.

Malartóirí a chomhcheangal (E2E)

Is féidir iompar gach malartóra a chomhcheangal trí úsáid a bhaint as cumarsáid Malartú-go-Malartú (ní áirítear malartóirí le chéile sa tsonraíocht AMQP. Is síneadh é seo ar an bprótacal ón taobh RabbitMQ).

Léiriú grafach ar shreabhadh na teachtaireachta:

RabbitMQ. Cuid 2. Malartáin a Thuiscint

Ar chostas E2E is féidir linn an chumraíocht cheart Inscálaithe a aimsiú chun freastal ar na riachtanais reatha agus atá ag fás.

Cruthaigh Malartú

Tarlaíonn cruthú malartóra ag baint úsáide as sioncrónach RPC iarratas chuig an bhfreastalaí. Déantar an t-iarratas ag baint úsáide as an modh Exchange.Declarear a dtugtar le paraiméadair:

  • ainm malartóra
  • cineál malartóra
  • paraiméadair eile

Sampla cruthú exchange leis an gcabhair RabbitMQ.Cliant:

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

  • exchange - ainm an malartóra ba mhaith linn a chruthú. Caithfidh an t-ainm a bheith uathúil
  • type — cineál malartóra
  • durable - má tá sé suiteáilte trueansin exchange beidh buan. Déanfar é a stóráil ar dhiosca agus féadann sé maireachtáil ar atosú freastalaí / bróicéir. Má tá an luach falseansin exchange sealadach agus scriosfar é nuair a atosófar an freastalaí/bróicéir
  • autoDelete - a bhaint uathoibríoch. Exchange scriosfar iad nuair a scriosfar na scuainí go léir a bhaineann leis
  • arguments - argóintí roghnacha. Is minic a shonraíonn siad trí argóintí alternative exchange (malartóir malartach). Murar féidir le teachtaireacht taisteal ar feadh an bhunbhealaigh, is féidir í a sheoladh chuig malartóir malartach le bheith curtha ar chonair eile.

RabbitMQ. Cuid 2. Malartáin a Thuiscint

Más cruthú exchange b'fhéidir, ansin seolfaidh an freastalaí an cliant sioncrónach RPC fhreagairt Exchange.DeclareOk. Más cruthú Tá sé dodhéanta (Diúltaíodh don iarratas Exchange.Declare), ansin dúnfaidh an cainéal freastalaí ag baint úsáide as ordú asincrónach Channel.Close agus gheobhaidh an cliant eisceacht OibríochtIdirbhristeEisceacht, ina mbeidh an cód earráide agus a thuairisc.

Ní mór malartóir a chruthú roimh teachtaireachtaí a phostáil. Má fhoilsíonn tú teachtaireacht chuig malartóir éigin nach bhfuil ann - RabbitMQ bainfidh sé go ciúin é.

Malartú a chruthú trí GUI

Téigh go dtí an painéal admin RabbitMQ faoi ​​úsáideoir guest (ainm úsáideora: guest agus pasfhocal: guest). Tabhair faoi deara go bhfuil an t-úsáideoir guest ní féidir ceangal a dhéanamh ach ó localhost. Anois, a ligean ar dul go dtí an cluaisín Exchanges agus cliceáil ar Add a new exchange. Líon isteach na hairíonna:

RabbitMQ. Cuid 2. Malartáin a Thuiscint

Tá cur síos déanta ar an gcuid is mó de na hairíonna thuas. Anseo tugaimid faoi deara má leagaimid Internal, ansin ní féidir an malartú a úsáid ach amháin le haghaidh E2E. Producer ní bheidh siad in ann teachtaireachtaí a sheoladh chuig malartú den sórt sin.

Conclúid

Agus córas á fhorbairt, tá sé áisiúil cur síos a dhéanamh ar an topology ródú ag baint úsáide as graf. Ach sula dtosaíonn tú ag tógáil graf, is fiú béim a chur ar na cosáin le trácht ard, mar gheall ar is iadsan a éilíonn tréchur níos airde (feidhmíocht). Ansin, is féidir leat an trácht a rangú. Agus gan ach ansin tosú ag tógáil.

Más rud é sa ghraf tógtha tá sraith críochta eochracha ródú, ansin is fiú féachaint i dtreo roinnt fanout exchange, a bhfuil baint acu le 1:1 leis an eochair ródaithe. Cuimhnímid air sin fanout exchange is tapúla.

Má tá líon na bealaí claonadh chun Infinity, ansin ba chóir duit aird a thabhairt ar topic exchange nó, mura bhfuil an teimpléad ag teastáil, is féidir leat a roghnú direct exchnge, mar tá sé níos tapúla topic exchange.

Comhcheangail de éagsúla exchange cabhrú leat teacht ar an gceann ceart cumraíocht Inscálaithe, a chomhlíonann riachtanais an chórais reatha agus atá ag fás.

Líon exchange agus ba cheart go mbeadh na scuainí íosta i gcomparáid le líon na mbealaí.

Sa chéad alt eile cuirfimid tús le tuiscint níos mine ar scuainí agus ceangail.

tagairtí

Foinse: will.com

Add a comment