RapetiMQ. Wāhanga 2. Te Maramatanga ki nga Whakawhitiwhiti

Exchange — te whakawhiti, te waahi whakawhiti ranei. Ka tukuna nga karere ki a ia. Exchange ka tohatoha karere i roto i te rarangi kotahi, neke atu ranei. Ko ia ara i nga karere ki tetahi rarangi i runga i nga hononga i hangaia (bindings) i waenganui i a ia me te tūtira.

Exchange ehara tukanga Erlang. Mo nga take tauineine exchange - he raina tenei (hono ki tetahi kōwae me te waehere kei reira te arorau ararere) kei roto i te papaa raraunga mnesia. 1 mano nga kaiwhakawhitiwhiti ka pau noa te 1MB o te mahara.

Ripanga o nga ihirangi

Whakawhiti Tika

Direct exchange - whakamahia ina hiahiatia tuku karere ki nga rarangi motuhake. Ka whakaputahia te karere ki te kaitahuri me te motuhake kī ararere a ka uru ki nga rarangi katoa e hono ana ki tenei whakawhiti me te taviri ararere rite. Ko te kī ararere he aho. Ka kitea te taurite ma te whakamahi te taki i nga aho mo te orite.

Whakaaturanga whakairoiro o te rerenga karere:

RapetiMQ. Wāhanga 2. Te Maramatanga ki nga Whakawhitiwhiti

В rabbitmq he ariā whakawhiti taunoa. Tenei direct exchange kahore he ingoa. Mena ka whakamahia te whakawhiti taunoa, ka tukuna te karere ki tetahi rarangi me te ingoa rite ki kī ararere karere.

Whakawhiti Kaupapa

Topic exchange – rite direct exchange ka taea te ararere whiriwhiri ma te whakatairite i te matua ararere. Engari, i roto i tenei take, ka hoatu te ki e ai ki te tauira. A, no te hanga tauira, whakamahia 0 kupu ake ranei (reta AZ и az me nga tau 0-9), ka wehea e te ira, me nga tohu * и #.

  • * - ka taea te whakakapi tika 1 te kupu
  • # - ka taea te whakakapi e 0 kupu atu ranei

Whakaaturanga whakairoiro o te rerenga karere:

RapetiMQ. Wāhanga 2. Te Maramatanga ki nga Whakawhitiwhiti

Mai i te putanga RabbitMQ 2.4.0 hātepe ararere mo topic exchange ka timata te mahi tae noa 145 wa tere. I tutuki i a raatau tenei ma te whakauru i tetahi huarahi whakamatau i te whakatinanatanga, ko te whakaatu i nga tauira hei hanga rakau. Hei tauira tauira a.b.c, a.*.b.c, a.#.c и b.b.c ka whakaatuhia e te hanganga e whai ake nei:

RapetiMQ. Wāhanga 2. Te Maramatanga ki nga Whakawhitiwhiti

Ko te rapu mo te whakataurite i tetahi tauira ka timata mai i te pakiaka ka haere mai i runga ki raro.

Āhuatanga:

  • te whakamahi o tenei exchanger taea riro he whiringa pai mo te whanaketanga o te tono a meake nei, no te mea Ka taea te whakarite i nga tauira i nga wa katoa kia rite ai te whakaputanga o te karere direct exchange ranei fanout exchange
  • tauira e whakamahi ana * tino tereatu i nga tauira e whakamahi ana #.
  • topic exchange pōturi ake direct exchange

Whakawhiti Fanout

Fanout exchange - ka tukuna nga karere katoa ki nga rarangi katoa ahakoa kua tohua he kī ararere i roto i te karere.

Āhuatanga:

  • RabbitMQ e kore e mahi me nga taviri ararere me nga tauira e whai hua pai ana ki te hua. Koinei te tere tere exchange;
  • me kaha nga kaihoko katoa ki te whakahaere i nga karere katoa;

Whakaaturanga whakairoiro o te rerenga karere:

