
Is ábhair mhóra iad lamháltas lochtanna agus infhaighteacht ard, mar sin tabharfaimid altanna ar leith do RabbitMQ agus Kafka. Tá an t-alt seo faoi RabbitMQ, agus an chéad cheann eile faoi Kafka, i gcomparáid le RabbitMQ. Is alt fada é seo, mar sin déan tú féin compordach.
Breathnaímid ar na straitéisí lamháltais locht, comhsheasmhachta, agus infhaighteacht ard (HA) agus na malairtí a dhéanann gach straitéis. Is féidir le RabbitMQ rith ar bhraisle nóid - agus ansin rangaítear é mar chóras dáilte. Nuair a thagann sé le córais dáilte, is minic a labhairt linn faoi chomhsheasmhacht agus infhaighteacht.
Déanann na coincheapa seo cur síos ar conas a iompraíonn córas nuair a theipeann air. Teip nasc líonra, teip freastalaí, teip tiomántán crua, neamh-infhaighteacht shealadach freastalaí de bharr bailiú truflais, caillteanas paicéad, nó moilliú nasc líonra. Is féidir le caillteanas sonraí nó coinbhleachtaí a bheith mar thoradh ar seo go léir. Tarlaíonn sé go bhfuil sé beagnach dodhéanta córas a chur ar bun atá go hiomlán comhsheasmhach (gan aon chaillteanas sonraí, gan aon éagsúlacht sonraí) agus atá ar fáil (glacfaidh sé le léamh agus scríobhann) do gach cás teip.
Feicfimid go bhfuil comhsheasmhacht agus infhaighteacht ar an taobh eile den speictream, agus ní mór duit a roghnú cén bealach is fearr a bhaint as. Is é an dea-scéal ná go bhfuil an rogha seo indéanta le RabbitMQ. Tá na cineálacha seo luamháin “nerdy” agat chun an chothromaíocht a aistriú i dtreo comhsheasmhachta níos fearr nó inrochtaineacht níos fearr.
Tabharfaimid aird ar leith ar na cumraíochtaí atá mar thoradh ar chaillteanas sonraí mar gheall ar thaifid dheimhnithe. Tá slabhra freagrachta idir foilsitheoirí, bróicéirí agus tomhaltóirí. Nuair a tharchuirtear an teachtaireacht chuig an mbróicéir, is é a phost gan an teachtaireacht a chailleadh. Nuair a admhaíonn an bróicéir go bhfuair an foilsitheoir an teachtaireacht, nílimid ag súil go gcaillfear é. Ach feicfimid gur féidir leis seo tarlú i ndáiríre ag brath ar do chumraíocht bróicéir agus foilsitheoir.
Príomhoidí Athléimneachta Nód Aonair
Ciúáil/Ródú athléimneach
Tá dhá chineál scuaine i RabbitMQ: buan agus neamh-mharthanach. Sábháiltear na scuainí go léir i mbunachar sonraí Mnesia. Athfhógraítear scuainí marthanacha ag am tosaithe nód agus mar sin maireann siad ó atosú, tuairteanna córais, nó tuairteanna freastalaí (chomh fada agus a leanann na sonraí). Ciallaíonn sé seo, chomh fada agus a dhearbhaíonn tú go bhfuil ródú (malartú) agus scuaine athléimneach, go dtiocfaidh an bonneagar scuaine/ródaithe ar ais ar líne.
Baintear scuainí luaineacha agus ródú nuair a atosaítear an nód.
Teachtaireachtaí leanúnacha
Díreach toisc go bhfuil scuaine buan, ní chiallaíonn sé sin go mairfidh a chuid teachtaireachtaí go léir le hathatosú nód. Níl ach teachtaireachtaí socraithe ag an bhfoilsitheoir mar inbhuanaithe (leanúnach). Cruthaíonn teachtaireachtaí leanúnacha ualach breise ar an mbróicéir, ach má tá caillteanas teachtaireachta do-ghlactha, níl aon rogha eile ann.

