RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng

Ho mamella liphoso le ho fumaneha haholo ke lihlooho tse kholo, kahoo re tla fana ka lingoliloeng tse arohaneng ho RabbitMQ le Kafka. Sengoliloeng sena se bua ka RabbitMQ, 'me se latelang se bua ka Kafka, ha se bapisoa le RabbitMQ. Ena ke sengoloa se selelele, kahoo iketsetse boiketlo.

Ha re shebeng maqheka a mamello, ho tsitsa, le ho fumaneha ho phahameng (HA) le li-tradeoffs tseo leano le leng le le leng le li etsang. RabbitMQ e ka sebetsa ka sehlopha sa li-node - 'me e ntan'o hlophisoa e le tsamaiso e ajoang. Ha ho tluoa tabeng ea litsamaiso tse ajoang, hangata re bua ka ho tsitsa le ho fumaneha.

Likhopolo tsena li hlalosa kamoo tsamaiso e sebetsang kateng ha e hlōleha. Ho hloleha ha marang-rang, ho hloleha ha seva, ho hloleha ha hard drive, ho se fumanehe ha nakoana ka lebaka la pokello ea lithōle, tahlehelo ea liphutheloana, kapa khokahanyo ea marang-rang e ea fokotseha. Sena sohle se ka lebisa ho tahlehelo ea data kapa likhohlano. E fellang kateng le hore ho ke ke hoo e batlang e ke ke ha khoneha ho beha tsamaiso eo ka bobeli e lumellanang ka ho feletseng (ha ho tahlehelo ya data, ha ho divergence ya data) 'me e fumaneha (e tla amohela ho bala le ho ngola) bakeng sa maemo ohle a ho hlōleha.

Re tla bona hore ho lumellana le ho fumaneha ho lipheletsong tse fapaneng, 'me u hloka ho khetha hore na u ka ntlafatsa joang. Litaba tse monate ke hore ka RabbitMQ khetho ena e ka khoneha. U na le mefuta ena ea li-levers tsa "nerdy" ho suthisetsa tekanyo ho ea ho tsitsipano e kholo kapa phihlello e kholoanyane.

Re tla ela hloko ka ho khetheha hore na litlhophiso li lebisa tahlehelong ea data ka lebaka la lirekoto tse tiisitsoeng. Ho na le ketane ea boikarabello lipakeng tsa baphatlalatsi, barekisi le bareki. Hang ha molaetsa o fetisetsoa ho morekisi, ke mosebetsi oa hae hore a se ke a lahleheloa ke molaetsa. Ha morekisi a lumela hore mohatisi o amohetse molaetsa, ha rea ​​lebella hore o tla lahleha. Empa re tla bona hore sena se ka etsahala ho latela tlhophiso ea morekisi oa hau le mohatisi.

Li-Primitives tsa Single Node Resilience

Resilient Queuing/ Routing

Ho na le mefuta e 'meli ea mela ho RabbitMQ: e tšoarellang le e sa tšoarellang. Mela eohle e bolokiloe polokelong ea Mnesia. Mela e tšoarellang e bapatsoa bocha ha ho qala li-node 'me kahoo e pholoha ho qala bocha, ho senyeha ha sistimi, kapa ho senyeha ha seva (ha feela data e ntse e tsoela pele). Sena se bolela hore ha feela o bolela hore tsela (ho fapanyetsana) le tatellano e tla khona ho ikemela, lisebelisoa tsa ho koloka/tsela li tla khutlela inthaneteng.

Mela e feto-fetohang le litsela lia tlosoa ha node e qala hape.

Melaetsa e phehellang

Hobane queue e tšoarella ha e bolele hore melaetsa eohle ea eona e tla pholoha ha node e qala. Ke melaetsa feela e behiloeng ke mohatisi e le tsitsitseng (pheheletseng). Melaetsa e tsitsitseng e baka mojaro o mong ho morekisi, empa haeba tahlehelo ea molaetsa e sa amohelehe, ha ho na khetho e 'ngoe.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 1. Matrix a tsitsitseng

Ho kopanya le seipone sa queue

