RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster

Lohahevitra lehibe ny fandeferana amin'ny lesoka sy ny fahafahana be dia be, noho izany dia hanokana lahatsoratra misaraka amin'ny RabbitMQ sy Kafka izahay. Momba an'i RabbitMQ ity lahatsoratra ity, ary momba ny Kafka ny manaraka, raha ampitahaina amin'ny RabbitMQ. Lava be ity lahatsoratra ity, ka ataovy izay hahazoana aina.

Andeha hojerentsika ny paikadin'ny fandeferana diso, ny tsy fitoviana, ary ny avo lenta (HA) ary ny fifanakalozam-bola ataon'ny paikady tsirairay. RabbitMQ dia afaka mandeha amin'ny vondron'ny nodes - ary avy eo sokajiana ho rafitra mizara. Raha ny momba ny rafitra mizara dia matetika miresaka momba ny tsy fitoviana sy ny fahafahana.

Ireo hevitra ireo dia mamaritra ny fomba fitondran'ny rafitra iray rehefa tsy mahomby. Ny tsy fahombiazan'ny fifandraisana amin'ny tambajotra, ny tsy fahombiazan'ny server, ny tsy fahombiazan'ny fiara mafy, ny tsy fisian'ny server vonjimaika noho ny fanangonana fako, ny fahaverezan'ny fonosana, na ny fihenan'ny fifandraisana amin'ny tambajotra. Izany rehetra izany dia mety hitarika amin'ny fahaverezan'ny angona na fifandirana. Hita fa saika tsy ho vita mihitsy ny mametraka rafitra izay sady tsy miova tanteraka (tsy misy very data, tsy misy data divergence) ary misy (hanaiky mamaky sy manoratra) ho an'ny toe-javatra tsy fahombiazana rehetra.

Ho hitantsika fa eo amin'ny faran'ny spektrum ny tsy fitovian-kevitra sy ny fisiana, ary mila misafidy izay fomba hanatsarana ianao. Ny vaovao tsara dia ny RabbitMQ dia azo atao io safidy io. Manana ireo karazana "nerdy" ireo ianao mba hanovana ny fifandanjana mankany amin'ny tsy fitoviana bebe kokoa na ny fahafahana miditra bebe kokoa.

Hojerentsika manokana hoe iza amin'ireo tefy no mitarika amin'ny fahaverezan'ny angona noho ny firaketana voamarina. Misy rojo andraikitry ny mpamoaka lahatsoratra, mpivarotra ary mpanjifa. Raha vao alefa any amin'ny mpivarotra ny hafatra dia anjarany ny tsy manary ilay hafatra. Rehefa manaiky ny fandraisan'ny mpanonta ny hafatra ny broker dia tsy manantena izahay fa ho very izany. Saingy ho hitantsika fa mety hitranga izany raha ny marina, miankina amin'ny fandrindrana broker sy mpamoaka anao.

Single Node Resilience Primitives

Filaharam-be / Filalaovana

Misy karazana filaharana roa ao amin'ny RabbitMQ: maharitra sy tsy maharitra. Ny filaharana rehetra dia voatahiry ao amin'ny tahiry Mnesia. Ny filaharana maharitra dia averina averina amin'ny fanombohana node ary noho izany dia tafavoaka velona amin'ny fanombohana indray, fianjeran'ny rafitra, na fianjeran'ny mpizara (raha mbola mitohy ny angona). Midika izany fa raha mbola manambara ianao fa ny routing (fanakalozana) sy ny filaharana dia ho tafaverina amin'ny Internet ny fotodrafitrasa filaharana/routing.

Esorina ny filaharana sy ny zotra mivadibadika rehefa averina ny node.

Hafatra maharitra

Noho ny faharetan'ny filaharana iray dia tsy midika izany fa ho tafavoaka velona amin'ny fanombohana node ny hafatra rehetra ao aminy. Hafatra napetraky ny mpanonta ho nanampy (maharitra). Ny hafatra maharitra dia miteraka enta-mavesatra fanampiny amin'ny broker, fa raha tsy azo ekena ny fahaverezan'ny hafatra dia tsy misy safidy hafa.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 1. Matrix maharitra

Mivondrona miaraka amin'ny fitaratra filaharana

Mba ho tafavoaka velona amin'ny fahaverezan'ny broker iray, dia mila redundancy isika. Afaka manambatra ny node RabbitMQ maro isika ao anaty cluster, ary avy eo dia manampy ny famerenam-bola fanampiny amin'ny alàlan'ny famerenana ny filaharana eo anelanelan'ny node maro. Amin'izany fomba izany, raha tsy mahomby ny node iray, dia tsy very angon-drakitra ary mijanona ho azo ampiasaina.