Rís. 1. Maitrís inbhuanaitheachta
Cnuasú le scuaine a scáthánú
Chun maireachtáil le caillteanas bróicéir, ní mór dúinn iomarcaíocht. Is féidir linn nóid iomadúla RabbitMQ a chomhcheangal i mbraisle, agus ansin iomarcaíocht bhreise a chur leis trí scuainí a mhacasamhlú idir nóid iolracha. Ar an mbealach seo, má theipeann ar nód amháin, ní chaillimid sonraí agus fós ar fáil.
Scáthánú scuaine:
- príomh scuaine amháin (máistir), a fhaigheann gach ordú scríobh agus léamh
- scáthán amháin nó níos mó a fhaigheann gach teachtaireacht agus meiteashonraí ón bpríomhscuaine. Níl na scátháin seo ann le haghaidh scálaithe, ach le haghaidh iomarcaíochta amháin.

Rís. 2. scuaine scáthánú
Socraítear an scáthánú ag an mbeartas cuí. Is féidir leat an chomhéifeacht macasamhlaithe agus fiú na nóid ar chóir an scuaine a bheith suite orthu a roghnú. Samplaí:
ha-mode: allha-mode: exactly, ha-params: 2(máistir amháin agus scáthán amháin)ha-mode: nodes, ha-params: rabbit@node1, rabbit@node2
Deimhniú foilsitheoir
Chun taifeadadh comhsheasmhach a bhaint amach, tá Deimhnithe Foilsitheoir ag teastáil. Gan iad, tá an baol ann go gcaillfear teachtaireachtaí. Seoltar deimhniú chuig an bhfoilsitheoir tar éis don teachtaireacht a bheith scríofa ar diosca. Scríobhann RabbitMQ teachtaireachtaí chuig diosca ní nuair a fhaightear iad, ach ar bhonn tréimhsiúil, timpeall cúpla céad milleasoicind. Nuair a scáthánaítear scuaine, ní sheoltar admháil ach amháin tar éis do gach scáthán a gcóip den teachtaireacht a scríobh chuig diosca freisin. Ciallaíonn sé seo go gcuireann úsáid deimhnithe latency, ach má tá slándáil sonraí tábhachtach, ansin tá siad riachtanach.
scuaine faille
Nuair a scoireann bróicéir nó nuair a thuairteálann sé, tuairteanna gach ceannaire scuaine (máistreachta) ar an nód sin chomh maith leis. Roghnaíonn an braisle ansin an scáthán is sine de gach máistir agus cuireann sé chun cinn é mar an máistir nua.

Rís. 3. Scuainí iolraithe agus a gcuid polasaithe
Téann bróicéir 3 síos. Tabhair faoi deara go bhfuil an scáthán Queue C ar Bróicéir 2 á ardú céime chun máistreacht. Tabhair faoi deara freisin go bhfuil scáthán nua cruthaithe do Chiú C ar Bhróicéir 1. Déanann RabbitMQ iarracht i gcónaí an fachtóir macasamhlaithe atá sonraithe i do chuid polasaithe a choinneáil.

Rís. 4. Teipeann ar bhróicéir 3, rud a fhágann go dteipeann ar scuaine C
Titeann an chéad bróicéir eile 1! Níl ach bróicéir amháin fágtha againn. Cuirtear scáthán Queue B chun cinn chun máistreacht.

Fig. 5
Tá Bróicéir 1 tugtha ar ais againn. Is cuma cé chomh maith agus a mhair na sonraí ó chailliúint agus aisghabháil an bhróicéir, cuirtear gach teachtaireacht scuaine scáthánaithe i leataobh nuair a atosaítear é. Tá sé seo tábhachtach a thabhairt faoi deara mar go mbeidh iarmhairtí ann. Breathnóimid ar na himpleachtaí sin gan mhoill. Mar sin tá Bróicéir 1 ina bhall den bhraisle arís anois, agus déanann an bhraisle iarracht cloí leis na polasaithe agus cruthaíonn sé scátháin ar Bhróicéir 1 mar sin.
Sa chás seo, bhí caillteanas Bróicéir 1 iomlán, mar a bhí na sonraí, agus mar sin cailleadh an scuaine B gan scáthán go hiomlán.

Rís. 6. Filleann bróicéir 1 ar an tseirbhís
Tá Bróicéir 3 ar ais ar líne, mar sin faigheann scuainí A agus B na scátháin a chruthaítear air ar ais chun a gcuid polasaithe HA a shásamh. Ach anois tá na príomhscuainí ar fad ar aon nód amháin! Níl sé seo idéalach, is fearr dáileadh cothrom idir nóid. Ar an drochuair, níl mórán roghanna anseo chun máistrí a athchothromú. Fillfimid ar an gceist seo níos déanaí mar ní mór dúinn breathnú ar shioncrónú scuaine ar dtús.

