RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu

Kulekerera zolakwika ndi kupezeka kwakukulu ndi mitu yayikulu, kotero tipereka zolemba zosiyana ku RabbitMQ ndi Kafka. Nkhaniyi ikunena za RabbitMQ, ndipo yotsatirayi ndi ya Kafka, poyerekeza ndi RabbitMQ. Nkhaniyi ndi yayitali, choncho khalani omasuka.

Tiyeni tiwone njira zololera zolakwika, kusasinthika, komanso kupezeka kwakukulu (HA) ndi ma tradeoffs omwe njira iliyonse imapanga. RabbitMQ imatha kuthamanga pagulu la node - kenako imayikidwa ngati dongosolo logawidwa. Ponena za machitidwe ogawidwa, nthawi zambiri timalankhula za kusasinthasintha ndi kupezeka.

Malingaliro awa amafotokoza momwe dongosolo limakhalira likalephera. Kulephera kwa netiweki, kulephera kwa seva, kulephera kwa hard drive, kusapezeka kwakanthawi kwa seva chifukwa cha zinyalala, kutayika kwa paketi, kapena kuchepa kwa intaneti. Zonsezi zingayambitse kutayika kwa deta kapena mikangano. Zikuoneka kuti n'zosatheka kukhazikitsa dongosolo lomwe liri logwirizana kwathunthu (palibe kutaya deta, palibe kusiyana kwa deta) ndi kupezeka (adzalandira kuwerenga ndi kulemba) pazochitika zonse zolephera.

Tiwona kuti kusasinthasintha ndi kupezeka kuli kumbali zina za sipekitiramu, ndipo muyenera kusankha njira yomwe mungakulitsire. Nkhani yabwino ndiyakuti ndi RabbitMQ chisankho ichi ndi chotheka. Muli ndi ma "nerdy" amtunduwu kuti musunthire kusasinthika kwakukulu kapena kupezeka kwakukulu.

Tidzapereka chidwi chapadera chomwe masinthidwe amatsogolera ku kutayika kwa data chifukwa cha zolemba zotsimikizika. Pali unyolo waudindo pakati pa osindikiza, ma broker ndi ogula. Uthengawo ukangotumizidwa kwa broker, ndi ntchito yake kuti asataya uthengawo. Pamene broker avomereza kuti wofalitsa walandira uthengawo, sitiyembekezera kuti utayika. Koma tiwona kuti izi zitha kuchitika kutengera kasinthidwe ka broker ndi wosindikiza.

Single Node Resilience Primitives

Njira Yokhazikika / Njira

Pali mitundu iwiri ya mizere mu RabbitMQ: yokhazikika komanso yosalimba. Mizere yonse imasungidwa mu database ya Mnesia. Mizere yokhazikika imalengezedwanso poyambitsa ma node ndipo motero imapulumuka kuyambiranso, kuwonongeka kwadongosolo, kapena kuwonongeka kwa seva (bola ngati deta ikupitilira). Izi zikutanthauza kuti bola mutalengeza za njira (kusinthana) ndi pamzere kuti zisasunthike, malo opangira mizere amabwereranso pa intaneti.

Mizere yosasunthika ndi njira zimachotsedwa pomwe node iyambiranso.

Mauthenga olimbikira

Chifukwa chakuti mzere ndi wokhazikika sizikutanthauza kuti mauthenga ake onse adzapulumuka kuyambikanso. Mauthenga okhawo omwe amaikidwa ndi wosindikiza ngati chokhazikika (kulimbikira). Mauthenga osalekeza amapanga katundu wowonjezera pa broker, koma ngati kutaya uthenga sikuvomerezeka, ndiye kuti palibe njira ina.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 1. Sustainability matrix

Kuphatikizika ndi magalasi amzere

Kuti tipulumuke kutayika kwa broker, timafunikira redundancy. Titha kuphatikiza ma node angapo a RabbitMQ kukhala gulu, kenako ndikuwonjezeranso kubwereza pobwereza mizere pakati pa ma node angapo. Mwanjira iyi, ngati node imodzi ikulephera, sititaya deta ndikukhalabe.