Ho pholoha tahlehelo ea broker, re hloka redundancy. Re ka kopanya li-node tse ngata tsa RabbitMQ ka har'a sehlopha, ebe re eketsa bofokoli bo eketsehileng ka ho pheta-pheta mela pakeng tsa li-node tse ngata. Ka tsela ena, haeba node e le 'ngoe e hlōleha, ha re lahleheloe ke data mme re lula re le teng.

Quee mirroring:

  • mola o le mong (master), o amohelang litaelo tsohle tsa ho ngola le ho bala
  • seipone se le seng kapa ho feta tse amohelang melaetsa eohle le metadata ho tsoa moleng o ka sehloohong. Liipone tsena ha li teng bakeng sa ho phahamisa, empa ke bakeng sa ho fokotsa mosebetsi.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 2. Seipone sa queue

Seipone se behiloe ke leano le loketseng. Ho eona u ka khetha coefficient ea ho pheta-pheta esita le li-node tseo mola o lokelang ho ba ho tsona. Mehlala:

  • ha-mode: all
  • ha-mode: exactly, ha-params: 2 (morena a le mong le seipone se le seng)
  • ha-mode: nodes, ha-params: rabbit@node1, rabbit@node2

Netefatso ea mohatisi

Ho fihlela ho rekota ka mokhoa o ts'oanang, ho hlokahala Litiiso tsa Mophatlalatsi. Ntle le bona, ho na le kotsi ea ho lahleheloa ke melaetsa. Netefatso e romelloa ho mohatisi ka mor'a hore molaetsa o ngoloe ho disk. RabbitMQ e ngola melaetsa ho disk eseng ha e e fumana, empa nako le nako, sebakeng sa li-milliseconds tse makholo a 'maloa. Ha mokoloko o etsoa seipone, kananelo e romelloa feela ka mor'a hore liipone tsohle le tsona li ngole kopi ea tsona ea molaetsa ho disk. Sena se bolela hore ho sebelisa litiiso ho eketsa latency, empa haeba ts'ireletso ea data e le ea bohlokoa, joale lia hlokahala.

Letoto la ho hloleha

Ha morekisi a tlohela kapa a oa, baetapele bohle ba mela (masters) sebakeng seo ba oela le eona. Joale sehlopha se khetha seipone sa khale ka ho fetisisa sa monghali e mong le e mong ebe se se phahamisa e le monghali e mocha.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 3. Mela e mengata ea liipone le maano a eona

Broker 3 ea theoha. Hlokomela hore seipone sa Queue C se ho Broker 2 se ntse se phahamisoa hore se sebetse hantle. Hape hlokomela hore seipone se secha se entsoe bakeng sa Queue C ho Broker 1. RabbitMQ e lula e leka ho boloka ntlha ea ho ikatisa e boletsoeng melaong ea hau.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 4. Broker 3 e hloleha, e bakang mokoloko oa C ho hlōleha

Broker 1 e latelang e oa oa! Re na le morekisi a le mong feela ea setseng. Seipone sa Queue B se phahamisetsoa ho sebetsa hantle.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Setšoantšo: 5

Re khutlisitse Broker 1. Ho sa tsotelehe hore na data e pholohile hakae tahlehelong le ho hlaphoheloa ha broker, melaetsa eohle e bonts'itsoeng ea mela e lahloa ha e qala hape. Sena ke sa bohlokoa ho elelloa hobane ho tla ba le litlamorao. Re tla sheba litlamorao tsena haufinyane. Kahoo Broker 1 e se e le setho sa sehlopha hape, 'me sehlopha se leka ho lumellana le maano ka hona se etsa liipone ho Broker 1.

Tabeng ena, tahlehelo ea Broker 1 e ne e phethehile, joalo ka data, kahoo Letlapa le sa bonahaleng la B le lahlehile ka ho feletseng.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 6. Broker 1 e khutlela tšebeletsong

Broker 3 e khutletse inthaneteng, kahoo mela ea A le B e khutlisetsa liipone tse entsoeng ho eona ho khotsofatsa maano a bona a HA. Empa joale mela eohle ea mantlha e sebakeng se le seng! Sena ha se hantle, kabo e lekanang lipakeng tsa li-node e betere. Ka bomalimabe, ha ho na likhetho tse ngata mona bakeng sa ho leka-lekanya masters. Re tla khutlela ho taba ena hamorao hobane re hloka ho sheba khokahano ea queue pele.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 7. Broker 3 e khutlela tšebeletsong. Mela eohle ea mantlha sebakeng se le seng!