Rís. 7. Filleann bróicéir 3 ar an tseirbhís. Gach príomh scuainí ar nód amháin!
Mar sin anois ba cheart go mbeadh smaoineamh agat ar conas a sholáthraíonn scátháin iomarcaíocht agus lamháltas lochtanna. Cinntíonn sé seo infhaighteacht i gcás teip nód amháin agus cosnaíonn sé i gcoinne caillteanas sonraí. Ach nílimid déanta fós, mar i ndáiríre tá sé i bhfad níos casta.
Sioncrónaigh
Agus scáthán nua á chruthú, déanfar gach teachtaireacht nua a mhacasamhlú i gcónaí leis an scáthán seo agus chuig aon scáthán eile. Maidir leis na sonraí atá ann cheana féin sa scuaine máistir, is féidir linn a mhacasamhlú go scáthán nua, a thiocfaidh chun bheith ina chóip iomlán den mháistir. Is féidir linn a roghnú freisin gan teachtaireachtaí atá ann cheana a mhacasamhlú agus ligean don phríomhscuaine agus don scáthán nua teacht le chéile in am, le teachtaireachtaí nua ag teacht ar an eireaball agus teachtaireachtaí atá ann cheana ag fágáil ceann na príomhscuaine.
Déantar an sioncrónú seo go huathoibríoch nó de láimh agus déantar é a bhainistiú trí úsáid a bhaint as polasaí scuaine. Breathnaímid ar shampla.
Tá dhá scuaine scáthánaithe againn. Déantar scuaine A a shioncronú go huathoibríoch, agus déantar Ciúna B a shioncronú de láimh. Tá deich dteachtaireacht sa dá scuaine.

Rís. 8. Dhá scuaine le modhanna sioncrónaithe éagsúla
Anois táimid ag cailleadh Bróicéir 3.

Rís. 9. Thit bróicéir 3
Filleann bróicéir 3 ar an tseirbhís. Cruthaíonn an braisle scáthán do gach scuaine ar an nód nua agus déanann sé an Ciú A nua a shioncronú go huathoibríoch leis an máistir. Mar sin féin, tá scáthán an Chiú B nua fós folamh. Ar an mbealach seo tá iomarcaíocht iomlán againn ar Chiú A agus gan ach scáthán amháin do theachtaireachtaí Queue B atá ann cheana féin.

Rís. 10. Faigheann scáthán nua Chiú A gach teachtaireacht atá ann cheana féin, ach ní fhaigheann scáthán nua Ciú B.
Tagann deich dteachtaireacht eile sa dá scuaine. Ansin tuairteanna Bróicéir 2 agus Rollaíonn Queue A ar ais go dtí an scáthán is sine, atá ar Bróicéir 1. Níl aon chaillteanas sonraí nuair a theipeann air. I scuaine B, tá fiche teachtaireacht sa mháistir agus níl ach deich gcinn sa scáthán mar níor mhacasamhail an scuaine seo na deich dteachtaireacht bhunaidh riamh.

Rís. 11. Rollaíonn scuaine A ar ais go Bróicéir 1 gan teachtaireachtaí a chailleadh
Tagann deich dteachtaireacht eile sa dá scuaine. Anois tuairteanna Bróicéir 1. Aistríonn scuaine A go dtí an scáthán go héasca gan teachtaireachtaí a chailliúint. Mar sin féin, tá fadhbanna ag Ciú B. Ag an bpointe seo is féidir linn infhaighteacht nó comhsheasmhacht a bharrfheabhsú.
Más mian linn inrochtaineacht a bharrfheabhsú, ansin an polasaí ha-chur chun cinn-ar-theip chóir a shuiteáil i i gcónaí. Seo é an luach réamhshocraithe, mar sin ní féidir leat an polasaí a shonrú ar chor ar bith. Sa chás seo, táimid ag ligean go bunúsach teipeanna i scátháin neamhshioncrónaithe. Caillfear teachtaireachtaí dá bharr seo, ach fanfaidh an scuaine inléite agus inscríofa.