Mawonekedwe a mzere:

  • mzere umodzi waukulu (mbuye), womwe umalandira malamulo onse olembedwa ndi kuwerenga
  • galasi limodzi kapena angapo omwe amalandira mauthenga onse ndi metadata kuchokera pamzere waukulu. Magalasi awa salipo kuti achulukitse, koma kuti awonenso.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 2. Mizere yowonetsera

Mirroring imayikidwa ndi ndondomeko yoyenera. Mmenemo mungathe kusankha coefficient yobwerezabwereza komanso ngakhale mfundo zomwe mzere uyenera kukhalapo. Zitsanzo:

  • ha-mode: all
  • ha-mode: exactly, ha-params: 2 (mbuye mmodzi ndi galasi limodzi)
  • ha-mode: nodes, ha-params: rabbit@node1, rabbit@node2

Chitsimikizo cha wofalitsa

Kuti mukwaniritse kujambula kosasintha, Zitsimikiziro za Ofalitsa zimafunika. Popanda iwo, pali chiopsezo cha mauthenga otayika. Chitsimikizo chimatumizidwa kwa wosindikiza uthengawo utalembedwa ku disk. RabbitMQ imalemba mauthenga ku disk osati pa risiti, koma nthawi ndi nthawi, m'dera la ma milliseconds mazana angapo. Mzere ukawonetsedwa, chivomerezo chimatumizidwa pokhapokha magalasi onse alembanso uthenga wawo ku disk. Izi zikutanthauza kuti kugwiritsa ntchito zitsimikiziro kumawonjezera latency, koma ngati chitetezo cha deta n'chofunika, ndiye kuti ndizofunikira.

Mzere wolephera

Wogulitsa akasiya kapena kugwa, atsogoleri onse amzere (mabwana) pa nodeyo amawonongeka. Gululo limasankha galasi lakale kwambiri la mbuye aliyense ndikulikweza ngati mbuye watsopano.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 3. Mizere ingapo yojambulidwa ndi mfundo zake

Broker 3 amapita pansi. Dziwani kuti galasi la Queue C pa Broker 2 likukwezedwa kuti likhale labwino. Komanso dziwani kuti galasi latsopano lapangidwa kwa Queue C pa Broker 1. RabbitMQ nthawi zonse amayesa kusunga chinthu chobwerezabwereza chomwe chatchulidwa mu ndondomeko zanu.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 4. Broker 3 ikulephera, kuchititsa mzere C kulephera

Wotsatira wa Broker 1 wagwa! Tatsala ndi broker m'modzi yekha. Kalasi ya Queue B imakwezedwa kuti ikhale yabwino.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mkuyu. 5

Tabwereranso Broker 1. Mosasamala kanthu za momwe deta imapulumutsira kutayika ndi kubwezeretsa kwa broker, mauthenga onse omwe amawonetsedwa pamzere amatayidwa poyambiranso. Izi ndizofunikira kuzindikira chifukwa padzakhala zotsatira zake. Tiwona zotsatira zake posachedwa. Chifukwa chake Broker 1 tsopano ndi membala wa tsango kachiwiri, ndipo gululo limayesetsa kutsatira mfundozo ndipo limapanga magalasi pa Broker 1.

Pachifukwa ichi, kutayika kwa Broker 1 kunali kokwanira, monga momwe deta inaliri, kotero kuti mzere wa B wosawoneka bwino unatayika.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 6. Broker 1 akubwerera kuntchito

Broker 3 wabwereranso pa intaneti, kotero mizere A ndi B amabwezera magalasi omwe adapangidwapo kuti akwaniritse mfundo zawo za HA. Koma tsopano mizere yonse ikuluikulu ili pa mfundo imodzi! Izi sizabwino, kugawa ngakhale pakati pa node ndikwabwinoko. Tsoka ilo, palibe njira zambiri pano zosinthira masters. Tidzabweranso kunkhaniyi pambuyo pake chifukwa tikuyenera kuyang'ana kaye kulunzanitsa kwa mizere kaye.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 7. Broker 3 akubwerera kuntchito. Mizere yonse yayikulu pamfundo imodzi!