Fitaratra filaharana:

  • filaharana lehibe iray (master), izay mandray ny baiko rehetra manoratra sy mamaky
  • fitaratra iray na maromaro izay mandray ny hafatra sy metadata rehetra avy amin'ny filaharana lehibe. Ireo fitaratra ireo dia tsy natao ho an'ny scaling, fa ho an'ny redundansi fotsiny.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 2. Filaharana fitaratra

Ny fitaratra dia apetraky ny politika mifanaraka amin'izany. Ao anatin'izany dia azonao atao ny misafidy ny coefficient replication ary na dia ny nodes izay tokony hisy ny filaharana. Ohatra:

  • ha-mode: all
  • ha-mode: exactly, ha-params: 2 (tompo iray ary fitaratra iray)
  • ha-mode: nodes, ha-params: rabbit@node1, rabbit@node2

Fanamafisana ny mpanonta

Mba hahazoana firaketana tsy miovaova dia ilaina ny Publisher Confirms. Raha tsy misy azy ireo dia mety ho very ny hafatra. Misy fanamafisana alefa any amin'ny mpanonta rehefa avy nosoratana tamin'ny kapila ny hafatra. RabbitMQ dia manoratra hafatra amin'ny kapila tsy rehefa voaray, fa amin'ny fotoana tsy tapaka, ao amin'ny faritra an-jatony milliseconds. Rehefa voataratra ny filaharana, dia tsy alefa raha tsy aorian'ny nanoratan'ny fitaratra rehetra ny dika mitovy amin'ny hafatra amin'ny kapila. Midika izany fa ny fampiasana fanamafisana dia manampy fahatarana, fa raha zava-dehibe ny fiarovana ny angon-drakitra, dia ilaina izany.

Filaharana Failover

Rehefa miala na mianjera ny mpikirakira iray, dia miara-midona aminy avokoa ny mpitarika ny filaharana (masters) amin'io node io. Ny cluster avy eo dia mifidy ny fitaratra tranainy indrindra amin'ny tompony tsirairay ary mampiroborobo azy ho tompon'ny vaovao.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 3. Filaharana taratra maro sy ny politikany

Nidina ny Broker 3. Mariho fa ny fitaratra Queue C amin'ny Broker 2 dia ampandrosoina ho tompon'andraikitra. Mariho ihany koa fa nisy fitaratra vaovao noforonina ho an'ny Filaharana C amin'ny Broker 1. Ny RabbitMQ dia miezaka foana ny mitazona ny anton'ny replication voalaza ao amin'ny politikanao.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 4. Tsy nahomby ny Broker 3, ka tsy nahomby ny filaharana C

Ny Broker 1 manaraka dia mianjera! Mpivarotra iray sisa no tavela. Ny fitaratra Filaharana B dia arotsaka ho tompon'andraikitra.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
Fig. 5

Naverinay ny Broker 1. Na manao ahoana na manao ahoana ny fahaveloman'ny angon-drakitra amin'ny fatiantoka sy ny famerenana amin'ny laoniny, ny hafatra filaharana mitaratra rehetra dia ariana rehefa manomboka. Tsara ho marihina izany satria hisy ny vokany. Hojerentsika ato ho ato ireo fiantraikany ireo. Ka ny Broker 1 dia mpikambana ao amin'ny cluster indray izao, ary ny cluster dia miezaka ny manaraka ny politika ary noho izany dia mamorona fitaratra amin'ny Broker 1.

Amin'ity tranga ity, ny fahaverezan'ny Broker 1 dia feno, toy ny angon-drakitra, ka very tanteraka ny Queue B tsy misy fitaratra.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 6. Miverina amin'ny serivisy ny Broker 1

Niverina an-tserasera ny Broker 3, ka ny filaharana A sy B dia mamerina ny fitaratra noforonina teo aminy mba hanomezana fahafaham-po ny politikan'ny HA. Fa izao ny filaharana lehibe rehetra dia eo amin'ny node iray! Tsy mety izany, tsara kokoa ny fizarana mitovy amin'ny nodes. Indrisy fa tsy dia misy safidy firy eto amin'ny fampifandanjana ny master. Hiverina amin'ity olana ity isika rehefa avy eo satria mila mijery ny filaharana synchronization aloha.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 7. Niverina tamin'ny serivisy ny Broker 3. Filaharana lehibe rehetra amin'ny node iray!