Rís. 12. Cuirtear scuaine A ar ais go Bróicéir 3 gan teachtaireachtaí a chailleadh. Filleann scuaine B go Bróicéir 3 agus cailleadh deich dteachtaireacht
Is féidir linn a shuiteáil freisin ha-promote-on-failure isteach sa chiall when-synced. Sa chás seo, in ionad rolladh ar ais go dtí an scáthán, fanfaidh an scuaine go dtí go dtiocfaidh Bróicéir 1 lena sonraí ar ais chuig mód ar líne. Tar éis dó filleadh, tá an príomh-scuaine ar ais ar Bhróicéir 1 gan aon chaillteanas sonraí. Déantar infhaighteacht a íobairt ar mhaithe le slándáil sonraí. Ach tá sé seo modh risky is féidir go dtiocfadh fiú caillteanas sonraí iomlán, a beidh muid ag féachaint ar go luath.

Rís. 13. Níl scuaine B ar fáil fós tar éis Bróicéir 1 a chailleadh
Is féidir leat a iarraidh, "An bhfuil sé níos fearr gan sioncrónú uathoibríoch a úsáid?" Is é an freagra ná gur oibríocht bhlocála é sioncrónú. Le linn sioncronaithe, ní féidir leis an bpríomhscuaine aon oibríochtaí léamh nó scríobh a dhéanamh!
Breathnaímid ar shampla. Anois tá scuainí an-fhada againn. Conas is féidir leo fás go dtí an méid sin? Ar chúiseanna éagsúla:
- Ní úsáidtear scuainí go gníomhach
- Is scuainí ardluais iad seo, agus faoi láthair tá tomhaltóirí mall
- Is scuainí ardluais é, bhí glitch ann agus tá tomhaltóirí ag teacht suas

Rís. 14. Dhá scuaine mhóra le modhanna sioncrónaithe éagsúla
Anois titeann Bróicéir 3.

Rís. 15. Titeann bróicéir 3, ag fágáil máistir amháin agus scáthán i ngach scuaine
Tagann Bróicéir 3 ar ais ar líne agus cruthaítear scátháin nua. Tosaíonn Príomhsciú A ag athchur na teachtaireachtaí atá ann cheana féin go dtí an scáthán nua, agus le linn an ama seo níl an scuaine ar fáil. Tógann sé dhá uair an chloig chun na sonraí a mhacasamhlú, rud a fhágann go mbeidh dhá uair an chloig d'am neamhfhónaimh don scuaine seo!
Mar sin féin, tá Ciú B ar fáil ar feadh na tréimhse ar fad. D'íobair sí roinnt iomarcaíochta mar gheall ar inrochtaineacht.