Kotero tsopano muyenera kukhala ndi lingaliro la momwe magalasi amaperekera redundancy ndi kulolerana zolakwika. Izi zimatsimikizira kupezeka ngati mfundo imodzi ikulephera ndikuteteza kutayika kwa deta. Koma sitinathebe, chifukwa kwenikweni ndizovuta kwambiri.

Vomerezani

Popanga galasi latsopano, mauthenga onse atsopano adzasinthidwa nthawi zonse pagalasi ili ndi zina zilizonse. Ponena za deta yomwe ilipo pamzere wa master, tikhoza kubwereza ku galasi latsopano, lomwe limakhala kopi yathunthu ya mbuye. Titha kusankhanso kuti tisatsatire mauthenga omwe alipo ndikulola mzere waukulu ndi galasi latsopano kuti zigwirizane ndi nthawi, ndi mauthenga atsopano omwe akufika pamchira ndi mauthenga omwe alipo akusiya mutu wa mzere waukulu.

Kulunzanitsa uku kumangochitika zokha kapena pamanja ndipo kumayendetsedwa ndi ndondomeko ya pamzere. Tiyeni tione chitsanzo.

Tili ndi mizere iwiri yowonera magalasi. Mzere A umalumikizidwa zokha, ndipo mzere B umalumikizidwa pamanja. Mizere yonseyi ili ndi mauthenga khumi.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 8. Mizere iwiri yokhala ndi mitundu yosiyanasiyana yolumikizirana

Tsopano tikutaya Broker 3.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 9. Broker 3 adagwa

Broker 3 abwerera kuntchito. Gululi limapanga kalilole pamzere uliwonse pa node yatsopano ndikugwirizanitsa mzere A watsopano ndi mbuye. Komabe, kalilole wa mzere B watsopano amakhalabe wopanda kanthu. Mwanjira iyi tili ndi kuperewera kwathunthu pa Mzere A ndi galasi limodzi lokha la mauthenga omwe alipo a mzere B.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 10. Galasi watsopano wa Mzere A amalandira mauthenga onse omwe alipo, koma galasi latsopano la Queue B silimatero.

Mauthenga ena khumi afika pamizere yonse iwiri. Broker 2 ndiye akuphwanyidwa ndipo Mzere A amagudubuza kubwerera ku galasi yakale kwambiri, yomwe ili pa Broker 1. Palibe kutayika kwa deta pamene kulephera. Pamzere B, pali mauthenga makumi awiri mwa otsogolera ndipo khumi okha pagalasi chifukwa mzerewu sunafanane ndi mauthenga khumi oyambirira.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 11. Mzere A ubwereranso ku Broker 1 popanda kutaya mauthenga

Mauthenga ena khumi afika pamizere yonse iwiri. Tsopano Broker 1 yawonongeka. Mzere A umasintha mosavuta pagalasi popanda kutaya mauthenga. Komabe, mzere B uli ndi zovuta. Panthawiyi tikhoza kukulitsa kupezeka kapena kusasinthasintha.

Ngati tikufuna kukhathamiritsa kupezeka, ndiye ndondomeko ha-kulimbikitsa-pa-kulephera iyenera kuikidwa mkati nthawizonse. Uwu ndiye mtengo wokhazikika, kotero simungathe kufotokoza ndondomekoyi nkomwe. Pankhaniyi, kwenikweni tikulora zolephera mu kalirole wosagwirizana. Izi zipangitsa kuti mauthenga atayike, koma mzerewu ukhala wowerengeka komanso wolembedwa.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 12. Mzere A wabwereranso ku Broker 3 popanda kutaya mauthenga. Mzere B ubwereranso ku Broker 3 ndi mauthenga khumi otayika

Tikhozanso kukhazikitsa ha-promote-on-failure mu mtengo when-synced. Pankhaniyi, m'malo mobwereranso pagalasi, mzerewo udzadikirira mpaka Broker 1 ndi deta yake abwerere ku intaneti. Pambuyo pobwerera, mzere waukulu wabwereranso pa Broker 1 popanda kutaya deta. Kupezeka kumaperekedwa chifukwa chachitetezo cha data. Koma iyi ndi njira yowopsa yomwe imatha kubweretsa kutayika kwathunthu kwa data, zomwe tiwona posachedwa.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 13. Mzere B sunapezeke atataya Broker 1

