RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd

В an artaigil mu dheireadh choimhead sinn air cruinneachadh RabbitMQ airson fulangas sgàinidhean agus ruigsinneachd àrd. A-nis leig dhuinn cladhach gu domhainn a-steach do Apache Kafka.

An seo is e an aonad mac-samhail an sgaradh. Tha aon earrann no barrachd aig gach cuspair. Tha stiùiriche aig gach roinn le luchd-leantainn no às aonais. Nuair a bhios tu a’ cruthachadh cuspair, bidh thu a’ sònrachadh an àireamh de phàirtean agus an co-èifeachd mac-samhail. Is e an luach àbhaisteach 3, a tha a’ ciallachadh trì mac-samhail: aon stiùiriche agus dà neach-leantainn.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 1. Tha ceithir earrannan air an sgaoileadh am measg trì brocairean

Bidh a h-uile iarrtas leughaidh is sgrìobhaidh a’ dol chun stiùiriche. Bidh luchd-leantainn bho àm gu àm a’ cur iarrtasan chun stiùiriche gus na teachdaireachdan as ùire fhaighinn. Cha bhi luchd-cleachdaidh uair sam bith a’ tionndadh gu luchd-leantainn; chan eil an fheadhainn mu dheireadh ann ach airson call dreuchd agus fulangas lochdan.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd

Fàilligeadh sgaradh

Nuair a dh'fhàillig broker, bidh stiùirichean grunn earrannan gu tric a 'fàilligeadh. Anns gach fear dhiubh, bidh neach-leantainn bho nód eile gu bhith na stiùiriche. Gu dearbh, chan eil seo fìor an-còmhnaidh, leis gu bheil buaidh aig a’ bhàillidh sioncronaidh cuideachd: a bheil luchd-leantainn sioncronaich ann, agus mura h-eil, an uairsin a bheil e ceadaichte atharrachadh gu mac-samhail neo-shioncronaichte. Ach na dèanamaid cùisean iom-fhillte airson an-dràsta.

Bidh Broker 3 a’ fàgail an lìonra, agus tha stiùiriche ùr air a thaghadh airson earrann 2 aig broker 2.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 2. Bidh Broker 3 a’ bàsachadh agus tha an neach-leantainn aige air broker 2 air a thaghadh mar stiùiriche ùr sgaradh 2

An uairsin bidh broker 1 a ’fàgail agus earrann 1 cuideachd a’ call an stiùiriche aige, aig a bheil dreuchd a ’dol gu broker 2.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 3. Tha aon broker air fhàgail. Tha a h-uile stiùiriche air aon broker le call dreuchd sam bith

Nuair a thig broker 1 air ais air-loidhne, bidh e a’ cur ceithir luchd-leantainn ris, a’ toirt beagan call do gach sgaradh. Ach bha na stiùirichean uile fhathast air broker 2.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 4. Bidh stiùirichean a 'fuireach air broker 2

Nuair a thig broker 3 suas, tha sinn air ais gu trì mac-samhail airson gach sgaradh. Ach tha na stiùirichean uile fhathast air broker 2.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 5. Suidheachadh neo-chothromach de stiùirichean an dèidh ath-nuadhachadh brocairean 1 agus 3

Tha inneal aig Kafka airson ath-chothromachadh stiùirichean nas fheàrr na RabbitMQ. An sin, bha agad ri plugan no sgriobt treas-phàrtaidh a chleachdadh a dh’ atharraich na poileasaidhean airson a bhith ag imrich a’ phrìomh nód le bhith a’ lughdachadh call obrach aig àm imrich. A bharrachd air an sin, airson ciudhaichean mòra bha againn ri gabhail ris nach robh sin ri fhaighinn aig àm sioncronaidh.

Tha bun-bheachd aig Kafka air “mac-samhail as fheàrr leotha” airson dreuchd an stiùiriche. Nuair a thèid sgaraidhean cuspair a chruthachadh, bidh Kafka a’ feuchainn ri stiùirichean a sgaoileadh gu cothromach thairis air nodan agus a’ comharrachadh na ciad stiùirichean sin mar as fheàrr leotha. Thar ùine, mar thoradh air ath-ghluasadan frithealaiche, fàilligeadh, agus briseadh ceangail, faodaidh stiùirichean tighinn gu crìch air nodan eile, mar anns a’ chùis fhìor a chaidh a mhìneachadh gu h-àrd.

Gus seo a chàradh, tha Kafka a’ tabhann dà roghainn:

  • Roghainn auto.leader.rebalance.enable=fìor a’ leigeil leis an nòta smachd stiùirichean ath-shònrachadh gu fèin-ghluasadach gu mac-samhail as fheàrr leotha agus mar sin cuairteachadh èideadh a thoirt air ais.
  • Faodaidh an rianaire an sgriobt a ruith kafka-preferred-mac-samhail-taghaidh.sh airson ath-shuidheachadh làimhe.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 6. Ath-bhualaidhean às deidh ath-chothromachadh

B 'e dreach nas sìmplidhe den fhàilligeadh a bha seo, ach tha an fhìrinn nas iom-fhillte, ged nach eil dad ro iom-fhillte an seo. Tha e uile an urra ri mac-samhail sioncronaich (In-Sync Replicas, ISR).

Mac-samhail sioncronaich (ISR)

Tha ISR na sheata de mhac-samhail de sgaradh a thathas a’ meas mar “sioncronaichte” (in-sync). Tha stiùiriche ann, ach is dòcha nach eil luchd-leantainn ann. Thathas den bheachd gu bheil neach-leantainn air a shioncronachadh ma tha e air leth-bhreacan mionaideach a dhèanamh de theachdaireachdan an stiùiriche gu lèir mus tig an ùine gu crìch mac-samhail.lag.time.max.ms.

Thèid neach-leantainn a thoirt air falbh bhon t-seata ISR ma tha:

  • cha do rinn e iarrtas airson taghadh airson an eadar-ama mac-samhail.lag.time.max.ms (air a mheas marbh)
  • cha deach aige air ùrachadh san eadar-ama mac-samhail.lag.time.max.ms (air a mheas slaodach)

Bidh luchd-leantainn a’ dèanamh iarrtasan samplachaidh san eadar-ama mac-samhail.fetch.wait.max.ms, a thig gu 500ms.

Gus adhbhar ISR a mhìneachadh gu soilleir, feumaidh sinn coimhead air dearbhaidhean bhon riochdaire agus cuid de shuidheachaidhean fàilligeadh. Faodaidh riochdairean taghadh cuin a chuireas am broker dearbhadh:

  • acks=0, cha deach dearbhadh a chur
  • acks=1, thèid dearbhadh a chuir às deidh don stiùiriche teachdaireachd a sgrìobhadh chun loga ionadail aige
  • acks=all, thèid dearbhadh a chuir às deidh a h-uile mac-samhail san ISR am brath a sgrìobhadh gu na logaichean ionadail

Ann am briathrachas Kafka, ma tha an ISR air teachdaireachd a shàbhaladh, tha e “dealasach”. Is e Acks=uile an roghainn as sàbhailte, ach cuiridh e dàil a bharrachd ris cuideachd. Bheir sinn sùil air dà eisimpleir de dh’ fhàilligeadh agus mar a tha na diofar roghainnean ‘acks’ ag eadar-obrachadh le bun-bheachd an ISR.