Ka izao dia tokony hanana hevitra momba ny fomba hanomezana ny fandeferana sy ny fandeferana diso ianao. Izany dia miantoka ny fisiana raha misy tsy fahombiazana node tokana ary miaro amin'ny fahaverezan'ny angona. Saingy mbola tsy vita isika, satria raha ny marina dia sarotra kokoa izany.

synchronization

Rehefa mamorona fitaratra vaovao dia haverina foana amin'ity fitaratra ity sy ny hafa rehetra ny hafatra vaovao rehetra. Raha ny angon-drakitra efa misy ao amin'ny filaharana master, dia azo atao ny mamerina izany amin'ny fitaratra vaovao, izay lasa dika mitovy amin'ny tompony. Azontsika atao koa ny misafidy ny tsy hamerina ny hafatra efa misy ary mamela ny filaharana lehibe sy ny fitaratra vaovao hifanatona ara-potoana, miaraka amin'ny hafatra vaovao tonga eo amin'ny rambony sy ny hafatra efa misy miala amin'ny lohan'ny filaharana lehibe.

Ity fampifanarahana ity dia atao ho azy na amin'ny tanana ary mitantana amin'ny alàlan'ny politikan'ny filaharana. Andeha isika hijery ohatra iray.

Manana filaharana roa misy fitaratra izahay. Ny filaharana A dia arindra ho azy, ary ny filaharana B dia arindra amin'ny tanana. Samy misy hafatra folo ireo filaharana roa ireo.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 8. Filaharana roa miaraka amin'ny fomba fampifanarahana samihafa

Very Broker 3 isika izao.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 9. Lavo ny Broker 3

Broker 3 miverina amin'ny serivisy. Ny cluster dia mamorona fitaratra ho an'ny filaharana tsirairay amin'ny node vaovao ary mampifanaraka ho azy ny Queue A vaovao miaraka amin'ny tompony. Na izany aza, mijanona foana ny fitaratry ny Queue B vaovao. Amin'izany fomba izany dia manana famerana tanteraka amin'ny Filaharana A isika ary fitaratra iray ihany ho an'ny hafatra efa misy Queue B.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 10. Ny fitaratra vaovao an'ny Filaharana A dia mandray ny hafatra efa misy rehetra, fa ny fitaratra vaovao an'ny Filaharana B dia tsy mandray.

Hafatra folo hafa no tonga amin'ny filaharana roa. Ny Broker 2 dia nianjera ary ny Queue A dia miverina amin'ny fitaratra tranainy indrindra, izay ao amin'ny Broker 1. Tsy misy very data rehefa tsy nahomby. Ao amin'ny filaharana B, misy hafatra roapolo ao amin'ny tompony ary folo ihany no ao amin'ny fitaratra satria io filaharana io dia tsy namerina ny hafatra folo tany am-boalohany.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 11. Ny filaharana A dia miverina any amin'ny Broker 1 nefa tsy very hafatra

Hafatra folo hafa no tonga amin'ny filaharana roa. Ny Broker 1 dia mianjera mora foana amin'ny fitaratra tsy misy hafatra. Na izany aza, manana olana ny Queue B. Amin'izao fotoana izao dia afaka manatsara ny fahafahana na ny tsy fitoviana isika.

Raha te hanatsara ny fahafahana miditra isika, dia ny politika ha-promote-on-failure tokony hapetraka ao foana. Ity no sandan'ny default, ka tsy azonao atao ny mamaritra ny politika. Amin'ity tranga ity dia avelantsika ny tsy fahombiazana amin'ny fitaratra tsy mifanentana. Izany dia hahatonga ny hafatra ho very, fa ny filaharana dia ho azo vakiana sy azo soratana.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 12. Ny filaharana A dia averina any amin'ny Broker 3 tsy misy hafatra very. Ny Queue B dia miverina any amin'ny Broker 3 miaraka amin'ny hafatra folo very

Afaka mametraka ihany koa izahay ha-promote-on-failure amin'ny dikany when-synced. Amin'ity tranga ity, raha tokony hiverina amin'ny fitaratra, ny filaharana dia hiandry ny Broker 1 miaraka amin'ny angonany hiverina amin'ny fomba an-tserasera. Aorian'ny fiverenany dia miverina amin'ny Broker 1 ny filaharana lehibe tsy misy very data. Sorona ho an'ny fiarovana ny angon-drakitra ny fahafahana. Fa ity dia fomba mampidi-doza izay mety hitarika ho amin'ny fahaverezan'ny angona tanteraka, izay hojerentsika tsy ho ela.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 13. Tsy misy ny filaharana B rehefa very ny Broker 1