Mutha kufunsa, "Kodi ndibwino kuti musagwiritse ntchito kulunzanitsa kodziwikiratu?" Yankho ndikuti kulunzanitsa ndi ntchito yotsekereza. Panthawi yolumikizana, mzere waukulu sungathe kuchita chilichonse chowerengera kapena kulemba!

Tiyeni tione chitsanzo. Tsopano tili ndi mizere yayitali kwambiri. Kodi angakule bwanji mpaka kufika kukula kwake? Pazifukwa zingapo:

  • Mizere sikugwiritsidwa ntchito
  • Awa ndi mizere yothamanga kwambiri, ndipo pakali pano ogula akuchedwa
  • Ndi mizere yothamanga kwambiri, pakhala vuto ndipo ogula akupeza

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 14. Mizere iwiri ikuluikulu yokhala ndi mitundu yosiyanasiyana yolumikizirana

Tsopano Broker 3 akugwa.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 15. Broker 3 akugwa, kusiya mbuye mmodzi ndi galasi pamzere uliwonse

Broker 3 amabwereranso pa intaneti ndipo magalasi atsopano amapangidwa. Mzere Waukulu A umayamba kubwereza mauthenga omwe alipo kale pagalasi latsopano, ndipo panthawiyi Mzerewu sukupezeka. Zimatenga maola awiri kuti mubwereze zambiri, zomwe zimapangitsa kuti pakhale nthawi yopuma kwa maola awiri pamzerewu!

Komabe, mzere B umapezekabe nthawi yonseyi. Anasiya ntchito zina kuti athe kupezeka.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 16. Mzere ukadali wosapezeka panthawi yolumikizana

Pambuyo pa maola awiri, Mzere A umapezekanso ndipo ukhoza kuyamba kuvomereza kuwerengedwa ndikulembanso.

Zosintha

Kutsekereza uku pakulumikizana kumapangitsa kuti zikhale zovuta kusintha magulu okhala ndi mizere yayikulu kwambiri. Panthawi ina, node ya master iyenera kuyambiranso, zomwe zikutanthauza kuti kusuntha pagalasi kapena kulepheretsa mzere pamene seva ikukonzedwanso. Ngati tisankha kusintha, tidzataya mauthenga ngati magalasi sakugwirizana. Mwachikhazikitso, pakutha kwa broker, kulephera kwa galasi losasinthika sikumachitika. Izi zikutanthauza kuti mwamsanga pamene broker abwerera, sititaya mauthenga aliwonse, kuwonongeka kokha kunali mzere wosavuta. Malamulo a khalidwe pamene broker achotsedwa amakhazikitsidwa ndi ndondomeko ha-promote-on-shutdown. Mutha kukhazikitsa chimodzi mwazinthu ziwiri:

  • always= kusintha kwa magalasi osayanjanitsika ndikoyatsidwa
  • when-synced= kusintha kwa galasi lolumikizidwa kokha, apo ayi mzerewu umakhala wosawerengeka komanso wosalembedwa. Mzerewu umabwerera kuntchito pamene broker abwerera

Mwanjira ina, ndi mizere yayikulu muyenera kusankha pakati pa kutayika kwa data ndi kusapezeka.

Pamene Kupezeka Kumawonjezera Chitetezo cha Data

Pali vuto linanso lomwe muyenera kuliganizira musanapange chisankho. Ngakhale kulunzanitsa kodziwikiratu kuli bwino pakubwezeretsanso, kumakhudza bwanji chitetezo cha data? Zoonadi, ndi redundancy yabwino, RabbitMQ sichitha kutaya mauthenga omwe alipo, koma bwanji za mauthenga atsopano ochokera kwa osindikiza?

Apa muyenera kuganizira zotsatirazi:

  • Kodi wosindikizayo angobweza cholakwika ndi kukhala ndi ntchito yakumtunda kapena wogwiritsa kuyesanso nthawi ina?
  • Kodi wosindikiza angasunge uthengawo kwanuko kapena m'nkhokwe kuti ayeserenso nthawi ina?