RapetiMQ. Wāhanga 2. Te Maramatanga ki nga Whakawhitiwhiti

Whakawhiti Pane

Headers exchange - ara i nga karere ki nga rarangi hono i runga i te whakatairite o nga taonga takirua (matua, uara). headers nga here me nga ahuatanga karere rite. headers Ko te Dictionary<ключ, значение>.

Mena ka taapirihia e koe he taviri motuhake ki te papakupu x-match me te tikanga any, ka tukuna te karere mena he tukinga wahanga o nga takirua (matua, uara). He rite tenei whanonga ki te kaiwhakahaere or.

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

Kī taunoa x-match kei roto te uara all. Ko te tikanga ka tukuna te karere mena ka rite nga takirua (matua, uara). He rite tenei whanonga ki te kaiwhakahaere and.

Whakaaturanga whakairoiro o te rerenga karere:

RapetiMQ. Wāhanga 2. Te Maramatanga ki nga Whakawhitiwhiti

Āhuatanga:

  • whakangawari atu
  • taapiri atu ki runga rorohiko. Katoa (matua, uara) takirua o tetahi huanga headers me kōmaka ma te ingoa matua i mua i te tatau i nga uara ararere karere. He puhoi ake i era atu momo whakawhiti.

Whakawhiti-Hashing Tauritenga

Ko tenei kaitahuri monomai и kaore i hangaia ki roto в RabbitMQ.

Consistent-hashing exchange (whakawhitinga me te hashing rite tonu) - ka whakamahia ina he maha nga rarangi ka taea te whiwhi karere, me te wa e hiahia ana koe ki te whakataurite i te kawenga i waenga i a raatau. Ko te hononga o te karere ki te tūtira ka puta ma te taumaha (te uara aho here mai 0 - n).

Taurite te taumaha o nga rarangi - e tohu ana ka whiwhi ia rarangi āhua rite te nui karere (ka tukuna ia karere ki te rarangi kotahi anake). Karekau he taurangi kia rite te tohatoha o nga karere.

Whakaaturanga whakairoiro o te rerenga karere:

RapetiMQ. Wāhanga 2. Te Maramatanga ki nga Whakawhitiwhiti

Hash ka tatauhia i runga i te matua ararere, taonga ranei headers karere. Mena he rereke nga taviri ararere katoa o nga karere kua whakaputaina headers, katahi ka puta te tohatoha ma te taumaha. Ki te kore, ka whakamahia te kī ararere ranei headers.

Me awhina i te wa e tika ana kia piki ake te utu o nga kaihoko ki te otinga me nga kaihoko maha e whakamahi ana i te rarangi kotahi.

Whakakotahi i nga whakawhiti (E2E)

Ka taea te whakakotahi i te whanonga o nga kaiwhakawhitiwhiti katoa ma te whakamahi i te whakawhitiwhiti korero Whakawhiti-ki-Whakawhiti (Ko te whakakotahi i nga kaiwhakawhitiwhiti kaore i whakauruhia ki roto i nga korero AMQP. He toronga tenei o te kawa mai i te taha RabbitMQ).

Whakaaturanga whakairoiro o te rerenga karere:

RapetiMQ. Wāhanga 2. Te Maramatanga ki nga Whakawhitiwhiti

Tuhinga o mua E2E ka kitea e tatou te whirihoranga tauineine tika hei whakatutuki i nga whakaritenga o naianei me te tipu haere.

Waihanga Whakawhiti

Ko te hanga o te whakawhiti ka puta ma te tukutahi RPC tono ki te tūmau. Ka mahia te tono ma te whakamahi i te tikanga Exchange.Declareka karangahia me nga tawhā:

  • ingoa whakawhiti
  • momo whakawhiti
  • etahi atu tawhā