Acks=1 agus ISR

Anns an eisimpleir seo, chì sinn mura fuirich an stiùiriche gus a h-uile teachdaireachd bhon luchd-leantainn gu lèir a shàbhaladh, tha e comasach call dàta ma dh’ fhàillig an stiùiriche. Faodar seòladh gu neach-leantainn neo-shioncronachadh a chomasachadh no a chiorramachadh le bhith a’ suidheachadh neo-ghlan.ceannard.taghaidh.comas.

San eisimpleir seo, tha an luach acks = 1 aig an neach-dèanamh. Tha an roinn air a sgaoileadh thairis air na trì brocairean. Tha Broker 3 air dheireadh, rinn e sioncronadh leis an stiùiriche o chionn ochd diogan agus tha e a-nis 7456 teachdaireachdan air dheireadh. Cha robh Broker 1 ach aon diog air dheireadh. Bidh an riochdaire againn a’ cur teachdaireachd agus a ’faighinn ack air ais gu sgiobalta, às aonais cus luchd-leantainn slaodach no marbh nach eil an stiùiriche a’ feitheamh.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 7. ISR le trì mac-samhail

Bidh Broker 2 a 'fàilligeadh agus gheibh an riochdaire mearachd ceangail. Às deidh ceannas a dhol gu broker 1, bidh sinn a’ call teachdaireachdan 123. Bha an neach-leantainn air broker 1 na phàirt den ISR, ach cha robh e air a shioncronachadh gu tur leis an stiùiriche nuair a thuit e.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 8. Tha teachdaireachdan air chall nuair a thuiteas e

Ann an rèiteachadh bootstrap.server Tha grunn brocairean air an liostadh aig an neach-dèanamh agus faodaidh iad faighneachd dha broker eile cò a tha na stiùiriche roinne ùr. Bidh e an uairsin a’ stèidheachadh ceangal ri broker 1 agus a’ leantainn air adhart a’ cur teachdaireachdan.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 9. Cuir teachdaireachdan ath-thòiseachadh às deidh briseadh goirid

Tha Broker 3 eadhon nas fhaide air dheireadh. Bidh e a’ faighinn iarrtasan ach chan urrainn dha sioncranachadh. Dh'fhaodadh seo a bhith mar thoradh air ceangal lìonra slaodach eadar brocairean, cùis stòraidh, msaa Tha e air a thoirt air falbh bhon ISR. A-nis tha an ISR air a dhèanamh suas de aon mhac-samhail - an stiùiriche! Bidh an neach-dèanamh a’ leantainn air adhart a’ cur teachdaireachdan agus a’ faighinn dearbhaidhean.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 10. Tha neach-leantainn air broker 3 air a thoirt air falbh bhon ISR

Bidh Broker 1 a ’dol sìos agus tha an dreuchd stiùiridh a’ dol gu broker 3 le call teachdaireachdan 15286! Bidh an neach-dèanamh a’ faighinn teachdaireachd mearachd ceangail. Cha robh e comasach gluasad gu stiùiriche taobh a-muigh an ISR ach air sgàth an t-suidheachaidh unclean.leader.election.enable=fìor. Ma tha e air a stàladh ann an ceàrr, an uairsin cha bhiodh an gluasad a’ tachairt agus bhiodh a h-uile iarrtas leughaidh is sgrìobhaidh air a dhiùltadh. Anns a 'chùis seo, bidh sinn a' feitheamh ri broker 1 tilleadh leis an dàta slàn aige anns a 'mhac-samhail, a ghabhas thairis air ceannas a-rithist.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 11. Bidh Broker 1 a 'tuiteam. Nuair a thachras fàilligeadh, thèid àireamh mhòr de theachdaireachdan a chall

Bidh an riochdaire a 'stèidheachadh ceangal ris a' bhròcair mu dheireadh agus a 'faicinn gu bheil e a-nis na cheannard air an roinn. Bidh e a’ tòiseachadh a’ cur teachdaireachdan gu broker 3.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 12. Às deidh briseadh goirid, thèid teachdaireachdan a chuir a-rithist gu earrann 0

Chunnaic sinn, a bharrachd air briseadh goirid gus ceanglaichean ùra a stèidheachadh agus stiùiriche ùr a lorg, gu robh an neach-dèanamh an-còmhnaidh a’ cur teachdaireachdan. Bidh an rèiteachadh seo a’ dèanamh cinnteach gu bheil e ri fhaighinn aig cosgais cunbhalachd (tèarainteachd dàta). Chaill Kafka na mìltean de theachdaireachdan ach lean i a’ gabhail ri sgrìobhaidhean ùra.

Acks = a h-uile agus ISR

Dèanamaid an suidheachadh seo a-rithist a-rithist, ach le aic = uile. Tha latency cuibheasach de cheithir diogan aig Broker 3. Bidh an neach-dèanamh a’ cur teachdaireachd le aic = uile, agus a-nis chan eil e a’ faighinn freagairt sgiobalta. Tha an ceannard a’ feitheamh ris an teachdaireachd a bhith air a shàbhaladh leis a h-uile mac-samhail san ISR.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 13. ISR le trì mac-samhail. Tha aon dhiubh slaodach, agus mar thoradh air sin bidh dàil ann a bhith a’ clàradh

Às deidh ceithir diogan de dhàil a bharrachd, bidh broker 2 a ’cur ack. Tha a h-uile mac-samhail a-nis air ùrachadh gu h-iomlan.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 14. All mac-samhail teachdaireachdan a shàbhaladh agus a chur ack

Tha Broker 3 a-nis a’ tuiteam nas fhaide air dheireadh agus ga thoirt air falbh bhon ISR. Tha latency air a lughdachadh gu mòr leis nach eil mac-samhail slaodach air fhàgail san ISR. Chan eil Broker 2 a-nis a’ feitheamh ach ri broker 1, agus tha lag cuibheasach aige de 500 ms.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 15. Tha am mac-samhail air broker 3 air a thoirt air falbh bhon ISR

An uairsin bidh broker 2 a ’tuiteam agus bidh ceannas a’ dol gu broker 1 gun a bhith a ’call teachdaireachdan.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 16. Bidh Broker 2 a 'tuiteam

Bidh an neach-dèanamh a’ lorg stiùiriche ùr agus a’ tòiseachadh a’ cur teachdaireachdan thuige. Tha an latency air a lughdachadh tuilleadh leis gu bheil an ISR a-nis air a dhèanamh suas de aon mhac-samhail! Mar sin an roghainn aic = uile chan eil e a’ cur cus obrach ris.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 17. Bidh mac-samhail air broker 1 a 'toirt stiùir gun a bhith a' call teachdaireachdan

An uairsin bidh broker 1 a ’tuiteam agus tha an stiùir a’ dol gu broker 3 le call teachdaireachdan 14238!

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 18. Bidh Broker 1 a’ bàsachadh agus tha gluasad ceannardais le suidheachadh neòghlan a’ leantainn gu call dàta farsaing