Ngati wofalitsa atha kungotaya uthengawo, ndiye kuti, kuwongolera kupezeka kumathandizanso chitetezo cha data.

Motero, kuyenera kufunidwa kulinganiza bwino, ndipo yankho limadalira mkhalidwewo.

Mavuto ndi ha-promote-on-failure=pamene-masinthidwe

Maganizo ha-kulimbikitsa-pa-kulephera= pamene-kulunzanitsidwa ndikuti timapewa kusinthira ku kalilole wosalumikizidwa ndipo potero timapewa kutaya deta. Mzerewu umakhalabe wosawerengeka kapena wolembedwa. M'malo mwake, timayesa kubwezeretsanso broker yomwe yawonongeka ndi data yake kuti iyambiranso kugwira ntchito ngati mbuye popanda kutayika kwa data.

Koma (ndipo izi ndi zazikulu koma) ngati broker wataya deta yake, ndiye kuti tili ndi vuto lalikulu: mzere watayika! Deta yonse yapita! Ngakhale mutakhala ndi magalasi omwe nthawi zambiri amafika pamzere waukulu, magalasiwo amatayidwanso.

Kuti tiwonjezerenso mfundo yokhala ndi dzina lomwelo, timauza gululo kuti liyiwale node yotayika (ndi lamulo. rabbitmqctl forget_cluster_node) ndikuyamba broker watsopano wokhala ndi dzina lomweli. Pamene gululo limakumbukira mfundo yotayika, imakumbukira mzere wakale ndi magalasi osagwirizana. Gulu likauzidwa kuti liyiwale malo amasiye, mzerewo umayiwalikanso. Tsopano tiyenera kulengezanso. Tinataya deta yonse, ngakhale tinali ndi magalasi okhala ndi deta yochepa. Zingakhale bwino kusinthira ku galasi losagwirizanitsa!

Chifukwa chake, kulunzanitsa pamanja (ndi kulephera kulunzanitsa) kuphatikiza ndi ha-promote-on-failure=when-synced, m'malingaliro mwanga, ndizowopsa. Ma docs akuti njira iyi ilipo pachitetezo cha data, koma ndi mpeni wakuthwa konsekonse.

Master rebalancing

Monga momwe talonjezedwa, timabwerera ku vuto la kudzikundikira kwa ambuye onse pa mfundo imodzi kapena zingapo. Izi zitha kuchitika chifukwa cha kusintha kwa gulu la rolling. M'magulu atatu, mizere yonse imawunjikana pa mfundo imodzi kapena ziwiri.

Kubwezeretsanso masters kungakhale kovuta pazifukwa ziwiri:

  • Palibe zida zabwino zochitiranso kulinganiza
  • Kulunzanitsa pamzere

Pali gulu lachitatu la rebalance plugin, zomwe sizikuthandizidwa mwalamulo. Ponena za mapulagini achipani chachitatu mu buku la RabbitMQ adatero: "Pulogalamuyi imapereka zida zina zowonjezera ndi zofotokozera, koma sizimathandizidwa kapena kutsimikiziridwa ndi gulu la RabbitMQ. Gwiritsani ntchito mwakufuna kwanu."

Palinso chinyengo china chosuntha mzere waukulu kudzera mu ndondomeko za HA. Bukuli limatchula script za ichi. Zimagwira ntchito motere:

  • Amachotsa magalasi onse pogwiritsa ntchito ndondomeko yanthawi yochepa yomwe ili ndi zofunikira kwambiri kuposa ndondomeko ya HA yomwe ilipo.
  • Amasintha ndondomeko yakanthawi ya HA kuti agwiritse ntchito ma node mode, kufotokozera mfundo yomwe mzere wa master uyenera kusamutsidwira.
  • Amalunzanitsa pamzere wokankhira kusamuka.
  • Kusamuka kukatha, kuchotsa ndondomeko yosakhalitsa. Ndondomeko yoyamba ya HA ikugwira ntchito ndipo chiwerengero chofunikira cha magalasi chimapangidwa.