Rís. 16. Níl scuaine ar fáil fós le linn an tsioncrónaithe
Tar éis dhá uair an chloig, beidh Ciú A ar fáil freisin agus féadann sé tosú ag glacadh le léann agus le scríobh arís.
Nuashonruithe
Mar gheall ar an iompar blocála seo le linn sioncrónaithe, bíonn sé deacair cnuasaigh a nuashonrú le scuainí an-mhór. Ag pointe éigin, ní mór an máistir nód a atosú, rud a chiallaíonn go n-athrófaí go scáthán nó go ndíchumasaítear an scuaine agus an freastalaí á uasghrádú. Má roghnaíonn muid aistriú, caillfidh muid teachtaireachtaí mura bhfuil na scátháin sioncronaithe. De réir réamhshocraithe, le linn briseadh bróicéir, ní dhéantar teip ar scáthán neamhshioncrónaithe. Ciallaíonn sé seo go chomh luath agus a fhilleann an bróicéir, ní chailleann muid aon teachtaireachtaí, ní raibh an damáiste ach scuaine simplí. Socraítear rialacha iompair nuair a bhíonn bróicéir dícheangailte ag polasaí ha-promote-on-shutdown. Is féidir leat ceann amháin de dhá luach a shocrú:
always= tá trasdul chuig scátháin neamhshioncronaithe cumasaithewhen-synced= trasdul go scáthán sioncronaithe amháin, nó éiríonn an scuaine do-léite agus do-scríofa. Filleann an scuaine ar sheirbhís chomh luath agus a fhilleann an bróicéir
Ar bhealach amháin nó ar bhealach eile, le scuainí móra caithfidh tú rogha a dhéanamh idir cailleadh sonraí agus gan a bheith ar fáil.
Nuair a Fheabhsaíonn Infhaighteacht Slándáil Sonraí
Tá casta amháin eile le breithniú sula ndéanfar cinneadh. Cé go bhfuil sioncrónú uathoibríoch níos fearr le haghaidh iomarcaíochta, conas a théann sé i bhfeidhm ar shlándáil sonraí? Ar ndóigh, le hiomarcaíocht níos fearr, is lú an seans go gcaillfidh RabbitMQ na teachtaireachtaí atá ann cheana féin, ach cad faoi theachtaireachtaí nua ó fhoilsitheoirí?
Anseo ní mór duit smaoineamh ar na nithe seo a leanas:
- An bhféadfadh an foilsitheoir earráid a sheoladh ar ais agus an tseirbhís réamhtheachtacha nó an t-úsáideoir a thriail arís ar ball?
- An féidir leis an bhfoilsitheoir an teachtaireacht a shábháil go háitiúil nó i mbunachar sonraí chun triail eile a bhaint as níos déanaí?
Más rud é nach féidir leis an bhfoilsitheoir ach an teachtaireacht a chaitheamh amach, ansin i ndáiríre, feabhsaítear slándáil sonraí freisin trí inrochtaineacht a fheabhsú.
Mar sin, ní mór cothromaíocht a lorg, agus braitheann an réiteach ar an staid shonrach.
Fadhbanna le ha-promote-on-failure=nuair atá sioncronaithe
Idea ha-chur chun cinn-ar-theip= nuair a shioncronaítear is é sin go gcuirfimid cosc ar athrú go scáthán neamhshioncrónaithe agus go seachnaimid cailleadh sonraí dá bharr. Níl an scuaine inléite nó inscríofa fós. Ina áit sin, déanaimid iarracht an bróicéir tuairteála a aisghabháil agus a chuid sonraí slán ionas gur féidir leis feidhmiú mar mháistir arís gan aon chaillteanas sonraí.
Ach (agus is rud mór é seo) má tá a chuid sonraí caillte ag an bróicéir, ansin tá fadhb mhór againn: cailltear an scuaine! Tá na sonraí go léir imithe! Fiú má tá scátháin agat a théann suas leis an bpríomhscuaine den chuid is mó, cuirtear na scátháin sin i leataobh freisin.
Chun nód leis an ainm céanna a athchur leis, deirimid don bhraisle dearmad a dhéanamh ar an nód caillte (leis an ordú coinínmqctl forget_cluster_node) agus tús a chur le bróicéir nua leis an óstainm céanna. Cé go gcuimhníonn an bhraisle an nód caillte, cuimhníonn sé ar an sean scuaine agus scátháin neamhshioncrónaithe. Nuair a deirtear le braisle dearmad a dhéanamh ar nód dílleachta, déantar dearmad ar an scuaine sin freisin. Anois caithfimid é a athdhearbhú. Chaill muid na sonraí go léir, cé go raibh scátháin againn le sraith páirteach sonraí. Bheadh sé níos fearr aistriú chuig scáthán neamhshioncrónaithe!
Mar sin, déantar sioncrónú láimhe (agus teip ar shioncrónú) i gcomhcheangal le ha-promote-on-failure=when-synced, i mo thuairim, go leor risky. Deir na doiciméid go bhfuil an rogha seo ann maidir le slándáil sonraí, ach is scian dhá-imeall é.
Máistir athchothromú
Mar a gealladh, filleann muid ar an bhfadhb a bhaineann le carnadh na máistrí go léir ar nód amháin nó níos mó. Is féidir leis seo tarlú fiú mar thoradh ar nuashonrú braisle rollach. I gcnuasach trí nód, carnfaidh gach scuaine máistir ar nód amháin nó dhó.
Is féidir fadhbanna a bheith ag máistrí athchothromaithe ar dhá chúis:
- Níl aon uirlisí maithe ann chun athchothromú a dhéanamh
- Sioncronú scuaine
Tá tríú páirtí ann le haghaidh athchothromaithe , nach bhfuil tacaíocht oifigiúil. Maidir le forlíontáin tríú páirtí sa lámhleabhar RabbitMQ : “Soláthraíonn an breiseán roinnt uirlisí cumraíochta agus tuairiscithe breise, ach ní thacaíonn foireann RabbitMQ é ná ní fhíoraíonn sé. Bain úsáid as ar do phriacal féin."
Tá cleas eile ann chun an príomh-scuaine a bhogadh trí bheartais HA. Luann an lámhleabhar dó seo. Oibríonn sé mar seo:
- Baintear gach scáthán ag baint úsáide as polasaí sealadach a bhfuil tosaíocht níos airde aige ná an polasaí HA atá ann faoi láthair.
- Athraíonn sé an polasaí sealadach HA chun modh nód a úsáid, ag sonrú an nód ar cheart an scuaine máistir a aistriú.
- Sioncrónaíonn sé an scuaine le haghaidh imirce bhrú.
- Tar éis an imirce a bheith críochnaithe, scriostar an beartas sealadach. Tagann an polasaí HA tosaigh i bhfeidhm agus cruthaítear an líon riachtanach scátháin.
Is é an buntáiste a bhaineann leis ná go mb’fhéidir nach n-oibreoidh an cur chuige seo má tá scuainí móra nó dianriachtanais iomarcaíochta agat.
Anois, déanaimis a fheiceáil conas a oibríonn braislí RabbitMQ le Deighiltí líonra.
Cailliúint nascachta
Tá na nóid de chóras dáilte ceangailte ag naisc líonra, agus is féidir naisc líonra a dhínascadh agus déanfar iad a dhínascadh. Braitheann minicíocht bristeacha ar an mbonneagar áitiúil nó ar iontaofacht an scamall roghnaithe. In aon chás, caithfidh córais dáilte a bheith in ann déileáil leo. Arís eile tá rogha againn idir infhaighteacht agus comhsheasmhacht, agus arís eile is é an dea-scéal go soláthraíonn RabbitMQ an dá rogha (ach ní ag an am céanna).
Le RabbitMQ tá dhá phríomhrogha againn:
- Ceadaigh deighilt loighciúil (scoilt-inchinn). Cinntíonn sé seo infhaighteacht, ach d'fhéadfadh sé a bheith ina chúis le caillteanas sonraí.
- Díchumasaigh scaradh loighciúil. D’fhéadfadh caillteanas gearrthéarmach infhaighteachta a bheith mar thoradh air ag brath ar an gcaoi a nascann cliaint leis an mbraisle. D'fhéadfadh neamh-infhaighteacht iomlán a bheith mar thoradh air freisin i mbraisle dhá nód.
Ach cad é scaradh loighciúil? Seo nuair a scoilteann braisle ina dhá cheann mar gheall ar chailliúint naisc líonra. Ar gach taobh, cuirtear na scátháin chun cinn go máistir, ionas go mbeidh roinnt máistrí in aghaidh an scuaine sa deireadh.