Kahoo joale o lokela ho ba le mohopolo oa kamoo liipone li fanang ka bofokoli le mamello ea liphoso. Sena se tiisa hore ho na le ho fumaneha ha node e le 'ngoe e hlōleha le ho sireletsa khahlanong le tahlehelo ea data. Empa ha re e-so qete, hobane ha e le hantle e rarahane haholo.

Fokotsa

Ha u theha seipone se secha, melaetsa eohle e mecha e tla lula e phetoa seiponeng sena le tse ling. Ha e le data e teng ka har'a queue e kholo, re ka e pheta ka seiponeng se secha, se fetohang kopi e feletseng ea monghali. Hape re ka khetha hore re se ke ra pheta-pheta melaetsa e teng 'me ra lumella mokoloko o ka sehloohong le seipone se secha ho kopana ka nako, ka melaetsa e mecha e fihlang mohatleng le melaetsa e teng e siea hlooho ea mokoloko o moholo.

Kamahanyo ena e etswa ka boyona kapa ka letsoho mme e laolwa ho sebediswa leano la mela. A re hlahlobeng mohlala.

Re na le mela e 'meli ea liipone. Lethathamo la A le amahanngwa ka boyona, mme Lethathamo la B le amahanngwa ka bowena. Mela ka bobeli e na le melaetsa e leshome.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 8. Mela e 'meli e nang le mekhoa e fapaneng ea kamahanyo

Hona joale re lahleheloa ke Broker 3.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 9. Broker 3 o ile a oa

Broker 3 e khutlela tšebeletsong. Sehlopha se etsa seipone bakeng sa mokoloko o mong le o mong sebakeng se secha 'me se hokahanya Lethathamo la A le lecha le mong'a lona. Leha ho le joalo, seipone sa Lethathamo le lecha la B le lula le se na letho. Ka tsela ena re na le khaello e felletseng ea Lethathamo la A le seipone se le seng feela bakeng sa melaetsa e teng ea Queue B.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 10. Seipone se secha sa Queue A se amohela melaetsa eohle e teng, empa seipone se secha sa Queue B ha se.

Melaetsa e meng e leshome e fihla meleng ka bobeli. Broker 2 e ntan'o senyeha 'me Queue A e khutlela seiponeng sa khale ka ho fetisisa, e leng ho Broker 1. Ha ho na tahlehelo ea data ha e hlōleha. Lethathamong la B, ho na le melaetsa e mashome a mabeli ho mong'a eona 'me e leshome feela seiponeng hobane mokoloko ona ha oa ka oa pheta melaetsa e leshome ea mantlha.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 11. Queue A e khutlela ho Broker 1 ntle le ho lahleheloa ke melaetsa

Melaetsa e meng e leshome e fihla meleng ka bobeli. Hona joale Broker 1 ea senyeha. Fola A e fetohela seiponeng habonolo ntle le ho lahleheloa ke melaetsa. Leha ho le joalo, Lethathamo la B le na le mathata. Mothating ona re ka ntlafatsa ho fumaneha kapa ho tsitsa.

Haeba re batla ho ntlafatsa phihlello, joale leano ha-khothatsa-ka-ho hloleha e lokela ho kenngoa kamehla. Ena ke boleng ba kamehla, kahoo u ke ke ua hlakisa pholisi ho hang. Tabeng ena, ha e le hantle re lumella ho hlōleha ha liipone tse sa lumellaneng. Sena se tla etsa hore melaetsa e lahlehe, empa mokoloko o tla lula o baloa le ho ngoloa.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 12. Lethathamo la A le khutlisetsoa ho Broker 3 ntle le ho lahleheloa ke melaetsa. Lethathamo la B le khutlela ho Broker 3 ka melaetsa e leshome e lahlehileng

Hape re ka kenya ha-promote-on-failure ho ba le moelelo when-synced. Tabeng ena, ho e-na rolling khutlela seiponeng, le queue tla ema ho fihlela Broker 1 le ya data lona khutlela mode online. Ka mor'a hore e khutle, mokoloko o ka sehloohong o khutlela ho Broker 1 ntle le tahlehelo ea data. Ho fumaneha hoa nyeheloa bakeng sa ts'ireletso ea data. Empa ena ke mokhoa o kotsi o ka lebisang ho tahlehelo e felletseng ea data, eo re tla e sheba haufinyane.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 13. Lethathamo la B ha le fumanehe kamora ho lahleheloa ke Broker 1