Choyipa chake ndichakuti njira iyi siyingagwire ntchito ngati muli ndi mizere ikuluikulu kapena zofunikira zocheperako.

Tsopano tiyeni tiwone momwe magulu a RabbitMQ amagwirira ntchito ndi magawo a netiweki.

Kutayika kwa kulumikizana

Ma node a dongosolo logawidwa amalumikizidwa ndi maulalo a netiweki, ndipo maulalo a netiweki amatha ndipo adzachotsedwa. Kuchuluka kwa kuzimitsidwa kumadalira maziko amderalo kapena kudalirika kwa mtambo wosankhidwa. Mulimonse momwe zingakhalire, machitidwe ogawidwa ayenera kuthana nawo. Apanso tili ndi chisankho pakati pa kupezeka ndi kusasinthasintha, ndipo kachiwiri uthenga wabwino ndi wakuti RabbitMQ imapereka njira zonse ziwiri (osati nthawi imodzi).

Ndi RabbitMQ tili ndi zosankha ziwiri zazikulu:

  • Lolani kugawanika koyenera (kugawanika-ubongo). Izi zimatsimikizira kupezeka, koma zingayambitse kutayika kwa deta.
  • Letsani kulekanitsa koyenera. Zitha kubweretsa kutayika kwakanthawi kochepa kutengera momwe makasitomala amalumikizirana ndi gulu. Zitha kupangitsanso kusapezeka kwathunthu mugulu la mfundo ziwiri.

Koma kodi kulekana koyenerera n’chiyani? Apa ndi pamene gulu ligawanika pawiri chifukwa cha kutayika kwa maukonde. Kumbali iliyonse, magalasi amakwezedwa kukhala mbuye, kotero kuti pamapeto pake pamakhala ambuye angapo pozungulira.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 17. Mzere waukulu ndi magalasi awiri, aliyense pa mfundo zosiyana. Ndiye kulephera kwa ma netiweki kumachitika ndipo galasi limodzi limachotsedwa. Node yopatukana ikuwona kuti zina ziwiri zagwa ndipo zimalimbikitsa magalasi ake kwa mbuye. Tsopano tili ndi mizere iwiri ikuluikulu, yolembedwa komanso yowerengeka.

Ngati osindikiza atumiza deta kwa ambuye onse awiri, timakhala ndi makope awiri osiyana a mzerewu.

Mitundu yosiyanasiyana ya RabbitMQ imapereka kupezeka kapena kusasinthika.

Musanyalanyaze mode (zofikira)

Njirayi imatsimikizira kupezeka. Pambuyo pa kutayika kwa kulumikizana, kulekanitsa koyenera kumachitika. Malumikizidwe akabwezeretsedwa, woyang'anira ayenera kusankha kuti apereke gawo liti patsogolo. Mbali yotayika idzayambidwanso ndipo zonse zomwe zasonkhanitsidwa kumbali imeneyo zidzatayika.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 18. Ofalitsa atatu amagwirizana ndi ma broker atatu. Mkati, maguluwa amatumiza zopempha zonse pamzere waukulu pa Broker 2.

Tsopano tikutaya Broker 3. Akuwona kuti ma broker ena agwa ndipo amalimbikitsa galasi lake kwa mbuye. Umu ndi momwe kulekanitsa koyenera kumachitikira.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 19. Kugawanika koyenera (kugawanika-ubongo). Zolemba zimapita m'mizere iwiri ikuluikulu, ndipo makope awiriwo amasiyana.

Kulumikizana kumabwezeretsedwa, koma kulekanitsa koyenera kumatsalira. Woyang'anira ayenera kusankha pamanja mbali yotayika. Pankhani yomwe ili pansipa, woyang'anira akuyambiranso Broker 3. Mauthenga onse omwe sanathe kutumiza atayika.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 20. Woyang'anira amalepheretsa Broker 3.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 21. Woyang'anira akuyamba Broker 3 ndipo amalowa mgulu, kutaya mauthenga onse omwe anasiyidwa pamenepo.

Panthawi ya kutayika kwa kulumikizidwa komanso kubwezeretsedwa kwake, masango ndi mzerewu unalipo kuti uwerenge ndi kulemba.

Autoheal mode