Cha b' urrainn dhuinn an roghainn a stàladh neo-ghlan.ceannard.taghaidh.comas ann an ciall fìor. Gu gnàthach tha e co-ionann ceàrr. Suidhichidhean aic = uile с unclean.leader.election.enable=fìor a’ toirt ruigsinneachd le beagan tèarainteachd dàta a bharrachd. Ach mar a chì thu, faodaidh sinn fhathast teachdaireachdan a chall.

Ach dè ma tha sinn airson tèarainteachd dàta àrdachadh? Faodaidh tu a chuir unclean.leader.election.enable = meallta, ach chan fheum seo ar dìon bho chall dàta. Ma thuit an stiùiriche gu cruaidh agus gun tug e an dàta leis, tha teachdaireachdan fhathast air chall, agus tha cothrom air chall gus an cuir an rianaire an suidheachadh air ais.

Tha e nas fheàrr dèanamh cinnteach nach eil feum air a h-uile teachdaireachd, agus air dhòigh eile cuir às don chlàradh. An uairsin, co-dhiù bho shealladh a 'bhròcair, chan eil call dàta comasach ach ma dh' fhàillig dà no barrachd aig an aon àm.

Acks=all, min.insync.replicas agus ISR

Le rèiteachadh cuspair mion.insync.mac-samhail Tha sinn ag àrdachadh ìre tèarainteachd dàta. Rachamaid tron ​​​​phàirt mu dheireadh den t-suidheachadh roimhe a-rithist, ach an turas seo le min.insync.replicas=2.

Mar sin tha mac-samhail de stiùiriche aig broker 2 agus tha an neach-leantainn air broker 3 air a thoirt air falbh bhon ISR.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 19. ISR bho dhà mhac-samhail

Bidh Broker 2 a 'tuiteam agus bidh ceannas a' dol gu broker 1 gun a bhith a 'call teachdaireachdan. Ach a-nis chan eil anns an ISR ach aon mhac-samhail. Chan eil seo a’ coinneachadh ris an àireamh as lugha airson clàran fhaighinn, agus mar sin bidh am broker a’ freagairt an oidhirp sgrìobhaidh le mearachd Chan eil gu leòr mac-samhail.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 20. Tha an àireamh de ISRan aon nas ìsle na chaidh a shònrachadh ann am min.insync.replicas

Bidh an rèiteachadh seo ag ìobairt ruigsinneachd airson cunbhalachd. Mus aithnich sinn teachdaireachd, bidh sinn a’ dèanamh cinnteach gu bheil e sgrìobhte gu co-dhiù dà mhac-samhail. Bheir seo tòrr a bharrachd misneachd don neach-dèanamh. An seo, chan eil call teachdaireachd comasach ach ma dh’ fhailicheas dà mhac-samhail aig an aon àm ann an ùine ghoirid gus an tèid an teachdaireachd ath-aithris gu neach-leantainn a bharrachd, rud nach eil coltach. Ach ma tha thu anabarrach paranoideach, faodaidh tu am bàillidh mac-samhail a shuidheachadh gu 5, agus mion.insync.mac-samhail le 3. An seo feumaidh trì brocairean tuiteam aig an aon àm gus an clàr a chall! Gu dearbh, bidh thu a 'pàigheadh ​​​​airson an earbsa seo ann an latency a bharrachd.

Nuair a tha ruigsinneachd riatanach airson tèarainteachd dàta

Mar ann an cùis le RabbitMQ, uaireannan tha ruigsinneachd riatanach airson tèarainteachd dàta. Seo na dh'fheumas tu smaoineachadh:

  • Am faod am foillsichear dìreach mearachd a thilleadh agus an t-seirbheis shuas an abhainn no an cleachdaiche feuchainn a-rithist nas fhaide air adhart?
  • Am faod am foillsichear an teachdaireachd a shàbhaladh gu h-ionadail neo ann an stòr-dàta gus feuchainn ris a-rithist nas anmoiche?

Mura h-eil am freagairt, an uairsin leasaichidh àrdachadh ruigsinneachd ruigsinneachd tèarainteachd dàta. Caillidh tu nas lugha de dhàta ma roghnaicheas tu ruigsinneachd an àite gun a bhith a’ clàradh. Mar sin, tha e uile an urra ri cothromachadh a lorg, agus tha an co-dhùnadh an urra ris an t-suidheachadh sònraichte.

Tha brìgh an ISR

Leigidh an t-sreath ISR dhut an cothromachadh as fheàrr a thaghadh eadar tèarainteachd dàta agus latency. Mar eisimpleir, dèan cinnteach gum bi cothrom ann ma dh’ fhàillig a’ mhòr-chuid de mhac-samhail, a’ lughdachadh buaidh mac-samhail marbh no slaodach a thaobh latency.

Bidh sinn a’ taghadh an ciall sinn fhìn mac-samhail.lag.time.max.ms a rèir do fheumalachdan. Gu bunaiteach, tha am paramadair seo a’ ciallachadh dè an dàil a tha sinn deònach gabhail ris cuin aic = uile. Is e an luach bunaiteach deich diogan. Ma tha seo ro fhada dhut, faodaidh tu a lughdachadh. An uairsin bidh tricead atharrachaidhean san ISR ag àrdachadh, oir thèid luchd-leantainn a thoirt air falbh agus a chuir ris nas trice.

Is e dìreach seata de sgàthan a th’ ann an RabbitMQ a dh’ fheumar ath-riochdachadh. Bidh sgàthan slaodach a’ toirt a-steach latency a bharrachd, agus faodaidh sgàthan marbh feitheamh gus am bi na pacaidean a nì sgrùdadh air na tha ri fhaighinn de gach nód (cuir diog) gus freagairt. Tha ISR na dhòigh inntinneach air na cùisean latency sin a sheachnadh. Ach tha cunnart ann gun caill sinn ar dreuchd leis nach urrainn don ISR ach crìonadh chun cheannard. Gus an cunnart seo a sheachnadh, cleachd an suidheachadh mion.insync.mac-samhail.

Gealladh ceangail teachdaiche

Ann an roghainnean bootstrap.server faodaidh riochdaire agus neach-cleachdaidh grunn brocairean a shònrachadh airson teachdaichean a cheangal. Is e am beachd, nuair a thèid aon nód sìos, gu bheil grunnan a bharrachd air fhàgail leis an urrainn don neach-dèiligidh ceangal fhosgladh. Chan e gu riatanach a tha seo nan stiùirichean earrannan, ach dìreach mar chlàr airson luchdachadh an toiseach. Faodaidh an neach-dèiligidh faighneachd dhaibh dè an nód a tha a’ toirt aoigheachd don stiùiriche sgaradh leughaidh / sgrìobhaidh.

Ann an RabbitMQ, faodaidh teachdaichean ceangal a dhèanamh ri nód sam bith, agus bidh slighe a-staigh a’ cur an iarrtas gu far am feum e a dhol. Tha seo a’ ciallachadh gun urrainn dhut cothromachadh luchdan a chuir a-steach air beulaibh RabbitMQ. Tha Kafka ag iarraidh air teachdaichean ceangal ris an nód a tha a’ toirt aoigheachd don stiùiriche sgaradh co-fhreagarrach. Ann an suidheachadh mar sin, chan urrainn dhut cothromachadh luchdan a stàladh. Liosta bootstrap.server Tha e deatamach gum faigh teachdaichean cothrom air agus lorg na nodan ceart às deidh dhaibh fàiligeadh.