U ka 'na ua botsa, "Na ho molemo hore u se ke ua sebelisa khokahano ea othomathike?" Karabo ke hore ho hokahanya ke ts'ebetso e thibelang. Ka nako ya kamahanyo, mokoloko o ka se kgone ho etsa tshebetso efe kapa efe ya ho bala kapa ho ngola!

A re hlahlobeng mohlala. Hona joale re na le mela e melelele haholo. Li ka hōla joang ho fihlela boholo bo bokaalo? Ka mabaka a 'maloa:

  • Mela ha e sebelisoe
  • Tsena ke mela ea lebelo le holimo, 'me hona joale bareki ba lieha
  • Ke mela ea lebelo le holimo, ho bile le glitch mme bareki ba ntse ba ts'oara

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 14. Mela e 'meli e meholo e nang le mekhoa e fapaneng ea ho hokahanya

Hona joale Broker 3 e oa.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 15. Broker 3 e oa, e siea monghali a le mong le seipone moleng o mong le o mong

Broker 3 e khutlela inthaneteng 'me ho etsoa liipone tse ncha. Main Queue A qala ho pheta melaetsa e teng seiponeng se secha, 'me nakong ena Lethathamo ha le fumanehe. Ho nka lihora tse peli ho pheta-pheta data, e leng se bakang nako ea lihora tse peli bakeng sa Lethathamo lena!

Leha ho le joalo, Lethathamo la B le ntse le fumaneha nakong eohle. O ile a tela bofokoli bo itseng bakeng sa ho fumaneha.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 16. Lethathamo le ntse le le sieo nakong ea khokahano

Kamora lihora tse peli, Lethathamo la A le lona lea fumaneha 'me le ka qala ho amohela ho baloa le ho ngola hape.

Lisebelisoa

Boitšoaro bona ba ho thibela nakong ea khokahano bo etsa hore ho be thata ho nchafatsa lihlopha tse nang le mela e meholo haholo. Ka nako e 'ngoe, node e kholo e hloka ho tsosolosoa, e bolelang hore e ka fetohela seiponeng kapa ho tima queue ha seva se ntse se ntlafatsoa. Haeba re khetha ho fetoha, re tla lahleheloa ke melaetsa haeba liipone li sa lumellane. Ka nako e sa lekanyetsoang, nakong ea ho tima ha broker, ho felloa ke seiponeng se sa tsitsang ha ho etsoe. Sena se bolela hore hang ha broker a khutla, ha re lahleheloe ke melaetsa leha e le efe, tšenyo feela e ne e le queue e bonolo feela. Melao ea boitšoaro ha broker e khaotsoe e behiloe ke leano ha-promote-on-shutdown. O ka seta e 'ngoe ho tse peli tsa boleng:

  • always= ho fetela ho liipone tse sa sebetsaneng hoa khoneha
  • when-synced= ho fetela ho seiponeng se hokahantsoeng feela, ho seng joalo mokoloko o fetoha o sa baleheng ebile o sa ngoloe. Lethathamo le khutlela ts'ebetsong hang ha morekisi a khutla

Ka tsela e 'ngoe, ka mela e meholo u tlameha ho khetha pakeng tsa tahlehelo ea data le ho se fumanehe.

Ha Boteng bo Ntlafatsa Tšireletso ea Data

Ho na le bothata bo bong hape bo lokelang ho nahanoa pele u etsa qeto. Le ha ho hokahanya ha othomathike ho le betere bakeng sa ho fokotseha, ho ama ts'ireletso ea data joang? Ha e le hantle, ka ho fokotseha ho molemo, RabbitMQ ha e na monyetla oa ho lahleheloa ke melaetsa e teng, empa ho thoe'ng ka melaetsa e mecha e tsoang ho bahoeletsi?

Mona o hloka ho nahana ka lintlha tse latelang:

  • Na mohatisi a ka khutlisa phoso 'me a re tšebeletso ea holimo kapa mosebelisi a leke hape hamorao?
  • Na mohatisi a ka boloka molaetsa sebakeng sa heno kapa polokelong ea boitsebiso ho leka hape hamorao?