Zimagwira ntchito mofananamo ndi Ignore mode, kupatula kuti gululo lokha limasankha mbali yotayika pambuyo pogawanika ndi kubwezeretsanso kugwirizanitsa. Mbali yotayika imabwerera kumagulu opanda kanthu, ndipo mzerewo umataya mauthenga onse omwe anatumizidwa kumbali imeneyo.

Imani pang'ono Mode

Ngati sitikufuna kulola kugawa koyenera, ndiye kuti njira yathu yokha ndikutaya zowerenga ndi kulemba kumbali yaying'ono pambuyo pa kugawa kwamagulu. Pamene broker akuwona kuti ili kumbali yaying'ono, imayimitsa ntchito, ndiko kuti, imatseka maulumikizidwe onse omwe alipo ndikukana zatsopano. Kamodzi pa sekondi imayang'ana kubwezeretsedwa kwa kulumikizana. Kulumikizana kukabwezeretsedwa, kumayambiranso kugwira ntchito ndikulowa mgululi.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 22. Ofalitsa atatu amagwirizana ndi ma broker atatu. Mkati, maguluwa amatumiza zopempha zonse pamzere waukulu pa Broker 2.

Ma Broker 1 ndi 2 ndiye adagawanika kuchokera ku Broker 3. M'malo molimbikitsa galasi lawo kuti likhale labwino, Broker 3 imayimitsa ndipo imakhala yosapezeka.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 23. Broker 3 ayima, amachotsa makasitomala onse, ndikukana zopempha zolumikizana.

Kulumikizana kukabwezeretsedwa, kumabwerera kumagulu.

Tiyeni tiwone chitsanzo china pomwe mzere waukulu uli pa Broker 3.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 24. Mzere waukulu pa Broker 3.

Ndiye kutayika komweko kwa kulumikizana kumachitika. Broker 3 wayima kaye chifukwa ali mbali yaying'ono. Kumbali ina, ma node amawona kuti Broker 3 wagwa, kotero galasi lakale la Brokers 1 ndi 2 limakwezedwa kuti lidziwe bwino.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 25. Kusintha kwa Broker 2 ngati Broker 3 palibe.

Kulumikizana kukabwezeretsedwa, Broker 3 adzalowa mgululi.

RabbitMQ vs Kafka: Kulekerera Zolakwa ndi Kupezeka Kwapamwamba M'magulu
Mpunga. 26. Tsango labwerera kuntchito yabwino.

Chofunikira kumvetsetsa apa ndikuti timakhala osasinthasintha, koma titha kupezanso kupezeka, ngati Tidzasamutsa makasitomala kumadera ambiri. Nthawi zambiri, ineyo ndimakonda kusankha Pause Minority mode, koma zimatengera momwe zilili.

Kuti muwonetsetse kupezeka, ndikofunikira kuwonetsetsa kuti makasitomala akulumikizana bwino ndi omwe akulandira. Tiyeni tiwone zomwe tingasankhe.

Kuonetsetsa Kulumikizana kwa Makasitomala

Tili ndi zosankha zingapo za momwe tingawalondolere makasitomala ku gawo lalikulu la masango kapena kumalo ogwirira ntchito (node ​​imodzi ikalephera) pambuyo pa kutayika kwa kugwirizana. Choyamba, tiyeni tikumbukire kuti mzere wina umakhala pamalo enaake, koma njira ndi ndondomeko zimabwerezedwa m'malo onse. Makasitomala amatha kulumikizana ndi mfundo iliyonse, ndipo njira zamkati zimawatsogolera komwe akuyenera kupita. Koma node ikayimitsidwa, imakana kulumikizana, kotero makasitomala ayenera kulumikizana ndi mfundo ina. Node ikagwa, palibe chomwe angachite.