Rís. 17. Príomhscuaine agus dhá scáthán, gach ceann acu ar nód ar leith. Ansin tarlaíonn teip líonra agus éiríonn scáthán amháin scoite. Feiceann an nód scartha go bhfuil an dá cheann eile tar éis titim amach agus cuireann sé a scátháin chun cinn don mháistir. Tá dhá scuaine phríomha againn anois, idir inscríofa agus inléite.
Má sheolann foilsitheoirí sonraí chuig an dá mháistir, beidh dhá chóip éagsúla den scuaine againn sa deireadh.
Soláthraíonn modhanna éagsúla RabbitMQ infhaighteacht nó comhsheasmhacht.
Déan neamhaird de mhód (réamhshocraithe)
Cinntíonn an modh seo inrochtaineacht. Tar éis an nascacht a chailleadh, tarlaíonn scaradh loighciúil. Tar éis an nascacht a athbhunú, ní mór don riarthóir a chinneadh cén deighilt ar cheart tosaíocht a thabhairt dó. Déanfar an taobh caillte a atosú agus caillfear na sonraí carntha go léir ar an taobh sin.

Rís. 18. Tá baint ag triúr foilsitheoirí le trí bhróicéir. Go hinmheánach, cuireann an braisle gach iarratas chuig an bpríomhscuaine ar Bhróicéir 2.
Anois táimid ag cailleadh Bróicéir 3. Feiceann sé go bhfuil bróicéirí eile tar éis titim amach agus cuireann sé a scáthán chun cinn don mháistir. Seo mar a tharlaíonn scaradh loighciúil.

Rís. 19. Roinn loighciúil (scoilt-inchinn). Téann taifid i dhá scuaine is mó, agus athraíonn an dá chóip.
Déantar nascacht a athchóiriú, ach tá scaradh loighciúil fós ann. Ní mór don riarthóir an taobh caillte a roghnú de láimh. Sa chás thíos, atosaíonn an riarthóir Bróicéir 3. Cailltear gach teachtaireacht nár éirigh leis a tharchur.

Rís. 20. Díchumasaíonn an riarthóir Bróicéir 3.