Ailtireachd Kafka Consensus

Gu ruige seo, chan eil sinn air beachdachadh air mar a tha am buidheann ag ionnsachadh mu tuiteam a’ bhròcair agus mar a thèid ceannard ùr a thaghadh. Gus tuigse fhaighinn air mar a tha Kafka ag obair le sgaraidhean lìonra, feumaidh tu an toiseach ailtireachd co-aontachd a thuigsinn.

Tha gach buidheann Kafka air a chleachdadh còmhla ri cruinneachadh Zookeeper, a tha na sheirbheis co-aontachd sgaoilte a leigeas leis an t-siostam co-aontachd a ruighinn air cuid de stàite sònraichte, a’ toirt prìomhachas do sheasmhachd a thaobh ruigsinneachd. Tha feum air cead bho mhòr-chuid de nodan Zookeeper gus cead a thoirt do ghnìomhachd leughaidh is sgrìobhaidh.

Bidh Zookeeper a’ stòradh staid a’ bhraisle:

  • Liosta de chuspairean, earrannan, rèiteachadh, mac-samhail stiùiriche gnàthach, mac-samhail as fheàrr leotha.
  • Buill bho bhuidheann. Bidh gach broker a’ ping am buidheann Zookeeper. Mura faigh e ping taobh a-staigh ùine shònraichte, bidh Zookeeper a’ clàradh am broker mar nach eil e ri fhaighinn.
  • A’ taghadh na prìomh nodan agus na nodan a bharrachd airson an rianadair.

Is e an nód smachd aon de na brocairean Kafka a tha an urra ri bhith a’ taghadh stiùirichean mac-samhail. Bidh Zookeeper a’ cur fios chun rianadair mu bhallrachd brabhsair agus atharrachaidhean cuspaireil, agus feumaidh an rianadair na h-atharrachaidhean sin a chuir an gnìomh.

Mar eisimpleir, gabhamaid cuspair ùr le deich sgaraidhean agus factar ath-aithris de 3. Feumaidh an rianadair stiùiriche a thaghadh airson gach sgaradh, a’ feuchainn ri stiùirichean a sgaoileadh gu dòigheil am measg nam brocairean.

Airson gach roinn smachd:

  • ag ùrachadh fiosrachadh ann an Zookeeper mu ISR agus ceannard;
  • A ’cur LeaderAndISRCommand gu gach broker a bhios a’ cumail mac-samhail den sgaradh seo, ag innse dha na brocairean mun ISR agus an stiùiriche.

Nuair a thuiteas broker le stiùiriche, bidh Zookeeper a ’cur fios chun rianadair, agus bidh e a’ taghadh stiùiriche ùr. A-rithist, bidh an rianadair ag ùrachadh Zookeeper an-toiseach agus an uairsin a’ cur àithne gu gach broker ag innse dhaibh mun atharrachadh ceannais.

Tha uallach air gach ceannard airson ISRn fhastadh. Suidhichidhean mac-samhail.lag.time.max.ms co-dhùnadh cò thèid a-steach ann. Nuair a dh’ atharraicheas an ISR, bidh an stiùiriche a’ sgaoileadh fiosrachadh ùr gu Zookeeper.

Thathas an-còmhnaidh ag innse do Zookeeper mu atharrachaidhean sam bith gus am bi an riaghladh a’ gluasad gu rèidh gu stiùiriche ùr ma dh’ fhàillig e.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 21. Co-aonta Kafka

Pròtacal ath-riochdachadh

Cuidichidh tu le bhith a’ tuigsinn mion-fhiosrachadh mu ath-riochdachadh thu gus suidheachaidhean call dàta a dh’ fhaodadh a bhith nas fheàrr a thuigsinn.

Ceistean samplachaidh, Log End Offset (LEO) agus Comharra Highwater (HW)

Bha sinn den bheachd gum biodh luchd-leantainn bho àm gu àm a’ cur iarrtasan fetch chun stiùiriche. Is e an eadar-ama bunaiteach 500ms. Tha seo eadar-dhealaichte bho RabbitMQ leis nach ann leis an sgàthan ciudha a thòisicheas mac-samhail RabbitMQ ach leis a’ mhaighstir. Bidh am maighstir a 'putadh atharrachaidhean air na sgàthan.

Bidh an stiùiriche agus a h-uile neach-leantainn a’ sàbhaladh an leubail Log End Offset (LEO) agus Highwater (HW). Bidh an comharra LEO a’ stòradh co-chothromachadh na teachdaireachd mu dheireadh anns a’ mhac-samhail ionadail, agus tha an HW a’ cumail an aghaidh a’ gheallaidh mu dheireadh. Cuimhnich, airson inbhe gealltanas, gum feumar an teachdaireachd a leantainn thairis air a h-uile mac-samhail den ISR. Tha seo a 'ciallachadh gu bheil LEO mar as trice beagan air thoiseach air HW.

Nuair a gheibh an stiùiriche teachdaireachd, bidh e ga stòradh gu h-ionadail. Bidh an neach-leantainn a’ dèanamh iarrtas fetch le bhith a’ cur a LEO air adhart. Bidh an stiùiriche an uairsin a’ cur baidse de theachdaireachdan a ’tòiseachadh bhon LEO seo agus cuideachd a’ sgaoileadh an HW gnàthach. Nuair a gheibh an stiùiriche fiosrachadh gu bheil a h-uile mac-samhail air an teachdaireachd a stòradh aig a’ chothromachadh a chaidh a thoirt seachad, gluaisidh e an comharra HW. Is e dìreach an stiùiriche as urrainn an HW a ghluasad, agus mar sin bidh fios aig a h-uile neach-leantainn air an luach làithreach anns na freagairtean don iarrtas aca. Tha seo a’ ciallachadh gum faodadh luchd-leantainn a bhith air dheireadh air an stiùiriche ann an eòlas teachdaireachd agus HW. Bidh luchd-cleachdaidh a’ faighinn teachdaireachdan dìreach suas chun HW gnàthach.

Thoir an aire gu bheil “leanmhainn” a’ ciallachadh sgrìobhte gu cuimhne, chan ann gu diosc. Airson coileanadh, bidh Kafka a’ sioncronadh gu diosc aig àm sònraichte. Tha an leithid de eadar-ama aig RabbitMQ cuideachd, ach cuiridh e aithne chun fhoillsichear dìreach às deidh don mhaighstir agus na sgàthan uile an teachdaireachd a sgrìobhadh gu diosc. Cho-dhùin luchd-leasachaidh Kafka, airson adhbharan dèanadais, ad a chuir cho luath ‘s a thèid an teachdaireachd a sgrìobhadh gu cuimhne. Tha Kafka a’ geall gu bheil call dreuchd a’ cuir an aghaidh a’ chunnart gun tèid teachdaireachdan aithnichte a stòradh mar chuimhneachan a-mhàin.