Zosankha zathu:

  • Gululi limafikiridwa pogwiritsa ntchito chojambulira chonyamula katundu chomwe chimangoyendayenda mu node ndipo makasitomala amayesanso kulumikiza mpaka atapambana. Ngati node ili pansi kapena kuyimitsidwa, ndiye kuyesa kulumikiza ku mfundoyo kudzalephera, koma zoyesayesa zotsatila zidzapita ku ma seva ena (mozungulira-robin). Izi ndizoyenera kutayika kwakanthawi kochepa kolumikizana kapena seva yotsitsidwa yomwe idzabwezedwe msanga.
  • Pezani gululo kudzera pa cholemetsa cholemetsa ndikuchotsa ma node oimitsidwa / olephera pamndandanda akangodziwika. Ngati tichita izi mwachangu, ndipo ngati makasitomala atha kuyesanso kulumikizana, ndiye kuti tidzakwaniritsa kupezeka kosalekeza.
  • Perekani kasitomala aliyense mndandanda wa ma node onse, ndipo kasitomala amasankha mwachisawawa imodzi mwa izo polumikiza. Ngati ilandila cholakwika poyesa kulumikiza, imasunthira ku node yotsatira pamndandanda mpaka italumikizana.
  • Chotsani kuchuluka kwa magalimoto kumalo olephera / kuyimitsidwa pogwiritsa ntchito DNS. Izi zimachitika pogwiritsa ntchito TTL yaying'ono.

anapezazo

RabbitMQ clustering ili ndi zabwino ndi zovuta zake. Zoyipa zazikulu kwambiri ndi izi:

  • polowa mgulu, mfundo zimataya deta yawo;
  • kuletsa kulunzanitsa kumapangitsa kuti mzere usapezeke.

Zosankha zovuta zonse zimachokera kuzinthu ziwiri zomanga. Ngati RabbitMQ ikhoza kusunga deta pamene masango aphatikizidwanso, ndiye kuti kulunzanitsa kungakhale kofulumira. Ngati ikanatha kusatsekereza kulunzanitsa, imathandizira mizere yayikulu. Kukonza zinthu ziwirizi kungawongolere kwambiri magwiridwe antchito a RabbitMQ ngati ukadaulo wololera zolakwika komanso wopezeka kwambiri wotumizira mauthenga. Ndingakayikire kupangira RabbitMQ ndikuphatikizana muzochitika izi:

  • Network yosadalirika.
  • Kusungira kosadalirika.
  • Mizere yayitali kwambiri.

Zikafika pazokonda zopezeka kwambiri, ganizirani izi:

  • ha-promote-on-failure=always
  • ha-sync-mode=manual
  • cluster_partition_handling=ignore (kapena autoheal)
  • mauthenga olimbikira
  • onetsetsani kuti makasitomala akulumikizana ndi mfundo yogwira ntchito pamene mfundo zina zalephera

Pakufanana (chitetezo cha data), ganizirani zokonda zotsatirazi:

  • Wosindikiza Akutsimikizira ndi Kuyamikira Pamanja kumbali ya ogula
  • ha-promote-on-failure=when-synced, ngati ofalitsa angayesenso pambuyo pake ndipo ngati muli ndi malo osungira odalirika kwambiri! Apo ayi ikani =always.
  • ha-sync-mode=automatic (koma pamzere wawukulu wosagwira ntchito, njira yamanja ingafunike; ganiziraninso ngati kusapezeka kungapangitse kuti mauthenga atayike)
  • Imani kaimidwe ka Ochepa
  • mauthenga olimbikira

Sitinafotokoze nkhani zonse za kulolera zolakwika ndi kupezeka kwakukulu; mwachitsanzo, momwe mungapangire njira zoyang'anira mosamala (monga kusinthira zosintha). Tiyeneranso kulankhula za federal ndi pulogalamu yowonjezera ya Fosholo.

Ngati china chilichonse ndaphonya, chonde ndidziwitseni.

Onaninso wanga positi, komwe ndimapanga zowononga gulu la RabbitMQ pogwiritsa ntchito Docker ndi Blockade kuyesa zina mwazomwe zatayika uthenga zomwe zafotokozedwa m'nkhaniyi.

Nkhani zam'mbuyo zamndandanda:
No. 1 - habr.com/ru/company/itsuma/blog/416629
No. 2 - habr.com/ru/company/itsuma/blog/418389
No. 3 - habr.com/ru/company/itsuma/blog/437446

Source: www.habr.com

Kuwonjezera ndemanga