Haeba mohatisi a ka lahla molaetsa feela, ha e le hantle, ho ntlafatsa phihlello ho boetse ho ntlafatsa ts'ireletso ea data.

Kahoo, ho tlameha ho batloe teka-tekano, ’me tharollo e itšetlehile ka boemo bo itseng.

Mathata ka ha-promote-on-failure=ha-synced

Boemo ha-khothatsa-ka-ho hloleha= ha-synced ke hore re thibela ho switjha ho seiponeng unsynchronized 'me kahoo qoba ho lahleheloa ke ya data. Mola o lula o sa balehe kapa o ngoloe. Sebakeng seo, re leka ho khutlisa morekisi ea senyehileng ka data ea eona e le hore e ka qala ho sebetsa joalo ka monghali ntle le tahlehelo ea data.

Empa ('me sena ke se seholo empa) haeba morekisi a lahlehetsoe ke data, joale re na le bothata bo boholo: mokoloko o lahlehile! Lintlha tsohle li felile! Esita le haeba u na le liipone tseo hangata li tšoarang mokoloko o moholo, liipone tseo le tsona lia lahloa.

Ho eketsa node e nang le lebitso le le leng, re bolella sehlopha ho lebala node e lahlehileng (ka taelo rabbitmqctl lebala_cluster_node) 'me u qale broker e ncha ka lebitso le tšoanang la moeti. Ha sehlopha se hopola node e lahlehileng, se hopola mokoloko oa khale le liipone tse sa lumellaneng. Ha sehlopha se bolelloa hore se lebale node ea likhutsana, mokoloko oo le oona oa lebaloa. Joale re hloka ho e phatlalatsa hape. Re lahlile lintlha tsohle, le hoja re ne re e-na le liipone tse nang le karolo e itseng ea data. Ho ka ba molemo ho fetohela seiponeng se sa lumellaneng!

Ka hona, kamahanyo ka letsoho (le ho hloleha ho amahanya) mmoho le ha-promote-on-failure=when-synced, ka maikutlo a ka, e kotsi haholo. Litokomane li re khetho ena e teng bakeng sa ts'ireletso ea data, empa ke thipa e sehang habeli.

Master rebalancing

Joalokaha ho tšepisitsoe, re khutlela bothateng ba ho bokella benghali bohle ho node e le 'ngoe kapa tse' maloa. Sena se ka etsahala ka lebaka la ntlafatso ea sehlopha sa rolling. Ka har'a sehlopha sa li-node tse tharo, lihlopha tsohle tse kholo li tla bokellana sebakeng se le seng kapa tse peli.

Rebalancing masters e ka ba bothata ka mabaka a mabeli:

  • Ha ho na lisebelisoa tse ntle tsa ho etsa ho leka-lekanya hape
  • Khokahano ea mela

Ho na le motho oa boraro bakeng sa ho leka-lekanya bocha plugin, e sa tšehetsoeng ka molao. Mabapi le li-plugins tsa mokha oa boraro bukeng ea RabbitMQ ho rialo: "Plugin e fana ka lisebelisoa tse ling tsa tlhophiso le tlaleho, empa ha e tšehetsoe kapa ha e netefatsoe ke sehlopha sa RabbitMQ. Sebelisa ka boithatelo ba hau."

Ho na le leqheka le leng la ho tsamaisa mokoloko oa mantlha ka maano a HA. Bukana e bua ka mongolo molemong oa sena. E sebetsa tjena:

  • E tlosa liipone tsohle ho sebelisa leano la nakoana le nang le bohlokoa bo phahameng ho feta leano la HA le teng.
  • E fetola leano la nakoana la HA ho sebelisa mokhoa oa node, ho totobatsa node eo queue e lokelang ho fetisetsoa ho eona.
  • E amahanya le mokoloko bakeng sa ho falla ha push.
  • Ka mor'a hore ho falla ho phetheloe, ho hlakola leano la nakoana. Leano la pele la HA le qala ho sebetsa 'me palo e hlokahalang ea liipone e thehoa.

Taba e nyahamisang ke hore mokhoa ona o kanna oa se sebetse haeba o na le mela e meholo kapa litlhoko tse thata tsa ho hloka mosebetsi.

Joale ha re boneng hore na lihlopha tsa RabbitMQ li sebetsa joang ka likarolo tsa marang-rang.

Tahlehelo ya kgokelo

Li-node tsa tsamaiso e abuoang li hokahane ka lihokelo tsa marang-rang, 'me lihokelo tsa marang-rang li ka khaoha ebile li tla khaoloa. Khafetsa ea ho tima e itšetlehile ka lisebelisoa tsa lehae kapa ho tšepahala ha leru le khethiloeng. Boemong bofe kapa bofe, litsamaiso tse ajoang li tlameha ho khona ho sebetsana ka katleho le tsona. Hape re na le khetho pakeng tsa ho fumaneha le ho tsitsa, hape litaba tse monate ke hore RabbitMQ e fana ka likhetho tse peli (eseng feela ka nako e le 'ngoe).