Fàilligeadh an stiùiriche

Nuair a thuiteas stiùiriche, bheir Zookeeper fios don rianadair, agus taghaidh e mac-samhail stiùiriche ùr. Bidh an stiùiriche ùr a’ suidheachadh comharra HW ùr a rèir an LEO aige. Gheibh luchd-leantainn an uairsin fiosrachadh mun stiùiriche ùr. A rèir an dreach de Kafka, taghaidh an neach-leantainn aon de dhà shuidheachadh:

  1. Gearraidh e an loga ionadail gu HW aithnichte agus cuiridh e iarrtas chun stiùiriche ùr airson teachdaireachdan às deidh a’ chomharra seo.
  2. Cuiridh e iarrtas chun stiùiriche gus faighinn a-mach an HW aig an àm a chaidh a thaghadh mar stiùiriche, agus an uairsin gearraidh e an log chun chothromachadh seo. Tòisichidh e an uairsin a’ dèanamh iarrtasan lorg bho àm gu àm a’ tòiseachadh aig a’ chothromachadh seo.

Is dòcha gum feum neach-leantainn an log a ghearradh sìos airson na h-adhbharan a leanas:

  • Nuair a dh'fhàilligeas ceannard, bidh a' chiad neach-leantainn san t-seata ISR a tha clàraichte le Zookeeper a' buannachadh an taghaidh agus bidh e na cheannard. Is dòcha nach d’ fhuair a h-uile neach-leantainn air ISR, ged a chaidh a mheas “ann an sioncranachadh,” leth-bhreacan de na teachdaireachdan bhon t-seann stiùiriche. Tha e gu tur comasach nach eil an leth-bhreac as ùire aig an neach-leantainn ainmeil. Bidh Kafka a’ dèanamh cinnteach nach eil eadar-dhealachadh eadar mac-samhail. Mar sin, gus eadar-dhealachaidhean a sheachnadh, feumaidh gach neach-leantainn a loga a ghearradh gu luach HW an stiùiriche ùr aig àm an taghaidh aige. Is e seo adhbhar eile airson suidheachadh aic = uile cho cudromach airson cunbhalachd.
  • Bidh teachdaireachdan air an sgrìobhadh gu diosc bho àm gu àm. Ma dh’ fhailicheas a h-uile nod cnuasachaidh aig an aon àm, thèid mac-samhail le diofar lasachaidhean a stòradh air na diosgan. Tha e comasach nuair a thig brocairean air ais air-loidhne, gum bi an stiùiriche ùr a thèid a thaghadh air cùl a luchd-leanmhainn leis gun deach a shàbhaladh gu diosc ro chàch.

Ath-choinneachadh leis a’ bhuidheann

Nuair a thig iad a-steach don bhuidheann a-rithist, bidh na mac-samhail a’ dèanamh an aon rud ri nuair a dh’fhailicheas ceannard: bidh iad a’ sgrùdadh mac-samhail an stiùiriche agus a’ gearradh an loga chun HW aige (aig àm an taghaidh). An coimeas ri sin, bidh RabbitMQ a’ làimhseachadh nodan ath-aonaichte mar rud gu tur ùr. Anns an dà chùis, bidh am broker a ’toirt air falbh stàit sam bith a tha ann mar-thà. Ma thèid sioncronadh fèin-ghluasadach a chleachdadh, feumaidh am maighstir an t-susbaint gnàthach gu lèir ath-riochdachadh don sgàthan ùr ann an dòigh “leig leis an t-saoghal feitheamh”. Cha bhith am maighstir a’ gabhail ri gnìomhachd leughaidh no sgrìobhaidh sam bith rè na h-obrach seo. Tha an dòigh-obrach seo ag adhbhrachadh dhuilgheadasan ann an ciudhaichean mòra.

Is e log sgaoilte a th’ ann an Kafka, agus san fharsaingeachd bidh e a’ stòradh barrachd theachdaireachdan na ciudha RabbitMQ, far a bheil dàta air a thoirt a-mach às a’ chiudha às deidh a leughadh. Bu chòir ciudhaichean gnìomhach fuireach an ìre mhath beag. Ach tha Kafka na log leis a’ phoileasaidh gleidhidh aige fhèin, a dh’ fhaodas ùine de làithean no seachdainean a shuidheachadh. Tha an dòigh bacaidh ciudha agus làn shioncronachadh gu tur eu-comasach airson log sgaoilte. An àite sin, bidh luchd-leantainn Kafka dìreach a’ gearradh an loga gu HW an stiùiriche (aig àm an taghaidh) ma tha an leth-bhreac aca air thoiseach air an stiùiriche. Anns a ’chùis as coltaiche, nuair a tha an neach-leantainn air dheireadh, bidh e dìreach a’ tòiseachadh a ’dèanamh iarrtasan fetch a’ tòiseachadh leis an LEO gnàthach aige.

Bidh luchd-leantainn ùr no ath-thòisich a’ tòiseachadh taobh a-muigh an ISR agus chan eil iad a’ gabhail pàirt ann an geallaidhean. Bidh iad dìreach ag obair còmhla ris a 'chuantal, a' faighinn teachdaireachdan cho luath 's as urrainn dhaibh gus an tèid iad suas leis an stiùiriche agus a dhol a-steach don ISR. Chan eil glasadh a-steach agus chan eil feum air an dàta agad gu lèir a thilgeil air falbh.

A 'call ceangal

Tha barrachd phàirtean aig Kafka na RabbitMQ, agus mar sin tha seata giùlain nas iom-fhillte aige nuair a thèid an cruinneachadh a dhì-cheangal. Ach chaidh Kafka a dhealbhadh an toiseach airson cruinneachaidhean, agus mar sin thathas a’ smaoineachadh gu math air na fuasglaidhean.

Gu h-ìosal tha grunn shuidheachaidhean fàilligeadh ceangail:

  • Scenario 1: Chan fhaic an neach-leantainn an stiùiriche, ach tha e fhathast a’ faicinn an Zookeeper.
  • Scenario 2: Chan eil an stiùiriche a’ faicinn luchd-leantainn sam bith, ach tha e fhathast a’ faicinn Zookeeper.
  • Scenario 3: Bidh an neach-leantainn a’ faicinn an stiùiriche, ach chan fhaic e an Zookeeper.
  • Scenario 4: Bidh an ceannard a 'faicinn an luchd-leantainn, ach chan eil e a' faicinn an Zookeeper.
  • Scenario 5: Tha an neach-leantainn gu tur eadar-dhealaichte bhon dà nod Kafka eile agus Zookeeper.
  • Scenario 6: Tha an stiùiriche gu tur eadar-dhealaichte bhon dà nod Kafka eile agus Zookeeper.
  • Scenario 7: Chan fhaic nód smachd Kafka nód Kafka eile.
  • Scenario 8: Chan eil rianadair Kafka a’ faicinn Zookeeper.

Tha a ghiùlan fhèin aig gach suidheachadh.

Scenario 1: Chan eil an neach-leantainn a’ faicinn an stiùiriche, ach tha e fhathast a’ faicinn Zookeeper

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 22. Sealladh 1: ISR de thrì mac-samhail