Mety hanontany ianao hoe: "Tsara kokoa ve ny tsy mampiasa synchronization mandeha ho azy?" Ny valiny dia ny fampifanarahana dia hetsika fanakanana. Mandritra ny fampifanarahana dia tsy afaka manao asa famakiana na fanoratana ny filaharana lehibe!

Andeha isika hijery ohatra iray. Lavitra be ny filaharana ankehitriny. Ahoana no ahafahan'izy ireo mitombo amin'ny habeny toy izany? Noho ny antony maromaro:

  • Tsy ampiasaina mavitrika ny filaharana
  • Filaharana haingana ireo, ary amin'izao fotoana izao dia miadana ny mpanjifa
  • Filaharana haingam-pandeha, nisy ny tsy fahatomombanana ary manaraka ny mpanjifa

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 14. Filaharana lehibe roa miaraka amin'ny fomba fampifanarahana samihafa

Milatsaka izao ny Broker 3.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 15. Mianjera ny Broker 3, mamela ny tompony sy ny fitaratra isaky ny filaharana

Miverina an-tserasera ny Broker 3 ary misy fitaratra vaovao noforonina. Main Queue A dia manomboka mamerina ny hafatra efa misy amin'ny fitaratra vaovao, ary mandritra io fotoana io dia tsy misy ny Filaharana. Mila adiny roa ny mamerina ny angon-drakitra, ka miteraka adiny roa amin'ny fiatoana ho an'ity Filaharana ity!

Na izany aza, mbola misy ny filaharana B mandritra ny vanim-potoana manontolo. Nanao sorona kely izy mba hidirana.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 16. Tsy misy filaharana mandritra ny fampifanarahana

Rehefa afaka adiny roa, dia lasa misy ihany koa ny Filaharana A ary afaka manomboka manaiky mamaky sy manoratra indray.

fanavaozana

Ity fihetsika manakana mandritra ny fampifanarahana ity dia manasarotra ny fanavaozana ny cluster misy filaharana lehibe. Amin'ny fotoana iray dia mila averina averina indray ny node master, izay midika hoe mifindra amin'ny fitaratra na manafoana ny filaharana rehefa manavao ny server. Raha misafidy ny hifindra isika dia ho very hafatra raha tsy mifanaraka ny fitaratra. Amin'ny alàlan'ny default, mandritra ny fahatapahan'ny broker dia tsy atao ny failover amin'ny fitaratra tsy mifanentana. Midika izany fa raha vao miverina ny broker dia tsy very hafatra izahay, ny hany fahavoazana dia filaharana tsotra fotsiny. Ny fitsipiky ny fitondran-tena rehefa tapaka ny broker dia napetraky ny politika ha-promote-on-shutdown. Azonao atao ny mametraka ny iray amin'ireo sanda roa:

  • always= mandeha ny fifindrana mankany amin'ny fitaratra tsy mifanentana
  • when-synced= fifindrana mankany amin'ny fitaratra synchronize ihany, raha tsy izany dia lasa tsy azo vakina sy tsy azo soratana ny filaharana. Miverina amin'ny serivisy ny filaharana raha vao miverina ny broker

Amin'ny fomba iray na hafa, miaraka amin'ny filaharana lehibe dia tsy maintsy misafidy ianao eo amin'ny fahaverezan'ny angona sy ny tsy fahampiana.

Rehefa Manatsara ny Fiarovana Data ny Availability

Misy fahasarotana iray hafa tokony hodinihina alohan'ny handraisana fanapahan-kevitra. Na dia tsara kokoa aza ny fampifanarahana mandeha ho azy ho an'ny redundansy, ahoana no fiantraikan'izany amin'ny fiarovana ny angona? Mazava ho azy, miaraka amin'ny famerenam-potoana tsara kokoa, RabbitMQ dia tsy dia very ny hafatra efa misy, fa ahoana kosa ny hafatra vaovao avy amin'ny mpamoaka?

Eto ianao dia mila mandinika ireto manaraka ireto:

  • Afaka mamerina hadisoana fotsiny ve ny mpanonta ary asaivo manandrana indray ny serivisy ambony na ny mpampiasa any aoriana?
  • Afaka mitahiry ny hafatra ao an-toerana na ao anaty tahiry ve ny mpamoaka mba hanandrana indray any aoriana?