Ka RabbitMQ re na le likhetho tse peli tsa mantlha:

  • Lumella karohano e utloahalang (ho arohana ha boko). Sena se netefatsa ho fumaneha, empa se ka baka tahlehelo ea data.
  • Thibela karohano e utloahalang. E ka fella ka tahlehelo ea nako e khuts'oane ea ho ba teng ho latela hore na bareki ba hokahana joang le sehlopha. E ka boela ea lebisa ho se fumaneheng ho feletseng sehlopheng sa li-node tse peli.

Empa karohano e utloahalang ke eng? Sena ke ha sehlopha se arohana ka bobeli ka lebaka la tahlehelo ea likhokahano tsa marang-rang. Ka lehlakoreng le leng, liipone li phahamisetsoa ho monghali, e le hore qetellong ho be le beng ba 'maloa ka mokoloko.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 17. Moeli o ka sehloohong le liipone tse peli, e 'ngoe le e' ngoe e le sebakeng se arohaneng. Joale ho hloleha ha marang-rang ho etsahala 'me seipone se le seng sea thijoa. Node e arohaneng e bona hore tse ling tse peli li oele 'me li khothalletsa liipone tsa eona ho monghali. Hona joale re na le mela e 'meli e meholo, e ngoloang le e balehang.

Haeba baphatlalatsi ba romella lintlha ho masters ka bobeli, re qetella re e-na le likopi tse peli tse fapaneng tsa mokoloko.

Mefuta e fapaneng ea RabbitMQ e fana ka ho fumaneha kapa ho tsitsa.

Mokhoa oa ho hlokomoloha (ka ho feletseng)

Mokhoa ona o netefatsa phihlello. Ka mor'a tahlehelo ea khokahanyo, karohano e utloahalang e etsahala. Ka mor'a hore khokahanyo e tsosolosoe, molaoli o tlameha ho etsa qeto ea hore na ke karolo efe e tlang pele. Lehlakore le lahlehileng le tla qala hape mme data eohle e bokelletsoeng ka lehlakoreng leo e tla lahleha.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 18. Bahoeletsi ba bararo ba amahanngoa le barekisi ba bararo. Ka hare, sehlopha se tsamaisa likopo tsohle ho mokoloko oa Broker 2.

Hona joale re lahleheloa ke Broker 3. O bona hore barekisi ba bang ba oele 'me ba phahamisa seipone sa hae ho monghali. Ke kamoo karohano e utloahalang e etsahalang kateng.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 19. Karohano e utloahalang (ho arohana-boko). Lirekoto li kena meleng e 'meli e meholo, 'me likopi tse peli lia fapana.

Khokahano e tsosolositsoe, empa karohano e utloahalang e ntse e le teng. Mookameli o tlameha ho khetha ka letsoho lehlakore le lahlehileng. Tabeng e ka tlase, mookameli o tsosolosa Broker 3. Melaetsa eohle eo a sa kang a khona ho e fetisa e lahlehile.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 20. Mookameli o tima Broker 3.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 21. Mookameli o qala Broker 3 'me e ikopanya le sehlopha, ho lahleheloa ke melaetsa eohle e neng e setse moo.

Nakong ea tahlehelo ea khokahanyo le ka mor'a ho tsosolosoa ha eona, sehlopha le mokoloko ona li ne li le teng bakeng sa ho bala le ho ngola.

Autoheal mode