Tha an teip ceangail a’ sgaradh broker 3 bho brocairean 1 agus 2, ach chan ann bho Zookeeper. Chan urrainn dha Broker 3 iarrtasan iarraidh a chuir a-steach tuilleadh. Às deidh ùine seachad mac-samhail.lag.time.max.ms tha e air a thoirt air falbh bhon ISR agus chan eil e a’ gabhail pàirt ann an geallaidhean teachdaireachd. Aon uair ‘s gu bheil an ceangal air ath-nuadhachadh, tòisichidh e a’ faighinn iarrtasan agus a-steach don ISR nuair a ghlacas e suas leis an stiùiriche. Leanaidh Zookeeper a’ faighinn pings agus a’ gabhail ris gu bheil am broker beò agus gu math.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 23. Suidheachadh 1: Thèid am broker a thoirt a-mach às an ISR mura faighear iarrtas bhuaithe taobh a-staigh na h-ùine replica.lag.time.max.ms

Chan eil sgoltadh eanchainn no casg nòta mar ann an RabbitMQ. An àite sin, tha call obrach air a lughdachadh.

Scenario 2: Chan fhaic Leader neach-leantainn sam bith, ach tha e fhathast a’ faicinn Zookeeper

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 24. Senario 2. Ceannard agus dithis luchd-leantainn

Tha briseadh ann an ceangal lìonra a 'sgaradh an stiùiriche bhon luchd-leantainn, ach faodaidh am broker fhathast Zookeeper fhaicinn. Mar a tha anns a 'chiad suidheachadh, tha an ISR a' crìonadh, ach an turas seo a-mhàin chun an stiùiriche oir tha a h-uile neach-leantainn a 'stad a' cur iarrtasan iarraidh. A-rithist, chan eil sgaradh loidsigeach ann. An àite sin, thathas a’ call call obrach airson teachdaireachdan ùra gus an tèid ceanglaichean ath-nuadhachadh. Tha Zookeeper a 'leantainn air adhart a' faighinn pings agus a 'creidsinn gu bheil am broker beò agus gu math.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 25. Suidheachadh 2. Tha ISR air crìonadh a-mhàin don cheannard

Scenario 3. Bidh an neach-leantainn a' faicinn an stiùiriche, ach chan fhaic e an Zookeeper

Tha an neach-leantainn air a sgaradh bho Zookeeper, ach chan ann bhon broker leis an stiùiriche. Mar thoradh air an sin, tha an neach-leantainn a 'leantainn air adhart a' dèanamh iarrtasan fetch agus a bhith na bhall den ISR. Chan eil Zookeeper a’ faighinn pings tuilleadh agus a’ clàradh tubaist broker, ach leis nach eil ann ach neach-leantainn, chan eil builean ann às deidh faighinn seachad air.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 26. Suidheachadh 3: Tha an neach-leantainn a' leantainn air adhart a' cur iarrtasan iarraidh chun an stiùiriche

Scenario 4. Bidh an stiùiriche a' faicinn luchd-leanmhainn, ach chan eil e a' faicinn Zookeeper

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 27. Senario 4. Ceannard agus dithis luchd-leantainn

Tha an stiùiriche air a sgaradh bho Zookeeper, ach chan ann bho na brocairean le luchd-leantainn.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 28. Scenario 4: Ceannard air a sgaradh bho Zookeeper

Às deidh beagan ùine, clàraichidh Zookeeper fàiligeadh broker agus cuiridh e fios chun rianadair mu dheidhinn. Taghaidh e ceannard ùr am measg a luchd-leanmhainn. Ach, cumaidh an stiùiriche tùsail air a’ smaoineachadh gur e an stiùiriche a th’ ann agus cumaidh e a’ gabhail ri tagraidhean bho aic = 1. Chan eil luchd-leantainn tuilleadh a’ cur iarrtasan iarraidh thuige, agus mar sin beachdaichidh e orra marbh agus feuchaidh e ris an ISR a lughdachadh thuige fhèin. Ach leis nach eil ceangal aige ri Zookeeper, cha bhith e comasach dha seo a dhèanamh, agus aig an ìre sin diùlt e gabhail ri tagraidhean eile.

teachdaireachdan aic = uile chan fhaigh thu aithne oir bidh an ISR a’ tionndadh air a h-uile mac-samhail an toiseach, agus chan eil brathan gan ruighinn. Nuair a dh’fheuchas an ceannard tùsail rin toirt air falbh bhon ISR, cha bhith e comasach dha sin a dhèanamh agus stadaidh e air gabhail ri teachdaireachdan sam bith idir.

Bidh teachdaichean a dh’ aithghearr a’ mothachadh an atharrachaidh ann an stiùiriche agus a’ tòiseachadh a’ cur chlàran chun t-seirbheisiche ùr. Aon uair ‘s gu bheil an lìonra air ath-nuadhachadh, tha an stiùiriche tùsail a’ faicinn nach eil e na stiùiriche tuilleadh agus a ’gearradh a log chun luach HW a bha aig an stiùiriche ùr aig àm fàiligeadh gus eadar-dhealachadh log a sheachnadh. Tòisichidh e an uairsin a’ cur iarrtasan fetch chun stiùiriche ùr. Tha a h-uile clàr bhon stiùiriche tùsail nach eil air ath-aithris chun stiùiriche ùr air chall. Is e sin, thèid teachdaireachdan nach deach aithneachadh leis an stiùiriche tùsail anns na beagan diogan sin nuair a bha dithis stiùiriche ag obair air an call.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 29. Scenario 4. Bidh an stiùiriche air broker 1 gu bhith na neach-leantainn às deidh an lìonra ath-nuadhachadh

Scenario 5: Tha an neach-leantainn gu tur eadar-dhealaichte bhon dà nod Kafka eile agus Zookeeper

Tha an neach-leantainn gu tur iomallach bho gach cuid nodan Kafka eile agus Zookeeper. Tha e dìreach ga thoirt air falbh bhon ISR gus an tèid an lìonra ath-nuadhachadh, agus an uairsin a 'glacadh suas leis an fheadhainn eile.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 30. Scenario 5: Neach-leantainn iomallach air a thoirt air falbh bhon ISR

Scenario 6: Tha an stiùiriche gu tur eadar-dhealaichte bhon dà nod Kafka eile agus Zookeeper

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 31. Senario 6. Ceannard agus dithis luchd-leantainn

Tha an stiùiriche gu tur iomallach bhon luchd-leanmhainn aige, an rianadair agus an Zookeeper. Airson ùine ghoirid cumaidh e a’ gabhail ri tagraidhean bho aic = 1.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 32. Scenario 6: A' dealachadh an stiùiriche bho nodan Kafka agus Zookeeper eile

Gun a bhith a’ faighinn iarrtasan às deidh dhaibh tighinn gu crìch mac-samhail.lag.time.max.ms, feuchaidh e ris an ISR a lughdachadh leis fhèin, ach cha bhith e comasach dha sin a dhèanamh leis nach eil conaltradh ann le Zookeeper, an uairsin stadaidh e a’ gabhail ri sgrìobhaidhean.