Rís. 21. Tosaíonn an riarthóir Bróicéir 3 agus téann sé isteach sa bhraisle, ag cailleadh gach teachtaireacht a fágadh ann.
Le linn na nascachta a chailleadh agus tar éis é a athchóiriú, bhí an braisle agus an scuaine seo ar fáil don léitheoireacht agus don scríobh.
Modh cneasaithe uathoibríoch
Oibríonn sé mar an gcéanna le modh Déan neamhaird, ach amháin go roghnaíonn an braisle féin an taobh caillte go huathoibríoch tar éis nascacht a scoilteadh agus a athbhunú. Filleann an taobh caillte ar an mbraisle folamh, agus cailleann an scuaine gach teachtaireacht a cuireadh chuig an taobh sin amháin.
Cuir Mód Mionlaigh ar sos
Mura dteastaíonn uainn deighilt loighciúil a cheadú, is é an t-aon rogha atá againn ná léann agus scríobhann a chaitheamh ar an taobh níos lú tar éis na críochdheighilte. Nuair a fheiceann an bróicéir go bhfuil sé ar an taobh níos lú, cuireann sé an obair ar fionraí, is é sin, dúnann sé gach nasc atá ann cheana féin agus diúltóidh sé aon cinn nua. Uair sa soicind seiceálann sé d'athchóiriú nascachta. Nuair a dhéantar an nascacht a athbhunú, athchóiríonn sé oibriú agus téann sé isteach sa bhraisle.

Rís. 22. Tá baint ag triúr foilsitheoirí le trí bhróicéir. Go hinmheánach, cuireann an braisle gach iarratas chuig an bpríomhscuaine ar Bhróicéir 2.
Ansin scoilteann bróicéirí 1 agus 2 ó Bhróicéir 3. In ionad a scáthán a chur chun cinn go máistreacht, cuireann Bróicéir 3 ar fionraí agus ní bhíonn sé ar fáil.

Rís. 23. Cuireann Bróicéir 3 ar sosanna, dínascann sé gach cliant, agus diúltaíonn sé d’iarratais nasc.
Nuair a dhéantar an nascacht a athchóiriú, filleann sé ar an mbraisle.
Breathnaímid ar shampla eile ina bhfuil an príomhscuaine ar Bhróicéir 3.

Rís. 24. An príomh scuaine ar Bhróicéir 3 .
Ansin tarlaíonn an caillteanas céanna nascachta. Sosanna bróicéir 3 toisc go bhfuil sé ar an taobh níos lú. Ar an taobh eile, feiceann na nóid go bhfuil Bróicéir 3 tar éis titim amach, agus mar sin cuirtear an scáthán níos sine ó Bróicéirí 1 agus 2 chun cinn chun máistreacht.

Rís. 25. Aistriú go Bróicéir 2 mura bhfuil Bróicéir 3 ar fáil.
Nuair a athchóirítear nascacht, rachaidh Bróicéir 3 isteach sa bhraisle.