E sebetsa ka mokhoa o ts'oanang le mokhoa oa Ignore, ntle le hore sehlopha ka boeona se ikhethela lehlakore le lahlehileng kamora ho arola le ho khutlisa khokahano. Lehlakore le lahlehileng le khutlela sehlopheng le se na letho, 'me mokoloko o lahleheloa ke melaetsa eohle e rometsoeng ka lehlakoreng leo feela.

Emisa Boemo ba Bonyenyane

Haeba re sa batle ho lumella karohano e utloahalang, khetho ea rona feela ke ho lahla ho bala le ho ngola ka lehlakoreng le lenyenyane ka mor'a karohano ea lihlopha. Ha morekisi a bona hore o ka lehlakoreng le lenyenyane, o emisa mosebetsi, ke hore, o koala likhokahano tsohle tse teng mme o hana tse ling tse ncha. Hang ka motsotsoana e hlahloba ho tsosolosoa ha khokahanyo. Hang ha khokahanyo e tsosolositsoe, e tsoela pele ho sebetsa 'me e kopanya sehlopha.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 22. Bahoeletsi ba bararo ba amahanngoa le barekisi ba bararo. Ka hare, sehlopha se tsamaisa likopo tsohle ho mokoloko oa Broker 2.

Barekisi ba 1 le 2 ba ntan'o arohana le Broker 3. Ho e-na le ho khothalletsa seipone sa bona ho tseba, Broker 3 e emisa 'me e fetoha ha e fumanehe.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 23. Broker 3 e emisa, e hakolla bareki bohle, mme e hana likopo tsa khokahano.

Hang ha khokahanyo e tsosolositsoe, e khutlela sehlopheng.

Ha re shebeng mohlala o mong moo lethathamo la mantlha le leng ho Broker 3.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 24. Lethathamo la mantlha ho Broker 3.

Joale tahlehelo e tšoanang ea khokahanyo e etsahala. Broker 3 e khefutsa hobane e ka lehlakoreng le lenyane. Ka lehlakoreng le leng, li-node li bona hore Broker 3 e oele, kahoo seipone sa khale sa Brokers 1 le 2 se phahamisetsoa ho tseba.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 25. Phetoho ho Broker 2 haeba Broker 3 ha e fumanehe.

Ha khokahano e khutlisoa, Broker 3 e tla kenella sehlopheng.

RabbitMQ vs Kafka: Mamello ea Phoso le Boteng bo Phahameng ka Lihlopheng
Raese. 26. Sehlopha se khutletse tšebetsong e tloaelehileng.

Ntho ea bohlokoa eo re lokelang ho e utloisisa mona ke hore re fumana botsitso, empa hape re ka fumana phumaneho, haeba Re tla atleha ho fetisetsa bareki ho boholo ba karolo. Maemong a mangata, 'na ka bonna ke ne ke khetha "Pause Minority mode", empa e hlile e ipapisitse le boemo ba motho ka mong.

Ho netefatsa boteng, ho bohlokoa ho netefatsa hore bareki ba hokahana ka katleho le moamoheli. Ha re shebeng likhetho tsa rona.

Ho netefatsa Khokahano ea Bareki

Re na le likhetho tse 'maloa tsa mokhoa oa ho lebisa bareki karolong e kholo ea sehlopha kapa ho li-node tse sebetsang (ka mor'a hore node e le' ngoe e hlōlehe) ka mor'a tahlehelo ea khokahanyo. Taba ea pele, a re hopoleng hore letoto le ikhethileng le ts'oaroa sebakeng se itseng, empa litsamaiso le maano li phetoa hohle libakeng tsohle. Bareki ba ka hokela ho node efe kapa efe, 'me routing ea kahare e tla ba lebisa moo ba hlokang ho ea teng. Empa ha node e emisoa, e hana likhokahano, kahoo bareki ba tlameha ho hokela node e 'ngoe. Haeba node e oa, ha ho letho leo a ka le etsang ho hang.