Raha tsy afaka manilika ny hafatra fotsiny ny mpanonta, raha ny marina, manatsara ny fiarovana ny angon-drakitra ihany koa ny fanatsarana ny fidirana.

Noho izany, tsy maintsy mitady fifandanjana, ary miankina amin'ny toe-javatra manokana ny vahaolana.

Olana amin'ny ha-promote-on-failure=rehefa-synced

hevitra ha-promote-on-failure= rehefa-synced dia ny misoroka ny fifindrana amin'ny fitaratra tsy mifanandrify ary amin'izany dia misoroka ny fahaverezan'ny angona. Mbola tsy azo vakina na azo soratana ny filaharana. Fa kosa, miezaka ny mamerina ilay broker nianjera miaraka amin'ny angon-drakitra ao aminy izahay mba hahafahany manohy miasa amin'ny maha-tompon'andraikitra azy tsy misy very angona.

Saingy (ary lehibe izany saingy) raha very ny angon-drakitra ny broker, dia manana olana lehibe isika: very ny filaharana! Lasa daholo ny angona rehetra! Na dia manana fitaratra izay mahafeno ny filaharana lehibe indrindra aza ianao dia ariana ihany koa ireo fitaratra ireo.

Mba hampidirana indray ny node mitovy anarana, dia milaza amin'ny cluster izahay mba hanadino ny node very (miaraka amin'ny baiko rabbitmqctl forget_cluster_node) ary manomboka broker vaovao miaraka amin'ny anaran'ny mpampiantrano mitovy. Raha mahatsiaro ny node very ny cluster, dia mahatsiaro ny filaharana taloha sy ny fitaratra tsy mifanaraka. Rehefa asaina manadino node kamboty ny cluster iray, dia hadino koa io filaharana io. Ankehitriny dia mila manambara izany indray isika. Very ny angon-drakitra rehetra izahay, na dia nanana fitaratra misy angon-drakitra ampahany aza izahay. Aleo mifindra amin'ny fitaratra tsy mifanandrify!

Noho izany, ny synchronization manual (sy ny tsy fahombiazana ny synchronize) miaraka amin'ny ha-promote-on-failure=when-synced, raha ny hevitro dia tena mampidi-doza. Milaza ny docs fa misy ity safidy ity ho an'ny fiarovana ny angona, saingy antsy roa lela izany.

Master rebalancing

Araka ny nampanantenaina, dia miverina amin'ny olan'ny fanangonan'ny tompony rehetra amin'ny node iray na maromaro isika. Mety hitranga izany na dia vokatry ny fanavaozana cluster mihodinkodina aza. Ao amin'ny kluster telo node, ny filaharana master rehetra dia hiangona amin'ny node iray na roa.

Mety hiteraka olana noho ny antony roa ny famerenana ny masters:

  • Tsy misy fitaovana tsara hanaovana rebalancing
  • Filaharana synchronization

Misy antoko fahatelo ho an'ny fampifandanjana plugin, izay tsy tohanana amin'ny fomba ofisialy. Mikasika ny plugins antoko fahatelo ao amin'ny boky RabbitMQ nanao hoe:: “Ny plugin dia manome fitaovana fanamafisana sy fitateram-baovao fanampiny, saingy tsy tohanana na nohamarinin'ny ekipa RabbitMQ. Ampiasao amin'ny risikao manokana. "

Misy fika hafa hamindra ny filaharana lehibe amin'ny alàlan'ny politikan'ny HA. Milaza ny boky teny ho an'ity. Miasa toy izao izy io:

  • Esory ny fitaratra rehetra mampiasa politika vonjimaika izay manana laharam-pahamehana kokoa noho ny politika HA misy.
  • Manova ny politika vonjimaika HA hampiasa fomba node, mamaritra ny node tokony hamindrana ny filaharana master.
  • Mampifanaraka ny filaharana ho an'ny fifindra-monina.
  • Rehefa vita ny fifindra-monina dia mamafa ny politika vonjimaika. Ny politika HA voalohany dia manan-kery ary ny isan'ny fitaratra ilaina dia noforonina.

Ny lafy ratsiny dia mety tsy hahomby io fomba fiasa io raha manana filaharana lehibe ianao na fepetra henjana amin'ny fampiatoana.

Andeha hojerentsika ny fomba fiasan'ny kluster RabbitMQ amin'ny fizarazarana tambajotra.

Very ny fifandraisana