Rís. 26. Tá an braisle tar éis filleadh ar an ngnáthoibriú.
Is é an rud tábhachtach a thuiscint anseo go bhfaighimid comhsheasmhacht, ach is féidir linn infhaighteacht a fháil freisin, más rud é go Déanfaimid cliaint a aistriú go rathúil go dtí an chuid is mó den rannóg. Don chuid is mó cásanna, roghnóinn go pearsanta an modh Mionlaigh ar Shos, ach braitheann sé go mór ar an gcás aonair.
Chun infhaighteacht a chinntiú, tá sé tábhachtach a chinntiú go nascann cliaint go rathúil leis an óstach. Breathnaímid ar ár roghanna.
Nascacht Custaiméirí a Chinntiú
Tá roinnt roghanna againn maidir le conas cliaint a threorú chuig an bpríomhchuid den bhraisle nó chuig nóid oibre (tar éis teip ar nód amháin) tar éis caillteanas nascachta. Ar dtús, déanaimis cuimhneamh go ndéantar scuaine ar leith a óstáil ar nód ar leith, ach déantar ródú agus polasaithe a mhacasamhlú thar gach nóid. Is féidir le cliaint ceangal le haon nód, agus treoróidh ródú inmheánach iad nuair is gá dóibh dul. Ach nuair a chuirtear nód ar fionraí, diúltaíonn sé naisc, mar sin ní mór do chliaint ceangal le nód eile. Má thiteann an nód as, is beag is féidir leis a dhéanamh ar chor ar bith.
Ár roghanna:
- Tá rochtain ar an mbraisle ag baint úsáide as cothromóir ualaigh a théann tríd na nóid go simplí agus déanann na cliaint iarracht nascadh arís go dtí go n-éiríonn leo. Má tá nód síos nó ar fionraí, ansin beidh iarrachtaí chun ceangal leis an nód sin theipeann, ach iarrachtaí ina dhiaidh sin dul chuig freastalaithe eile (ar bhealach cruinn-robin). Tá sé seo oiriúnach le haghaidh caillteanas gearrthéarmach nascachta nó freastalaí íoslaghdaithe a thabharfar ar ais go tapa.
- Faigh rochtain ar an mbraisle trí chothromóir ualaigh agus bain nóid ar crochadh/teipthe den liosta a luaithe a aimsítear iad. Má dhéanaimid é seo go tapa, agus má tá cliaint in ann an nasc a thriail arís, bainfimid amach infhaighteacht leanúnach.
- Tabhair liosta de na nóid go léir do gach cliant, agus roghnaíonn an cliant ceann acu go randamach agus é ag nascadh. Má fhaigheann sé earráid agus é ag iarraidh nascadh, bogann sé go dtí an chéad nód eile sa liosta go dtí go nascann sé.
- Bain trácht ó nód teipthe/ar fionraí ag baint úsáid as DNS. Déantar é seo trí úsáid a bhaint as TTL beag.
Torthaí
Tá buntáistí agus míbhuntáistí ag cnuasach RabbitMQ. Is iad na míbhuntáistí is tromchúisí ná:
- nuair a cheanglaíonn siad braisle, caitheann nóid a gcuid sonraí;
- blocáil sioncrónaithe is cúis leis an scuaine a bheith ar fáil.
Eascraíonn gach cinneadh deacra ón dá ghné ailtireachta seo. Dá bhféadfadh RabbitMQ sonraí a shábháil nuair a athcheanglaítear an bhraisle, bheadh an sioncronú níos tapúla. Dá mbeadh sé in ann sioncrónú gan bhac a dhéanamh, thacódh sé níos fearr le scuainí móra. Dá ndéanfaí an dá shaincheist seo a réiteach, chuirfí go mór le feidhmíocht RabbitMQ mar theicneolaíocht teachtaireachtaí atá ar fáil go mór i gcoinne lochtanna. Bheadh leisce orm RabbitMQ a mholadh le cnuasú sna cásanna seo a leanas:
- Líonra neamhiontaofa.
- Stóráil neamhiontaofa.
- Scuainí an-fhada.
Nuair a bhaineann sé le socruithe ard-infhaighteachta, smaoinigh ar na nithe seo a leanas:
ha-promote-on-failure=alwaysha-sync-mode=manualcluster_partition_handling=ignore(Nóautoheal)- teachtaireachtaí leanúnacha
- a chinntiú go nascann cliaint leis an nód gníomhach nuair a theipeann ar roinnt nód
Ar mhaithe le comhsheasmhacht (slándáil sonraí), smaoinigh ar na socruithe seo a leanas:
- Deimhníonn an Foilsitheoir agus Admhálacha de Láimh ar thaobh an tomhaltóra
ha-promote-on-failure=when-synced, más féidir leis na foilsitheoirí triail eile a bhaint as níos déanaí agus má tá stóráil an-iontaofa agat! Seachas sin a chur=always.ha-sync-mode=automatic(ach i gcás scuainí móra neamhghníomhacha d’fhéadfadh mód láimhe a bheith ag teastáil; smaoinigh freisin an gcaillfear teachtaireachtaí mura bhfuil siad ar fáil)- Cuir mód Mionlaigh ar sos
- teachtaireachtaí leanúnacha
Níl na saincheisteanna go léir a bhaineann le lamháltas lochtanna agus infhaighteacht ard clúdaithe fós againn; mar shampla, conas nósanna imeachta riaracháin a chur i bhfeidhm go slán (cosúil le nuashonruithe rollacha). Ní mór dúinn freisin labhairt faoi chónaidhm agus an breiseán Shovel.
Má tá aon rud eile caillte agam, cuir in iúl dom le do thoil.
Féach freisin mo , áit a ndéanaim havoc ar bhraisle RabbitMQ ag baint úsáide as Docker agus Imshuí chun roinnt de na cásanna caillteanas teachtaireachta a thuairiscítear san Airteagal seo a thástáil.
Ailt roimhe seo sa tsraith:
Uimh. 1 -
Uimh. 2 -
Uimh. 3 -
Foinse: will.com