Aig an aon àm, comharraichidh Zookeeper am broker aonaranach marbh agus taghaidh an rianadair stiùiriche ùr.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 33. Suidheachadh 6. Dà cheannard

Faodaidh an stiùiriche tùsail gabhail ri tagraidhean airson beagan dhiog, ach an uairsin stadaidh e a’ gabhail ri teachdaireachdan sam bith. Bidh teachdaichean air an ùrachadh gach 60 diog leis na meata-dàta as ùire. Thèid innse dhaibh mu atharrachadh an stiùiriche agus tòisichidh iad a’ cur inntrigidhean chun stiùiriche ùr.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 34. Senario 6: Luchd-dèanaimh a' gluasad gu stiùiriche ùr

Thèid a h-uile tagradh dearbhte a rinn an stiùiriche tùsail bho chaidh ceanglaichean a chall a chall. Aon uair ‘s gu bheil an lìonra air ath-nuadhachadh, gheibh an stiùiriche tùsail a-mach tro Zookeeper nach e an stiùiriche a th’ ann tuilleadh. An uairsin gearraidh e a loga gu HW an stiùiriche ùr aig àm an taghaidh agus tòisichidh e a’ cur iarrtasan mar neach-leantainn.

RabbitMQ vs Kafka: Fulangas Sgàineadh agus Cothrom Àrd
Reis. 35. Scenario 6: Bidh an stiùiriche tùsail na neach-leantainn às deidh ceangal lìonra ath-nuadhachadh

Anns an t-suidheachadh seo, faodaidh sgaradh loidsigeach tachairt airson ùine ghoirid, ach dìreach ma tha aic = 1 и mion.insync.mac-samhail cuideachd 1. Bidh dealachadh loidsigeach a 'tighinn gu crìch gu fèin-obrachail an dara cuid an dèidh don lìonra ath-nuadhachadh, nuair a thuigeas an stiùiriche tùsail nach eil e na cheannard tuilleadh, no nuair a thuigeas a h-uile neach-dèiligidh gu bheil an stiùiriche air atharrachadh agus a' tòiseachadh a 'sgrìobhadh chun an stiùiriche ùr - ge bith dè a thachras an toiseach. Ann an suidheachadh sam bith, thèid cuid de theachdaireachdan a chall, ach a-mhàin le aic = 1.

Tha caochladh eile den t-suidheachadh seo far an do thuit an luchd-leantainn, dìreach mus do dhealaich an lìonra, agus chuir an stiùiriche an ISR gu dìreach e fhèin. Bidh e an uairsin a’ fàs aonaranach air sgàth call ceangail. Tha ceannard ùr air a thaghadh, ach tha an ceannard tùsail fhathast a’ gabhail ri tagraidhean, eadhon aic = uile, oir chan eil duine eile san ISR ach esan. Thèid na clàran sin a chall aon uair ‘s gu bheil an lìonra air ath-nuadhachadh. Is e an aon dòigh air an roghainn seo a sheachnadh min.insync.replicas = 2.

Scenario 7: Node Rianadair Kafka nach fhaic Node Kafka eile

San fharsaingeachd, aon uair ‘s gu bheil an ceangal le nód Kafka air chall, cha bhith e comasach don rianadair fiosrachadh atharrachadh stiùiriche a chuir thuige. Anns a 'chùis as miosa, bidh seo a' leantainn gu sgaradh loidsigeach geàrr-ùine, mar a tha ann an suidheachadh 6. Nas trice na chan e, cha bhi am broker gu bhith na thagraiche airson ceannardas ma dh'fhàilligeas an tè mu dheireadh.

Scenario 8: Chan eil rianadair Kafka a’ faicinn Zookeeper

Chan fhaigh Zookeeper ping bhon rianadair a tha air tuiteam agus taghaidh e nód Kafka ùr mar an rianadair. Faodaidh an rianadair tùsail leantainn air adhart ga thaisbeanadh fhèin mar sin, ach chan fhaigh e fiosan bho Zookeeper, agus mar sin cha bhith gnìomhan sam bith aige ri choileanadh. Aon uair ‘s gu bheil an lìonra air ath-nuadhachadh, tuigidh e nach e rianadair a th’ ann tuilleadh, ach gu bheil e air a thighinn gu bhith na nód Kafka àbhaisteach.

Co-dhùnaidhean bho na seallaidhean

Tha sinn a’ faicinn nach caill call ceangal luchd-leantainn call teachdaireachd, ach gu sìmplidh a’ lughdachadh call obrach airson ùine gus an tèid an lìonra ath-nuadhachadh. Faodaidh seo, gu dearbh, leantainn gu call dàta ma thèid aon no barrachd nodan a chall.

Ma thèid an stiùiriche a sgaradh bho Zookeeper air sgàth call ceangail, dh’ fhaodadh seo leantainn gu teachdaireachdan a chall aic = 1. Tha cion conaltraidh le Zookeeper ag adhbhrachadh sgaradh loidsigeach goirid leis an dà stiùiriche. Tha an duilgheadas seo air a rèiteachadh le paramadair aic = uile.

Parameter mion.insync.mac-samhail ann an dà mhac-samhail no barrachd a’ toirt seachad dearbhadh a bharrachd nach toir suidheachaidhean geàrr-ùine mar sin teachdaireachdan air chall mar a tha ann an Scenario 6.

Geàrr-chunntas air Teachdaireachdan Caillte

Leig leinn liosta de na dòighean anns an urrainn dhut dàta a chall ann an Kafka:

  • Fàilligeadh stiùiriche sam bith ma chaidh teachdaireachdan a dhearbhadh a ’cleachdadh aic = 1
  • Gluasad neo-ghlan sam bith de cheannas, is e sin, gu neach-leantainn taobh a-muigh an ISR, eadhon le aic = uile
  • A’ dealachadh an stiùiriche bho Zookeeper nan deidheadh ​​teachdaireachdan a dhearbhadh a’ cleachdadh aic = 1
  • Iomallachd iomlan an stiùiriche a tha mar-thà air a 'bhuidheann ISR a lùghdachadh sìos dha fhèin. Thèid a h-uile teachdaireachd a chall, eadhon aic = uile. Chan eil seo fìor ach ma tha min.insync.replicas=1.
  • Fàilligidhean aig an aon àm de gach nodan sgaradh. Leis gu bheilear ag aithneachadh teachdaireachdan bhon chuimhne, dh'fhaoidte nach tèid cuid dhiubh a sgrìobhadh gu diosg fhathast. Às deidh dhut na frithealaichean ath-thòiseachadh, is dòcha gu bheil cuid de theachdaireachdan a dhìth.

Faodar eadar-ghluasadan ceannardais neo-ghlan a sheachnadh le bhith gan toirmeasg no a’ dèanamh cinnteach à co-dhiù dà dhreuchd. Is e an rèiteachadh as seasmhaiche measgachadh aic = uile и mion.insync.mac-samhail barrachd 1.

Coimeas dìreach air earbsachd RabbitMQ agus Kafka