Likhetho tsa rona:

  • Sehlopha se fihlelleha ho sebelisoa selekanyi sa mojaro se potolohang ka har'a li-node ebe bareki ba leka ho hokela hape ho fihlela katleho. Haeba node e theohile kapa e emisitsoe, joale boiteko ba ho hokahana le node eo bo tla hloleha, empa liteko tse latelang li tla ea ho li-server tse ling (ka mokhoa o pota-potileng). Sena se loketse ho lahleheloa ke nako e khutšoanyane ea khokahanyo kapa seva se theohileng se tla khutlisetsoa kapele.
  • Fumana sehlopha ka ho leka-lekanya mojaro 'me u tlose li-node tse emisitsoeng/tse hlōlehileng lethathamong hang ha li fumanoa. Haeba re etsa sena ka potlako, 'me haeba bareki ba khona ho leka khokahanyo hape, re tla fumana ho fumaneha kamehla.
  • Fana ka moreki e mong le e mong lethathamo la li-node tsohle, 'me moreki o khetha e 'ngoe ea tsona ha a hokela. Haeba e fumana phoso ha e leka ho hokela, e fetela node e latelang lethathamong ho fihlela e hokela.
  • Tlosa sephethephethe ho node e hlōlehileng / e emisitsoeng u sebelisa DNS. Sena se etsoa ho sebelisoa TTL e nyane.

fumanoeng ke

RabbitMQ clustering e na le melemo le bofokoli ba eona. Litšitiso tse tebileng haholo ke tsena:

  • ha u kopanya sehlopha, li-node li lahla data ea tsona;
  • ho thibela kamahanyo ho baka hore letoto le se fumanehe.

Liqeto tsohle tse thata li tsoa likarolong tsena tse peli tsa meralo. Haeba RabbitMQ e ne e ka boloka data ha sehlopha se kopanngoa hape, khokahano e ka ba kapele. Haeba e ne e khona ho hokahanya ntle le ho thibela, e ne e tla ts'ehetsa mela e meholo hantle. Ho lokisa litaba tsena tse peli ho ka ntlafatsa haholo ts'ebetso ea RabbitMQ joalo ka theknoloji e mamellang liphoso le e fumanehang haholo ea melaetsa. Ke tla ba leqe ho khothaletsa RabbitMQ ka ho kopanya maemong a latelang:

  • Marang-rang a sa tšepahaleng.
  • Poloko e sa tšepahaleng.
  • Mela e telele haholo.

Ha ho tluoa tabeng ea litlhophiso tse phahameng tsa ho fumaneha, nahana ka tse latelang:

  • ha-promote-on-failure=always
  • ha-sync-mode=manual
  • cluster_partition_handling=ignore (kapa autoheal)
  • melaetsa e phehellang
  • etsa bonnete ba hore bareki ba hokahana le node e sebetsang ha node e itseng e hloleha

Bakeng sa ho ts'oara (ts'ireletso ea data), nahana ka litlhophiso tse latelang:

  • Mohatisi o tiisa le ho fana ka Liteboho ka letsoho lehlakoreng la bareki
  • ha-promote-on-failure=when-synced, haeba bahoeletsi ba ka leka hape hamorao le haeba u na le polokelo e tšepahalang haholo! Ho seng joalo beha =always.
  • ha-sync-mode=automatic (empa bakeng sa mela e meholo e sa sebetseng mokhoa oa matsoho o ka hlokahala; hape nahana hore na ho se fumanehe ho tla etsa hore melaetsa e lahlehe)
  • Emisa Boemo ba Bonyane
  • melaetsa e phehellang

Ha re so akaretse litaba tsohle tsa ho mamella liphoso le ho fumaneha ho phahameng hajoale; mohlala, mokhoa oa ho etsa ts'ebetso ea tsamaiso ka mokhoa o sireletsehileng (joalo ka ho ntlafatsa). Re boetse re hloka ho bua ka federation le plugin ea Kharafu.

Haeba ke fetotse ntho e 'ngoe hape, ke kopa u ntsebise.

Bona hape ea ka poso, moo ke etsang moferefere ho sehlopha sa RabbitMQ ho sebelisa Docker le Blockade ho leka tse ling tsa maemo a tahlehelo ea molaetsa a hlalositsoeng sehloohong sena.

Lingoliloeng tse fetileng letotong:
Nomoro. 1 - habr.com/ru/company/itsuma/blog/416629
Nomoro. 2 - habr.com/ru/company/itsuma/blog/418389
Nomoro. 3 - habr.com/ru/company/itsuma/blog/437446

Source: www.habr.com

Eketsa ka tlhaloso