Tauira hanga exchange Tuhinga o mua RabbitMQ.Kaihoko:

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

  • exchange — te ingoa o te kaitahuri e hiahia ana matou ki te hanga. Me ahurei te ingoa
  • type — momo whakawhiti
  • durable - mena kua whakauruhia true, ka exchange ka pumau tonu. Ka penapenahia ki runga i te kōpae ka ora i te tiimata o te kaitoro/kaihokohoko. Mena ko te uara false, ka exchange he rangitahi, ka mukua ina whakaara ano te kaimau/kaihokohoko
  • autoDelete - tango aunoa. Exchange ka mukua ina ka mukua nga rarangi katoa e hono ana
  • arguments - tohenga whiriwhiri. I te nuinga o nga wa, ka tohua e ratou ma nga tautohetohe alternative exchange (whakawhiti whakawhiti). Ki te kore e taea e tetahi karere te haere ma te huarahi taketake, ka taea te tuku atu ki tetahi kaitahuri rereke kia tukuna ma te huarahi rereke.

RapetiMQ. Wāhanga 2. Te Maramatanga ki nga Whakawhitiwhiti

Ki te hanga exchange pea, ka tukuna e te tūmau he tukutahi ki te kiritaki RPC whakautu Exchange.DeclareOk. Ki te hanga kaore e taea (i whakakahoretia te tono Exchange.Declare) ka ka kati te hongere tūmau e whakamahi ana i te tono tukutahi Channel.Close a ka riro i te kiritaki he okotahi OperationInterruptedException, kei roto te waehere hapa me tona whakaahuatanga.

Me hanga he kaiwhakawhitiwhiti i mua i te tuku karere. Mena ka whakaputahia e koe he karere ki etahi kaitahuri kore - RabbitMQ ka ata tangohia.

Waihanga Whakawhiti ma te GUI

Haere ki te papa whakahaere RabbitMQ i raro i te kaiwhakamahi guest (ingoa kaiwhakamahi: guest me te kupuhipa: guest). Kia mahara ko te kaiwhakamahi guest ka taea anake te hono mai i te localhost. Inaianei me haere ki te ripa Exchanges ka paato atu Add a new exchange. Whakakiia nga taonga:

RapetiMQ. Wāhanga 2. Te Maramatanga ki nga Whakawhitiwhiti

Ko te nuinga o nga taonga kua korerohia i runga ake nei. I konei ka kite tatou mena ka whakatauhia e tatou Internal, katahi ka taea anake te whakamahi i te whakawhiti mo E2E. Producer e kore e taea te tuku karere ki taua whakawhitinga.

mutunga

I te wa e whakawhanake ana i tetahi punaha, he pai ki te whakaahua i te topology ararere te whakamahi kauwhata. Engari i mua i to tiimata ki te hanga kauwhata, he mea tika kia tohuhia nga huarahi me nga waka nui, na te mea ma ratou e tono teitei ake te whakaputanga (whakamahi). I muri mai, ka taea e koe te whakarōpū i te waka. Katahi ano ka timata te hanga.

Mena kei roto i te kauwhata i hangaia he huinga mutunga nga taviri ararere, katahi ka pai te titiro ki etahi atu fanout exchange, e 1:1 e pa ana ki te taviri ararere. Ka mahara tatou ki tera fanout exchange te tere.

Mena te maha o nga huarahi ahu ki te mutunga kore, katahi koe ka aro mai topic exchange ranei, ki te kore e hiahiatia te tauira, ka taea e koe te kowhiri direct exchnge, no te mea he tere ake ia topic exchange.

Nga huinga rereke exchange me awhina koe ki te kimi i te mea tika whirihoranga tauineine, e tutuki ana i nga whakaritenga punaha o naianei me te tipu haere.

Tuhinga o mua exchange me iti rawa nga rarangi ki te maha o nga huarahi.

I roto i te tuhinga e whai ake nei ka timata tatou ki te mohio ki nga Tutira me nga Herea i roto i nga korero taipitopito.

tohutoro

Source: will.com

Tāpiri i te kōrero