Gus dèanamh cinnteach à earbsachd agus ruigsinneachd àrd, bidh an dà àrd-ùrlar a’ cur an gnìomh siostam mac-samhail bun-sgoile agus àrd-sgoile. Ach, tha sàilean Achilles aig RabbitMQ. Nuair a bhios iad ag ath-cheangal às deidh fàilligeadh, bidh nodan a’ tilgeadh air falbh an dàta aca agus tha sioncronadh air a bhacadh. Tha an dà dhuilgheadas seo a’ togail ceist mu fhad-beatha ciudhaichean mòra ann an RabbitMQ. Feumaidh tu gabhail ris an dàrna cuid call obrach nas lugha no amannan bacaidh fada. Le bhith a’ lughdachadh call obrach a’ meudachadh cunnart call dàta mòr. Ach ma tha na ciudhaichean beag, an uairsin air sgàth call obrach, faodar dèiligeadh ri amannan goirid de neo-ruigsinneachd (beagan dhiog) le bhith a’ cleachdadh oidhirpean ceangail a-rithist.

Chan eil an duilgheadas seo aig Kafka. Bidh e a’ tilgeadh air falbh dàta a-mhàin bhon phuing eadar-dhealachaidh eadar an stiùiriche agus an neach-leantainn. Tha a h-uile dàta co-roinnte air a shàbhaladh. A bharrachd air an sin, chan eil ath-riochdachadh a’ cur bacadh air an t-siostam. Tha an stiùiriche a’ leantainn air adhart a’ gabhail ri dreuchdan fhad ‘s a bhios an neach-leantainn ùr a’ glacadh suas, agus mar sin airson devops, thig còmhla no ath-thighinn a-steach don bhuidheann gu bhith na obair bheag. Gu dearbh, tha cùisean ann fhathast leithid leud-bann lìonra rè ath-riochdachadh. Ma chuireas tu grunn luchd-leantainn ris aig an aon àm, is dòcha gun tig thu tarsainn air crìoch leud-bann.

Tha RabbitMQ nas fheàrr na Kafka ann an earbsachd nuair a dh’ fhailicheas ioma-sheirbheisiche ann am brabhsair aig an aon àm. Mar a thuirt sinn mu thràth, bidh RabbitMQ a ’cur dearbhadh chun fhoillsichear dìreach às deidh don mhaighstir agus a h-uile sgàthan an teachdaireachd a sgrìobhadh gu diosc. Ach tha seo a’ cur latency a bharrachd ris airson dà adhbhar:

  • fsync a h-uile beagan cheudan millisecond
  • Chan urrainnear mothachadh a dhèanamh air fàilligeadh an sgàthan ach às deidh beatha nam pacaidean a nì sgrùdadh air na tha ri fhaighinn de gach nód (tiogaid lom) air tighinn gu crìch. Ma tha an sgàthan a 'slaodadh sìos no a' tuiteam, cuiridh seo dàil ris.

Is e geall Kafka ma tha teachdaireachd air a stòradh thairis air grunn nodan, gun urrainn dha teachdaireachdan aithneachadh cho luath ‘s a bhuaileas iad cuimhne. Air sgàth seo, tha cunnart ann gun caillear teachdaireachdan de sheòrsa sam bith (eadhon aic = uile, min.insync.replicas=2) ann an cùis fàilligeadh aig an aon àm.

Gu h-iomlan, tha Kafka a’ taisbeanadh coileanadh bathar-bog nas fheàrr agus tha e air a dhealbhadh bhon talamh suas airson cruinneachaidhean. Faodar an àireamh de luchd-leantainn àrdachadh gu 11 ma tha sin riatanach airson earbsachd. Factor mac-samhail 5 agus an àireamh as lugha de mhac-samhail ann an sioncronadh min.insync.replicas=3 nì call teachdaireachd na thachartas glè ainneamh. Mas urrainn don bhun-structar agad taic a thoirt don cho-mheas ath-riochdachadh seo agus ìre call obrach, faodaidh tu an roghainn seo a thaghadh.

Tha cruinneachadh RabbitMQ math airson ciudhaichean beaga. Ach faodaidh eadhon ciudhaichean beaga fàs gu luath nuair a tha trafaic trom ann. Cho luath ‘s a dh’ fhàsas ciudhaichean mòr, feumaidh tu roghainnean duilich a dhèanamh eadar ruigsinneachd agus earbsachd. Tha cruinneachadh RabbitMQ nas freagarraiche airson suidheachaidhean neo-àbhaisteach far a bheil buannachdan sùbailteachd RabbitMQ nas àirde na eas-bhuannachdan sam bith a thaobh cruinneachadh.

Is e aon fhrith-fhrith-rathad a thaobh cho cugallach ‘s a tha RabbitMQ ri ciudhaichean mòra a bhith gan briseadh suas gu mòran ciudha nas lugha. Mura h-eil feum agad air an ciudha gu lèir òrdachadh, ach dìreach na teachdaireachdan iomchaidh (mar eisimpleir, teachdaireachdan bho neach-dèiligidh sònraichte), no mura òrdaich thu dad idir, tha an roghainn seo iomchaidh: thoir sùil air a ’phròiseact agam Ath-chothromachadh gus an ciudha a roinn (tha am pròiseact fhathast aig ìre thràth).

Mu dheireadh, na dìochuimhnich mu ghrunn bhiteagan ann an dòighean cruinneachadh agus ath-riochdachadh an dà chuid RabbitMQ agus Kafka. Thar ùine, tha siostaman air fàs nas aibidh agus seasmhach, ach cha bhith teachdaireachd sam bith gu bràth 100% sàbhailte bho chall! A bharrachd air an sin, bidh tubaistean mòra a’ tachairt ann an ionadan dàta!

Ma chaill mi rudeigin, ma rinn mi mearachd, no ma tha thu ag aontachadh ri gin de na puingean, na bi leisg beachd a sgrìobhadh no fios a chuir thugam.

Thathas gu tric a’ faighneachd dhomh: “Dè a thaghas mi, Kafka no RabbitMQ?”, “Dè an àrd-ùrlar as fheàrr?”. Is e an fhìrinn gu bheil e gu mòr an urra ris an t-suidheachadh agad, an t-eòlas gnàthach, msaa. Tha mi leisg mo bheachd a thoirt seachad oir bhiodh e cus de ro-shìmplidh aon àrd-ùrlar a mholadh airson a h-uile cùis cleachdaidh agus crìochan a dh’ fhaodadh a bhith ann. Sgrìobh mi an t-sreath artaigilean seo gus an urrainn dhut do bheachd fhèin a chruthachadh.

Tha mi airson a ràdh gu bheil an dà shiostam nan stiùirichean san raon seo. Is dòcha gu bheil mi beagan claon oir bhon eòlas agam le pròiseactan tha mi buailteach a bhith a’ cur luach air rudan mar òrdachadh teachdaireachd cinnteach agus earbsachd.

Chì mi teicneòlasan eile aig nach eil an earbsachd seo agus an òrdugh cinnteach, an uairsin bidh mi a’ coimhead air RabbitMQ agus Kafka agus a’ tuigsinn luach iongantach an dà shiostam sin.

Source: www.habr.com

Cuir beachd ann