Ampifandraisina amin'ny rohin-tambajotra ny node amin'ny rafitra zaraina iray, ary mety ho tapaka sy ho tapaka ny rohy amin'ny tambajotra. Miankina amin'ny fotodrafitrasa eo an-toerana na ny fahamendrehan'ilay rahona voafantina ny fahamaroan'ny fahatapahan-jiro. Na izany na tsy izany, ny rafitra zaraina dia tsy maintsy mahazaka azy ireo. Indray mandeha isika dia manana safidy eo amin'ny fahafahana sy ny tsy miovaova, ary indray ny vaovao tsara dia ny RabbitMQ dia manome safidy roa (tsy amin'ny fotoana iray ihany).

Miaraka amin'ny RabbitMQ dia manana safidy roa lehibe izahay:

  • Avelao ny fizarana lojika (fizarana-atidoha). Izany dia miantoka ny fisiana, saingy mety hiteraka fahaverezan'ny angona.
  • Atsaharo ny fisarahana lojika. Mety hiafara amin'ny fahaverezan'ny fahafaha-manao mandritra ny fotoana fohy arakaraka ny fomba fifandraisan'ny mpanjifa amin'ny cluster. Mety hitarika amin'ny tsy fisiana tanteraka amin'ny kluster misy node roa ihany koa.

Inona anefa no atao hoe fisarahana lojika? Izany dia rehefa mizara roa ny cluster iray noho ny fahaverezan'ny fifandraisana amin'ny tambajotra. Eo amin'ny lafiny tsirairay, ny fitaratra dia arotsaka ho master, ka amin'ny farany dia misy master maromaro isaky ny fihodinana.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 17. Filaharana lehibe sy fitaratra roa, samy amin'ny node mitokana. Avy eo dia misy ny tsy fahombiazan'ny tambajotra ary lasa misaraka ny fitaratra iray. Ny node misaraka dia mahita fa nianjera ireo roa hafa ary mampirisika ny fitaratra ho an'ny tompony. Manana filaharana lehibe roa isika izao, sady azo soratana sy azo vakiana.

Raha mandefa angona any amin'ny tompo roa ny mpamoaka, dia mahazo kopia roa mifanalavitra amin'ny filaharana isika.

Ny fomba samy hafa an'ny RabbitMQ dia manome fahafahana na tsy miovaova.

Tsy raharahaina ny maody (default)

Ity fomba ity dia miantoka ny fidirana. Aorian'ny fahaverezan'ny fifandraisana dia misy fisarahana lojika. Rehefa tafaverina amin'ny laoniny ny fampifandraisana dia tsy maintsy manapa-kevitra ny mpizara ho laharam-pahamehana ny mpitantana. Haverina ny lafiny very ary ho very avokoa ny angon-drakitra voaangona amin'io lafiny io.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 18. Mpitory telo no mifandray amin'ny mpivarotra telo. Ao anatiny, ny cluster dia mandefa ny fangatahana rehetra mankany amin'ny filaharana lehibe amin'ny Broker 2.

Amin'izao fotoana izao dia very ny Broker 3 isika. Hitany fa nianjera ny mpivarotra hafa ary nampiroborobo ny fitaratra ho an'ny tompony. Toy izany no mitranga ny fisarahana lojika.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 19. Fizarana lojika (fizarana-atidoha). Ny rakitra dia miditra amin'ny filaharana lehibe roa, ary misaraka ireo kopia roa.

Averina amin'ny laoniny ny fifandraisana, saingy mijanona ny fisarahana lojika. Ny mpitantana dia tsy maintsy misafidy amin'ny tanana ny lafiny very. Amin'ity tranga etsy ambany ity, ny mpitantana dia mamerina ny Broker 3. Ny hafatra rehetra tsy azony nampitaina dia very.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 20. Ny mpitantana dia manaisotra ny Broker 3.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 21. Ny mpitantana dia manomboka ny Broker 3 ary miditra amin'ny cluster, very ny hafatra rehetra tavela tao.

Nandritra ny fahaverezan'ny fampifandraisana sy taorian'ny namerenana azy, ny cluster sy ity filaharana ity dia afaka namaky sy manoratra.

Autoheal mode

Miasa mitovy amin'ny fomba Ignore, afa-tsy hoe ny cluster mihitsy no misafidy ho azy ny lafiny very rehefa avy nizara sy namerina ny fifandraisana. Miverina any amin'ny cluster foana ny ilany very, ary very ny hafatra rehetra nalefa tany amin'io lafiny io ihany ny filaharana.

Atsaharo ny maody vitsy an'isa

Raha tsy te hamela fisarahana lojika isika, ny hany safidy ataontsika dia ny manary ny mamaky sy manoratra amin'ny lafiny kely kokoa aorian'ny fisarahana cluster. Rehefa hitan'ny broker fa eo amin'ny lafiny kely kokoa izy, dia mampiato ny asa, izany hoe manakatona ny fifandraisana rehetra efa misy ary mandà ny vaovao. Indray mandeha isan-tsegondra dia manamarina ny famerenana amin'ny laoniny ny fifandraisana. Rehefa tafaverina amin'ny laoniny ny fifandraisana dia miverina miasa izy ary miditra amin'ny cluster.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 22. Mpitory telo no mifandray amin'ny mpivarotra telo. Ao anatiny, ny cluster dia mandefa ny fangatahana rehetra mankany amin'ny filaharana lehibe amin'ny Broker 2.

Ny Broker 1 sy 2 avy eo dia nisaraka tamin'ny Broker 3. Raha tokony hampiroborobo ny fitarany ho tompony, ny Broker 3 dia miato ary lasa tsy misy.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 23. Miato ny Broker 3, manafoana ny mpanjifa rehetra ary mandà ny fangatahana fifandraisana.

Rehefa tafaverina amin'ny laoniny ny fifandraisana dia miverina amin'ny cluster.

Andeha hojerentsika ohatra iray hafa izay misy ny filaharana lehibe amin'ny Broker 3.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 24. Filaharana lehibe amin'ny Broker 3.

Dia toy izany koa ny fahaverezan'ny fifandraisana mitranga. Miato ny Broker 3 satria eo amin'ny lafiny kely kokoa. Amin'ny lafiny iray, ny nodes dia mahita fa latsaka ny Broker 3, ka ny fitaratra taloha avy amin'ny Brokers 1 sy 2 dia natsangana ho tompon'andraikitra.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 25. Tetezana mankany amin'ny Broker 2 raha tsy misy ny Broker 3.

Rehefa tafaverina amin'ny laoniny ny fifandraisana dia hiditra ao amin'ny cluster ny Broker 3.

RabbitMQ vs Kafka: Fandeferana amin'ny hadisoana sy ny fisian'ny avo lenta amin'ny Cluster
vary. 26. Niverina tamin'ny laoniny ny cluster.

Ny zava-dehibe tokony ho takatra eto dia ny mahazo ny tsy fitoviana, fa afaka mahazo fahafahana ihany koa isika, raha Hamindra soa aman-tsara ny mpanjifa amin'ny ankamaroan'ny fizarana. Amin'ny ankamaroan'ny toe-javatra, izaho manokana dia misafidy ny mode Pause Minority, saingy miankina amin'ny tranga tsirairay izany.

Mba hahazoana antoka ny fisiany dia zava-dehibe ny hahazoana antoka fa mifandray tsara amin'ny mpampiantrano ny mpanjifa. Andeha hojerentsika ny safidy ataontsika.

Miantoka ny fifandraisan'ny mpanjifa

Manana safidy maromaro izahay amin'ny fomba hitarihana ny mpanjifa amin'ny ampahany lehibe amin'ny cluster na amin'ny node miasa (aorian'ny tsy fahombiazan'ny node iray) taorian'ny fahaverezan'ny fifandraisana. Voalohany, andeha hotadidintsika fa misy filaharana manokana apetraka amin'ny node manokana, fa ny lalana sy ny politika dia averina amin'ny node rehetra. Afaka mifandray amin'ny node rehetra ny mpanjifa, ary ny zotra anatiny no hitarika azy ireo amin'izay tokony halehany. Saingy rehefa mihantona ny node, dia mandà ny fifandraisana izy, ka tsy maintsy mifandray amin'ny node hafa ny mpanjifa. Raha mianjera ny node dia tsy misy azony atao mihitsy.

Safidintsika:

  • Ny cluster dia idirana amin'ny alàlan'ny fampifandanjana entana izay mivezivezy fotsiny amin'ny node ary manandrana mampifandray indray ny mpanjifa mandra-pahombiazana. Raha midina na mihantona ny node iray, dia tsy hahomby ny fanandramana mifandray amin'io node io, fa ny andrana manaraka kosa dia mankany amin'ny lohamilina hafa (amin'ny fomba round-robin). Ity dia mety amin'ny fahaverezan'ny fifandraisana fohy na ny mpizara nidina izay haverina haingana.
  • Midira amin'ny cluster amin'ny alàlan'ny mpandrindra entana ary esory ao anaty lisitra ny node mihantona/tsy nahomby raha vao hita izy ireo. Raha manao izany haingana isika, ary raha afaka manandrana indray ny fifandraisana ny mpanjifa, dia hahazo ny fahafahana tsy tapaka.
  • Omeo lisitr'ireo node rehetra ny mpanjifa tsirairay, ary misafidy ny iray amin'izy ireo kisendrasendra ny mpanjifa rehefa mifandray. Raha mahazo hadisoana izy rehefa manandrana mifandray, dia mifindra any amin'ny node manaraka ao amin'ny lisitra mandra-pifandray.
  • Esory ny fifamoivoizana amin'ny node tsy nahomby/nahantona mampiasa DNS. Izany dia atao amin'ny fampiasana TTL kely.

hitany

Ny clustering RabbitMQ dia manana ny tombony sy ny fatiantoka. Ny tsy fahampiana lehibe indrindra dia:

  • rehefa manatevin-daharana vondrona iray, ny nodes dia manary ny angonany;
  • ny fanakanana synchronization dia mahatonga ny filaharana ho tsy misy.

Ny fanapahan-kevitra sarotra rehetra dia avy amin'ireo endri-javatra maritrano roa ireo. Raha afaka mitahiry angona ny RabbitMQ rehefa atambatra indray ny cluster, dia ho haingana kokoa ny fampifanarahana. Raha mahavita tsy manakana synchronization izy, dia tsara kokoa ny manohana filaharana lehibe. Ny famahana ireo olana roa ireo dia hanatsara ny fahombiazan'ny RabbitMQ amin'ny maha-teknolojia fandeferana fandeferana sy azo ampiasaina betsaka. Misalasala aho manoro hevitra an'i RabbitMQ miaraka amin'ny clustering amin'ireto toe-javatra manaraka ireto:

  • Tambajotra tsy azo ianteherana.
  • fitahirizana tsy azo ianteherana.
  • Filaharana lava be.

Raha mikasika ny firafitry ny avo lenta dia diniho ireto manaraka ireto:

  • ha-promote-on-failure=always
  • ha-sync-mode=manual
  • cluster_partition_handling=ignore (na autoheal)
  • hafatra maharitra
  • manome antoka fa mifandray amin'ny node mavitrika ny mpanjifa rehefa tsy mahomby ny node sasany

Ho an'ny tsy fitoviana (fiarovana ny angona), diniho ireto toe-javatra manaraka ireto:

  • Ny Publisher dia manamafy sy ny fankasitrahana amin'ny alàlan'ny mpanjifa
  • ha-promote-on-failure=when-synced, raha afaka manandrana indray ny mpitory any aoriana any ary raha manana tahiry azo antoka ianao! Raha tsy izany dia apetraho =always.
  • ha-sync-mode=automatic (fa ho an'ny filaharana lehibe tsy mavitrika dia mety ilaina ny maody manual; diniho koa raha ny tsy fisiana dia mety hahatonga ny hafatra ho very)
  • Atsaharo ny maody vitsy an'isa
  • hafatra maharitra

Mbola tsy voaresakay daholo ny olana momba ny fandeferana ny fahadisoana sy ny fisian'ny avo lenta; ohatra, ny fomba fanatanterahana am-pilaminana ny fomba fitantanana (toy ny fanavaozana mihodinkodina). Mila miresaka momba ny federasiona sy ny plugin Shovel ihany koa isika.

Raha misy zavatra hafa tsy azoko dia ampahafantaro ahy azafady.

Jereo koa ny ahy lahatsoratra, izay ananako fanimbana ny kluster RabbitMQ amin'ny fampiasana Docker sy Blockade mba hitsapana ny sasany amin'ireo tranga fahaverezan'ny hafatra voalaza ato amin'ity lahatsoratra ity.

Lahatsoratra teo aloha tamin'ny andiany:
No. 1 - habr.com/ru/company/isumma/blog/416629
No. 2 - habr.com/ru/company/isumma/blog/418389
No. 3 - habr.com/ru/company/isumma/blog/437446

Source: www.habr.com

Mividiana fampiantranoana azo antoka ho an'ny tranokala misy fiarovana DDoS, mpizara VPS VDS 🔥 Mividiana fampiantranoana tranonkala azo antoka miaraka amin'ny fiarovana DDoS, mpizara VPS VDS | ProHoster