
Tha fulangas sgà inidhean agus ruigsinneachd à rd nan cuspairean mòra, agus mar sin bheir sinn artaigilean air leth gu RabbitMQ agus Kafka. Tha an artaigil seo mu dheidhinn RabbitMQ, agus tha an ath fhear mu dheidhinn Kafka, an taca ri RabbitMQ. Is e artaigil fada a tha seo, mar sin dèan thu fhèin comhfhurtail.
Bheir sinn sĂšil air na ro-innleachdan fulangas locht, cunbhalachd, agus ruigsinneachd Ă rd (HA) agus na malairtidhean a bhios gach ro-innleachd aâ dèanamh. Faodaidh RabbitMQ ruith air cruinneachadh de nodan - agus an uairsin tha e air a chomharrachadh mar shiostam sgaoilte. Nuair a thig e gu siostaman sgaoilte, bidh sinn gu tric aâ bruidhinn mu sheasmhachd agus ruigsinneachd.
Tha na bun-bheachdan sin aâ mĂŹneachadh mar a bhios siostam gan giĂšlan fhèin nuair a dhâfhailicheas e. FĂ illigeadh ceangal lĂŹonraidh, fĂ illigeadh an fhrithealaiche, fĂ iligeadh draibh cruaidh, dĂŹth frithealaiche ri fhaighinn gu sealach mar thoradh air cruinneachadh sgudail, call pacaid, no slaodadh ceangail lĂŹonraidh. Faodaidh seo uile leantainn gu call dĂ ta no còmhstri. Tha e a âtionndadh a-mach gu bheil e cha mhòr do-dhèanta siostam a chuir suas a tha an dĂ chuid gu tur cunbhalach (gun chall dĂ ta, gun sgaradh dĂ ta) agus a tha ri fhaighinn (gabhaidh ri leughadh agus sgrĂŹobhadh) airson a h-uile suidheachadh fĂ illigeadh.
ChĂŹ sinn gu bheil cunbhalachd agus ruigsinneachd air gach taobh den speactram, agus feumaidh tu taghadh dè an dòigh as fheĂ rr. Is e an deagh naidheachd gu bheil an roghainn seo comasach le RabbitMQ. Tha an seòrsa luamhan ânerdyâ agad gus an cothromachadh a ghluasad gu barrachd cunbhalachd no barrachd ruigsinneachd.
Bheir sinn aire shònraichte do na rèiteachaidhean a dhâ adhbhraicheas call dĂ ta mar thoradh air clĂ ran dearbhte. Tha sreath de dhleastanas eadar foillsichearan, brocairean agus luchd-cleachdaidh. Cho luath âs a thèid an teachdaireachd a chuir chun broker, is e an obair aige gun a bhith aâ call an teachdaireachd. Nuair a dhâ aithnicheas am broker gun dâ fhuair am foillsichear an teachdaireachd, chan eil sinn an dĂšil gun tèid a chall. Ach chĂŹ sinn gum faod seo tachairt dha-rĂŹribh a rèir an rèiteachadh broker is foillsichear agad.
PrÏomhachasan Seasmhachd Nòd Singilte
Ciudha / slighe seasmhach
Tha dĂ sheòrsa ciudha ann an RabbitMQ: seasmhach agus neo-sheasmhach. Tha a h-uile ciudha air a shĂ bhaladh ann an stòr-dĂ ta Mnesia. Bithear ag ath-sanasachd ciudhaichean seasmhach aig toiseach tòiseachaidh nĂłd agus mar sin mairidh iad ath-thòiseachadh, tubaistean siostam, no tubaistean frithealaiche (fhad âs a mhaireas an dĂ ta). Tha seo aâ ciallachadh fhad âs a dhearbhas tu gu bheil slighe (iomlaid) agus ciudha tapaidh, gun till am bun-structar ciudha / slighe air ais air-loidhne.
Thèid ciudhaichean luaineach agus slighe a thoirt air falbh nuair a thèid an nód ath-thòiseachadh.
Teachdaireachdan seasmhach
DĂŹreach air sgĂ th âs gu bheil ciudha seasmhach chan eil sin aâ ciallachadh gum mair a h-uile teachdaireachd aige bho ath-thòiseachadh nĂłd. Chan eil ach teachdaireachdan air an suidheachadh leis an fhoillsichear mar tapaidh (leanmhainn). Bidh teachdaireachdan leantainneach a 'cruthachadh luchd a bharrachd air a' bhròcair, ach ma tha call teachdaireachd neo-iomchaidh, chan eil roghainn eile ann.

Reis. 1. Matrix seasmhachd
Aâ cruinneachadh le sgĂ than ciudha
Gus a bhith beò le call broker, feumaidh sinn call dreuchd. Is urrainn dhuinn grunn nodan RabbitMQ a chur còmhla ann am brabhsair, agus an uairsin call obrach a bharrachd a chuir ris le bhith ag ath-aithris ciudhaichean eadar ioma nodan. San dòigh seo, ma dhâ fhailicheas aon nĂłd, cha chaill sinn dĂ ta agus bidh sinn fhathast ri fhaighinn.
SgĂ than ciudha:
- aon phrÏomh ciudha (maighstir), a gheibh a h-uile òrdugh sgrÏobhaidh is leughaidh
- aon sgà than no barrachd a gheibh a h-uile brath agus meata-dà ta bhon phrÏomh ciudha. Chan eil na sgà thanan sin ann airson sgèileadh, ach dÏreach airson call obrach.

Reis. 2. SgĂ than ciudha
Tha sgĂ than air a shuidheachadh leis aâ phoileasaidh iomchaidh. Ann, faodaidh tu an co-èifeachd mac-samhail a thaghadh agus eadhon na nodan air am bu chòir an ciudha a bhith suidhichte. Eisimpleirean:
ha-mode: allha-mode: exactly, ha-params: 2(aon mhaighstir agus aon sgĂ than)ha-mode: nodes, ha-params: rabbit@node1, rabbit@node2
Dearbhadh foillsichear
Gus clĂ radh cunbhalach a choileanadh, tha feum air Dearbhadh Foillsichear. Ăs aonais, tha cunnart ann gun tèid teachdaireachdan a chall. Thèid dearbhadh a chuir chun fhoillsichear Ă s deidh don teachdaireachd a bhith air a sgrĂŹobhadh gu diosc. Bidh RabbitMQ aâ sgrĂŹobhadh teachdaireachdan gu diosc chan ann nuair a gheibhear iad, ach bho Ă m gu Ă m, timcheall air ceudan milliseconds. Nuair a thèid ciudha a nochdadh, cha tèid aithne a chuir a-steach ach Ă s deidh a h-uile sgĂ than an leth-bhreac den teachdaireachd aca a sgrĂŹobhadh gu diosc. Tha seo aâ ciallachadh gu bheil cleachdadh dearbhaidhean aâ cur ri latency, ach ma tha tèarainteachd dĂ ta cudromach, tha feum orra.
Ciudha failover
Nuair a sguireas broker no a thuiteas e, bidh a h-uile stiĂširiche ciudha (maighstirean) air an nĂłd sin aâ tuiteam còmhla ris. Bidh an cruinneachadh an uairsin aâ taghadh an sgĂ than as sine de gach maighstir agus ga bhrosnachadh mar mhaighstir Ăšr.

Reis. 3. Ioma ciudha mar sgĂ than agus am poileasaidhean
Tha Broker 3 a âdol sĂŹos. Thoir an aire gu bheil sgĂ than Ciudha C air Broker 2 ga bhrosnachadh gu bhith na mhaighstir. Thoir an aire cuideachd gun deach sgĂ than Ăšr a chruthachadh airson Ciudha C air Broker 1. Bidh RabbitMQ an-còmhnaidh aâ feuchainn ris aâ bhĂ illidh mac-samhail a tha air a shònrachadh anns na poileasaidhean agad a chumail suas.

Reis. 4. Broker 3 a 'fĂ illigeadh, ag adhbharachadh ciudha C fĂ illigeadh
Bidh an ath Broker 1 a 'tuiteam! Chan eil againn ach aon broker air fhĂ gail. Tha sgĂ than Ciudha B air a bhrosnachadh gu bhith na mhaighstir.

Fig. 5
Tha sinn air Broker 1 a thilleadh. A dh'aindeoin dè cho math 'sa tha an dĂ ta air a bhith beò bho chall agus faighinn air ais a' bhròcair, thèid a h-uile teachdaireachd ciudha le sgĂ than a thoirt air falbh nuair a thèid ath-thòiseachadh. Tha seo cudromach a thoirt fa-near oir bidh buaidhean ann. Bheir sinn sĂšil air na buaidhean sin a dhâ aithghearr. Mar sin tha Broker 1 a-nis na bhall den bhuidheann a-rithist, agus bidh am buidheann aâ feuchainn ri cumail ris na poileasaidhean agus mar sin aâ cruthachadh sgĂ than air Broker 1.
Anns a 'chĂšis seo, bha call Broker 1 deiseil, mar a bha an dĂ ta, agus mar sin chaidh Ciudha B gun sgĂ than a chall gu tur.

Reis. 6. Broker 1 a 'tilleadh gu seirbheis
Tha Broker 3 air ais air-loidhne, agus mar sin bidh ciudhaichean A agus B aâ faighinn air ais na sgĂ than a chaidh a chruthachadh air gus na poileasaidhean HA aca a shĂ sachadh. Ach a-nis tha na prĂŹomh ciudha uile air aon nĂłd! Chan eil seo air leth freagarrach, tha e nas fheĂ rr cuairteachadh cothromach eadar nodan. Gu mĂŹ-fhortanach, chan eil mòran roghainnean an seo airson maighstirean ath-chothromachadh. Thig sinn air ais chun iris seo nas fhaide air adhart oir feumaidh sinn coimhead air sioncronadh ciudha an toiseach.

Reis. 7. Broker 3 a 'tilleadh gu seirbheis. A h-uile prĂŹomh ciudha air aon nĂłd!
Mar sin a-nis bu chòir dhut beachd a bhith agad air mar a tha sgĂ than aâ toirt seachad call obrach agus fulangas sgĂ inidhean. Bidh seo aâ dèanamh cinnteach gum bi cothrom ann ma dhâ fhĂ illig aon nĂłd agus a dhĂŹonas an aghaidh call dĂ ta. Ach chan eil sinn deiseil fhathast, oir ann an da-rĂŹribh tha e tòrr nas iom-fhillte.
Syncronadh
Nuair a chruthaicheas tu sgĂ than Ăšr, bidh a h-uile teachdaireachd Ăšr an-còmhnaidh air ath-aithris don sgĂ than seo agus do chĂ ch. A thaobh an dĂ ta a th âann mar-thĂ anns aâ phrĂŹomh ciudha, is urrainn dhuinn ath-riochdachadh gu sgĂ than Ăšr, a thig gu bhith na leth-bhreac iomlan den mhaighstir. Faodaidh sinn cuideachd roghnachadh gun a bhith ag ath-aithris teachdaireachdan gnĂ thaichte agus leigeil leis aâ phrĂŹomh ciudha agus an sgĂ than Ăšr tighinn còmhla ann an Ăšine, le teachdaireachdan Ăšra aâ tighinn chun earbaill agus teachdaireachdan gnĂ thaichte aâ fĂ gail ceann aâ phrĂŹomh chiudha.
Thèid an sioncronadh seo a dhèanamh gu fèin-ghluasadach no le lĂ imh agus air a riaghladh aâ cleachdadh poileasaidh ciudha. Bheir sinn sĂšil air eisimpleir.
Tha dà chiudha sgà than againn. Tha ciudha A air a shioncronachadh gu fèin-ghluasadach, agus tha Ciudha B air a shioncronachadh le là imh. Tha deich teachdaireachdan anns an dà ciudha.

Reis. 8. Dà ciudha le diofar dhòighean sioncronaidh
A-nis tha sinn aâ call Broker 3.

Reis. 9. Thuit Broker 3
Bidh Broker 3 a 'tilleadh gu seirbheis. Bidh an cruinneachadh aâ cruthachadh sgĂ than airson gach ciudha air an nĂłd Ăšr agus gu fèin-obrachail aâ sioncronadh Ciudha A Ăšr leis aâ mhaighstir. Ach, tha sgĂ than an Ciudha B Ăšr fhathast falamh. San dòigh seo tha lĂ n dhreuchd againn air Ciudha A agus dĂŹreach aon sgĂ than airson teachdaireachdan Ciudha B a thâ ann mar-thĂ .

Reis. 10. Bidh sgĂ than Ăšr Ciudha A a' faighinn a h-uile teachdaireachd a th' ann mar-thĂ , ach chan eil an sgĂ than Ăšr aig Ciudha B.
Bidh deich teachdaireachdan eile aâ ruighinn an dĂ ciudha. Bidh Broker 2 an uairsin a 'bualadh agus Ciudha A a' dol air ais chun sgĂ than as sine, a tha air Broker 1. Chan eil call dĂ ta ann nuair a dh'fhĂ illigeas e. Ann an Ciudha B, tha fichead teachdaireachd anns aâ mhaighstir agus dĂŹreach deich san sgĂ than oir cha do rinn an ciudha seo a-riamh na deich teachdaireachdan tĂšsail.

Reis. 11. Ciudha A roiligeadh air ais gu Broker 1 gun call teachdaireachdan
Bidh deich teachdaireachdan eile aâ ruighinn an dĂ ciudha. A-nis tha Broker 1 aâ tuiteam. Bidh ciudha A gu furasta aâ tionndadh chun sgĂ than gun a bhith aâ call teachdaireachdan. Ach, tha trioblaidean aig Ciudha B. Aig an ĂŹre seo is urrainn dhuinn cothrom no cunbhalachd a bharrachadh.
Ma tha sinn airson ruigsinneachd a mheudachadh, an uairsin am poileasaidh ha-adhartachadh-air-fà illigeadh bu chòir a chuir a-steach an còmhnaidh. Is e seo an luach bunaiteach, agus mar sin chan urrainn dhut am poileasaidh a shònrachadh idir. Anns a 'chÚis seo, tha sinn gu bunaiteach a' ceadachadh fà illigidhean ann an sgà than neo-shioncronaichte. Bidh seo ag adhbhrachadh gun tèid teachdaireachdan a chall, ach bidh an ciudha fhathast furasta a leughadh agus a sgrÏobhadh.

Reis. 12. Tha ciudha A air a roiligeadh air ais gu Broker 3 gun a bhith aâ call teachdaireachdan. Bidh Ciudha B aâ dol air ais gu Broker 3 le deich teachdaireachdan air chall
Faodaidh sinn cuideachd a stĂ ladh ha-promote-on-failure ann an ciall when-synced. Anns aâ chĂšis seo, an Ă ite a dhol air ais chun sgĂ than, fuirichidh an ciudha gus an till Broker 1 leis an dĂ ta aige gu modh air-loidhne. Ăs deidh dha tilleadh, tha am prĂŹomh ciudha air ais air Broker 1 gun chall dĂ ta sam bith. Tha cothrom air a thoirt seachad airson tèarainteachd dĂ ta. Ach is e modh cunnartach a tha seo a dhâ fhaodadh eadhon leantainn gu call dĂ ta iomlan, air am bi sinn a âcoimhead a dhâ aithghearr.

Reis. 13. Chan eil Ciudha B fhathast ri fhaighinn Ă s deidh dha Broker 1 a chall
Faodaidh tu faighneachd, âA bheil e nas fheĂ rr sioncronadh fèin-ghluasadach a chleachdadh gu brĂ th?â Is e am freagairt gur e gnĂŹomhachd bacaidh a thâ ann an sioncronachadh. Rè sioncronaidh, chan urrainn don phrĂŹomh ciudha gnĂŹomhachd leughaidh no sgrĂŹobhaidh sam bith a dhèanamh!
Bheir sinn sÚil air eisimpleir. A-nis tha ciudha glè fhada againn. Ciamar as urrainn dhaibh fàs gu leithid de mheud? Airson grunn adhbharan:
- Chan eil ciudhaichean air an cleachdadh gu gnĂŹomhach
- Tha iad sin nan ciudhaichean aig astar luath, agus an-drĂ sta tha luchd-cleachdaidh slaodach
- Is e ciudhaichean aig astar luath a thâ ann, tha glitch air a bhith ann agus tha luchd-ceannach a âglacadh suas

Reis. 14. Dà ciudha mòr le diofar mhodhan sioncronaidh
A-nis tha Broker 3 a âtuiteam.

Reis. 15. Bidh Broker 3 a 'tuiteam, a' fĂ gail aon mhaighstir agus sgĂ than anns gach ciudha
Bidh Broker 3 aâ tighinn air ais air-loidhne agus tha sgĂ thanan Ăšra gan cruthachadh. Bidh PrĂŹomh Ciudha A aâ tòiseachadh ag ath-aithris teachdaireachdan gnĂ thaichte chun sgĂ than Ăšr, agus rè na h-Ăšine seo chan eil an Ciudha ri fhaighinn. Bheir e dĂ uair a thĂŹde airson an dĂ ta ath-riochdachadh, agus mar thoradh air sin bidh dĂ uair a thĂŹde de dhâ Ăšine downt airson aâ chiudha seo!
Ach, tha Ciudha B fhathast ri fhaighinn fad na h-Ăšine. Dh'ĂŹobair i beagan dreuchd airson ruigsinneachd.

Reis. 16. Chan eil ciudha fhathast ri fhaighinn aig Ă m sioncronaidh
Ăs deidh dĂ uair a thĂŹde, bidh Ciudha A ri fhaighinn cuideachd agus faodaidh e tòiseachadh aâ gabhail ri leughadh is sgrĂŹobhadh a-rithist.
Ărachaidhean
Tha an giĂšlan bacaidh seo aig Ă m sioncronaidh ga dhèanamh duilich cruinneachaidhean Ăšrachadh le ciudhaichean glè mhòr. Aig Ă m air choreigin, feumar am prĂŹomh nĂłd ath-thòiseachadh, a tha aâ ciallachadh an dĂ rna cuid atharrachadh gu sgĂ than no an ciudha a chuir dheth fhad âs a tha am frithealaiche ag Ăšrachadh. Ma roghnaicheas sinn gluasad, caillidh sinn teachdaireachdan mura h-eil na sgĂ than air an sioncronachadh. Gu gnĂ thach, aig Ă m briseadh broker, cha tèid fĂ iligeadh gu sgĂ than gun shioncronachadh a dhèanamh. Tha seo aâ ciallachadh, cho luath âs a thilleas am broker, nach caill sinn teachdaireachdan sam bith, bâ e ciudha sĂŹmplidh an aon mhilleadh. Tha riaghailtean giĂšlain nuair a tha broker air a dhĂŹ-cheangal air a shuidheachadh le poileasaidh ha-promote-on-shutdown. Faodaidh tu aon de dhĂ luach a shuidheachadh:
always= tha gluasad gu sgĂ thanan gun shioncronachadh air a chomasachadhwhen-synced= gluasad gu sgĂ than sioncronaich a-mhĂ in, air neo cha ghabh an ciudha a leughadh agus nach gabh sgrĂŹobhadh. Bidh an ciudha aâ tilleadh gu seirbheis cho luath âs a thilleas am broker
Aon dòigh no dòigh eile, le ciudhaichean mòra feumaidh tu taghadh eadar call dà ta agus neo-ruigsinneachd.
Nuair a bhios ruigsinneachd aâ leasachadh tèarainteachd dĂ ta
Tha aon dhuilgheadas eile ri bheachdachadh mus dèan thu co-dhÚnadh. Ged a tha sioncronadh fèin-ghluasadach nas fheà rr airson call dreuchd, ciamar a bheir e buaidh air tèarainteachd dà ta? Gu dearbh, le call dreuchd nas fheà rr, chan eil RabbitMQ cho dualtach teachdaireachdan gnà thaichte a chall, ach dè mu dheidhinn teachdaireachdan Úra bho fhoillsichearan?
An seo feumaidh tu beachdachadh air na leanas:
- Am b' urrainn dhan fhoillsichear dĂŹreach mearachd a thilleadh agus an t-seirbheis shuas an abhainn no an cleachdaiche feuchainn ris 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-urrainn don fhoillsichear ach an teachdaireachd a chuir air falbh, gu dearbh, bidh leasachadh ruigsinneachd cuideachd aâ leasachadh tèarainteachd dĂ ta.
Mar sin, feumar cothromachadh a shireadh, agus tha am fuasgladh an urra ris an t-suidheachadh sònraichte.
Duilgheadasan le ha-promote-on-failure=nuair a thèid a shioncronachadh
Idea ha-adhartachadh-air-fĂ illigeadh= nuair a chaidh a shioncronachadh is e sin gun cuir sinn stad air atharrachadh gu sgĂ than gun shioncronachadh agus mar sin aâ seachnadh call dĂ ta. Tha an ciudha fhathast gun leughadh no sgrĂŹobhadh. An Ă ite sin, bidh sinn aâ feuchainn ris aâ bhròcair a chaidh a thubaist fhaighinn air ais leis an dĂ ta aige slĂ n gus an urrainn dha ath-thòiseachadh ag obair mar mhaighstir gun chall dĂ ta.
Ach (agus is e fĂŹor mhòr a tha seo) ma tha am broker air an dĂ ta aige a chall, tha duilgheadas mòr againn: tha an ciudha air chall! Tha a h-uile dĂ ta air falbh! FiĂš ma tha sgĂ than agad a bhios mar as trice aâ dol suas ris aâ phrĂŹomh ciudha, thèid na sgĂ than sin a thilgeil air falbh cuideachd.
Gus nĂłd leis an aon ainm ath-chur ris, bidh sinn ag iarraidh air aâ bhraisle an nĂłd caillte a dhĂŹochuimhneachadh (leis an Ă ithne rabbitmqctl forget_cluster_node) agus tòisich broker Ăšr leis an aon ainm aoigheachd. Fhad âs a tha am buidheann aâ cuimhneachadh air an nĂłd a chaidh air chall, tha cuimhne aige air an t-seann ciudha agus sgĂ than gun shioncronachadh. Nuair a thèid iarraidh air buidheann a bhith aâ dĂŹochuimhneachadh nĂłd dĂŹlleachdan, thathas cuideachd aâ dĂŹochuimhneachadh aâ chiudha sin. A-nis feumaidh sinn ath-aithris a dhèanamh air. Chaill sinn an dĂ ta gu lèir, ged a bha sgĂ than againn le seata de dhĂ ta ann am pĂ irt. Bhiodh e na bâ fheĂ rr atharrachadh gu sgĂ than neo-shioncronaichte!
Mar sin, sioncronadh lĂ imhe (agus fĂ illigeadh air sioncronadh) ann an co-bhonn le ha-promote-on-failure=when-synced, nam bheachd-sa, gu math cunnartach. Tha na docaichean ag rĂ dh gu bheil an roghainn seo ann airson tèarainteachd dĂ ta, ach is e sgian le dĂ oir a thâ ann.
Maighstir ag ath-chothromachadh
Mar a chaidh a ghealltainn, bidh sinn a 'tilleadh chun an duilgheadas a thaobh cruinneachadh de mhaighstirean air aon no grunn nodan. Faodaidh seo tachairt eadhon mar thoradh air Ăšrachadh brabhsair leantainneach. Ann am buidheann trĂŹ-nĂłd, cruinnichidh a h-uile prĂŹomh ciudha air aon no dhĂ .
Faodaidh ath-chothromachadh maighstirean a bhith na dhuilgheadas airson dĂ adhbhar:
- Chan eil innealan math ann airson ath-chothromachadh a dhèanamh
- Sioncronadh ciudha
Tha treas pĂ rtaidh ann airson ath-chothromachadh , nach eil aâ faighinn taic oifigeil. A thaobh plugins treas-phĂ rtaidh ann an leabhar-lĂ imhe RabbitMQ : âTha am plugan aâ toirt seachad innealan rèiteachaidh is aithris a bharrachd, ach chan eil sgioba RabbitMQ a âtoirt taic no dearbhadh dha. Cleachd air do chunnart fhèin."
Tha cleas eile ann am prĂŹomh chiudha a ghluasad tro phoileasaidhean HA. Tha an leabhar-lĂ imhe a 'toirt iomradh airson seo. Bidh e ag obair mar seo:
- Aâ toirt air falbh a h-uile sgĂ than aâ cleachdadh poileasaidh sealach aig a bheil prĂŹomhachas nas Ă irde na am poileasaidh HA a thâ ann an-drĂ sta.
- Ag atharrachadh poileasaidh sealach HA gus modh nĂłd a chleachdadh, aâ sònrachadh an nĂłd air am bu chòir am prĂŹomh ciudha a ghluasad.
- Sioncronaich an ciudha airson imrich putaidh.
- Ăs deidh an imrich a bhith deiseil, cuir Ă s don phoileasaidh sealach. Bidh aâ chiad phoileasaidh HA aâ tighinn gu buil agus tha an Ă ireamh riatanach de sgĂ than air a chruthachadh.
Is e an ana-cothrom a thâ ann gur dòcha nach obraich an dòigh-obrach seo ma tha ciudhaichean mòra agad no ma tha feumalachdan call obrach teann agad.
A-nis chĂŹ sinn mar a bhios cruinneachaidhean RabbitMQ ag obair le sgaraidhean lĂŹonra.
A 'call ceangal
Tha nodan siostam sgaoilte ceangailte le ceanglaichean lĂŹonra, agus faodar agus thèid ceanglaichean lĂŹonra a dhĂŹ-cheangal. Tha tricead brisidhean an urra ris aâ bhun-structar ionadail no cho earbsach sa tha an sgòth taghte. Ann an suidheachadh sam bith, feumaidh siostaman sgaoilte a bhith comasach air dèiligeadh riutha. A-rithist tha roghainn againn eadar ruigsinneachd agus cunbhalachd, agus a-rithist is e an deagh naidheachd gu bheil RabbitMQ aâ toirt seachad an dĂ roghainn (dĂŹreach chan ann aig an aon Ă m).
Le RabbitMQ tha dĂ phrĂŹomh roghainn againn:
- Leig le sgaradh loidsigeach (sgoltadh-eanchainn). Bidh seo aâ dèanamh cinnteach gu bheil e ri fhaighinn, ach dhâ fhaodadh sin call dĂ ta adhbhrachadh.
- Cuir Ă comas dealachadh loidsigeach. Dhâ fhaodadh sin call geĂ rr-Ăšine a chall a rèir mar a bhios teachdaichean aâ ceangal ris aâ bhuidheann. Faodaidh seo cuideachd leantainn gu neo-ruigsinneachd iomlan ann am buidheann dĂ -nĂłd.
Ach dè a thâ ann an sgaradh loidsigeach? Seo nuair a bhios buidheann aâ sgaradh na dhĂ air sgĂ th call cheanglaichean lĂŹonra. Air gach taobh, tha na sgĂ than air an Ă rdachadh gu maighstir, gus am bi grunn mhaighstirean ann mu dheireadh.

Reis. 17. PrÏomh chiudha agus dà sgà than, gach fear air nód air leth. An uairsin bidh fà illigeadh lÏonra a 'tachairt agus thèid aon sgà than a sgaradh. Tha an nód dealaichte a 'faicinn gu bheil an dithis eile air tuiteam dheth agus a' brosnachadh a sgà than chun a 'mhaighstir. Tha dà phrÏomh chiudha againn a-nis, an dà chuid a ghabhas sgrÏobhadh agus a ghabhas leughadh.
Ma chuireas foillsichearan dĂ ta chun an dĂ mhaighstir, bidh dĂ leth-bhreac eadar-dhealaichte againn den ciudha.
Tha na modhan eadar-dhealaichte aig RabbitMQ aâ toirt seachad cothrom no cunbhalachd.
Mothaich am modh (bunaiteach)
Bidh am modh seo aâ dèanamh cinnteach Ă ruigsinneachd. Ăs deidh call ceangail, bidh sgaradh loidsigeach a âtachairt. Ăs deidh don cheangal a bhith air ath-nuadhachadh, feumaidh an rianaire co-dhĂšnadh dè am pĂ irt a bheir prĂŹomhachas dha. Thèid an taobh call ath-thòiseachadh agus thèid a h-uile dĂ ta cruinnichte air an taobh sin a chall.

Reis. 18. Tha trĂŹ foillsichearan co-cheangailte ri trĂŹ brocairean. Taobh a-staigh, bidh an cruinneachadh aâ ruith a h-uile iarrtas chun phrĂŹomh ciudha air Broker 2.
A-nis tha sinn a 'call Broker 3. Tha e a 'faicinn gu bheil brocairean eile air tuiteam dheth agus a' brosnachadh a sgĂ than don mhaighstir. Seo mar a tha sgaradh loidsigeach a 'tachairt.

Reis. 19. Roinn loidsigeach (sgoltadh-eanchainn). Bidh clĂ ran aâ dol a-steach do dhĂ phrĂŹomh chiudha, agus tha an dĂ leth-bhreac eadar-dhealaichte.
Tha ceangal air ath-nuadhachadh, ach tha dealachadh loidsigeach fhathast ann. Feumaidh an rianaire an taobh a tha aâ call a thaghadh le lĂ imh. Anns a 'chĂšis gu h-ĂŹosal, bidh an rianaire ag ath-nuadhachadh Broker 3. Tha a h-uile teachdaireachd nach do stiĂšir e airson a tharraing air chall.

Reis. 20. Bidh an rianaire aâ cur Ă comas Broker 3.

Reis. 21. Bidh an rianadair a 'tòiseachadh Broker 3 agus bidh e a' tighinn còmhla ris a 'chlà ir, a' call a h-uile teachdaireachd a chaidh fhà gail an sin.
Nuair a chaidh ceanglaichean a chall agus Ă s deidh ath-nuadhachadh, bha an cruinneachadh agus an ciudha seo rim faighinn airson leughadh agus sgrĂŹobhadh.
Modh fèin-slà nachaidh
Ag obair mar an ceudna ri modh Ignore, ach a-mhĂ in gu bheil am buidheann fhèin aâ taghadh an taobh a tha aâ call gu fèin-ghluasadach Ă s deidh dhaibh ceangal a sgaradh agus ath-nuadhachadh. Bidh an taobh a tha aâ call aâ tilleadh don bhuidheann falamh, agus bidh an ciudha aâ call a h-uile teachdaireachd a chaidh a chuir chun taobh sin a-mhĂ in.
Cuir stad air Modh Mion-chinnidh
Mura h-eil sinn airson cead a thoirt do sgaradh loidsigeach, is e an aon roghainn a thâ againn a bhith aâ cuir air falbh leughaidhean agus sgrĂŹobhadh air an taobh as lugha Ă s deidh sgaradh aâ chnuasaich. Nuair a chĂŹ am broker gu bheil e air an taobh nas lugha, bidh e a âcuir stad air obair, is e sin, bidh e aâ dĂšnadh a h-uile ceangal a th âann agus aâ diĂšltadh feadhainn Ăšra sam bith. Aon uair san diog bidh e aâ sgrĂšdadh airson ath-nuadhachadh ceangail. Aon uair âs gu bheil an ceangal air ath-nuadhachadh, bidh e ag obair a-rithist agus aâ tighinn a-steach don bhuidheann.

Reis. 22. Tha trĂŹ foillsichearan co-cheangailte ri trĂŹ brocairean. Taobh a-staigh, bidh an cruinneachadh aâ ruith a h-uile iarrtas chun phrĂŹomh ciudha air Broker 2.
Bidh brocairean 1 agus 2 an uairsin a 'sgaradh bho Broker 3. An Ă ite a bhith a 'brosnachadh an sgĂ than gu maighstir, bidh Broker 3 a' stad agus a 'fĂ s neo-riatanach.

Reis. 23. Bidh Broker 3 aâ stad, aâ dĂŹ-cheangal a h-uile neach-dèiligidh, agus aâ diĂšltadh iarrtasan ceangail.
Aon uair âs gu bheil an ceangal air ath-nuadhachadh, tillidh e chun bhuidheann.
Bheir sinn sĂšil air eisimpleir eile far a bheil aâ phrĂŹomh ciudha air Broker 3.

Reis. 24. PrĂŹomh ciudha air Broker 3.
An uairsin bidh an aon chall ceangail a âtachairt. Bidh Broker 3 aâ stad leis gu bheil e air an taobh as lugha. Air an taobh eile, tha na nodan a 'faicinn gu bheil Broker 3 air tuiteam dheth, agus mar sin tha an sgĂ than as sine bho Brokers 1 agus 2 air a bhrosnachadh gu bhith na mhaighstir.

Reis. 25. Eadar-ghluasad gu Broker 2 mura h-eil Broker 3 ri fhaighinn.
Nuair a thèid ceangal ath-nuadhachadh, thèid Broker 3 a-steach don bhuidheann.

Reis. 26. Tha am braisle air tilleadh gu obrachadh Ă bhaisteach.
Is e an rud cudthromach a thuigsinn an seo gum faigh sinn cunbhalachd, ach gum faigh sinn cothrom cuideachd, ĐľŃНи Bidh sinn gu soirbheachail aâ gluasad teachdaichean chun mhòr-chuid den roinn. Airson aâ mhòr-chuid de shuidheachaidhean, bhithinn gu pearsanta aâ taghadh am modh Pause Minority, ach tha e gu mòr an urra ris aâ chĂšis fa-leth.
Gus dèanamh cinnteach gu bheil e ri fhaighinn, tha e cudromach dèanamh cinnteach gu bheil teachdaichean gu soirbheachail aâ ceangal ris an aoigh. Bheir sinn sĂšil air na roghainnean againn.
Aâ dèanamh cinnteach Ă ceanglaichean teachdaiche
Tha grunn roghainnean againn a thaobh mar a stiĂšireas sinn teachdaichean gu prĂŹomh phĂ irt aâ chnuasaich no gu nodan obrach (Ă s deidh dha aon nĂłd fĂ iligeadh) Ă s deidh call ceangail. An toiseach, cuimhnichidh sinn gu bheil ciudha sònraichte air a chumail air nĂłd sònraichte, ach gu bheil slighe agus poileasaidhean air an ath-aithris thar gach nod. Faodaidh teachdaichean ceangal a dhèanamh ri nĂłd sam bith, agus stiĂširidh slighe a-staigh iad far am feum iad a dhol. Ach nuair a thèid nĂłd a chuir dheth, bidh e a âdiĂšltadh ceanglaichean, agus mar sin feumaidh teachdaichean ceangal ri nĂłd eile. Ma thuiteas an nĂłd dheth, chan eil mòran a nĂŹ e idir.
Na roghainnean againn:
- Gheibhear a-steach don bhuidheann le bhith aâ cleachdadh inneal-cothromachaidh luchdan a bhios dĂŹreach aâ rothaireachd tro na nodan agus bidh teachdaichean aâ feuchainn ri ceangal a-rithist gus am bi iad soirbheachail. Ma tha nĂłd sĂŹos no crochte, bidh oidhirpean gus ceangal ris an nĂłd sin aâ fĂ iligeadh, ach thèid oidhirpean Ă s deidh sin gu frithealaichean eile (ann am fasan robin cruinn). Tha seo freagarrach airson call ceangail geĂ rr-Ăšine no frithealaiche sĂŹos a thèid a thoirt air ais gu sgiobalta.
- Faigh a-steach don bhuidheann tro chothromachadh luchdan agus thoir air falbh nodan crochte / fĂ illigte bhon liosta cho luath âs a lorgar iad. Ma nĂŹ sinn seo gu sgiobalta, agus ma tha e comasach do luchd-cleachdaidh an ceangal a dhèanamh a-rithist, gheibh sinn cothrom seasmhach.
- Thoir liosta de na nodan gu lèir do gach neach-dèiligidh, agus bidh an neach-dèiligidh aâ taghadh fear dhiubh air thuaiream nuair a bhios iad aâ ceangal. Ma gheibh e mearachd nuair a tha e aâ feuchainn ri ceangal a dhèanamh, gluaisidh e chun ath nĂłd air an liosta gus an ceangail e.
- Thoir air falbh trafaic bho nĂłd a dhâ fhĂ illig / crochte a âcleachdadh DNS. Tha seo air a dhèanamh le bhith aâ cleachdadh TTL beag.
toraidhean
Tha na buannachdan agus na h-eas-bhuannachdan aig cruinneachadh RabbitMQ. Is iad na h-eas-bhuannachdan as miosa:
- nuair a thèid iad a-steach do bhuidheann, bidh nodan aâ tilgeil air falbh an dĂ ta aca;
- tha bacadh sioncronaidh ag adhbhrachadh nach bi an ciudha ri fhaighinn.
Tha a h-uile co-dhĂšnadh duilich a 'tighinn bhon dĂ fheart ailtireachd seo. Nam bâ urrainn dha RabbitMQ dĂ ta a shĂ bhaladh nuair a thèid an cruinneachadh a-rithist, bhiodh sioncronadh nas luaithe. Nam biodh e comasach air sioncronadh gun bhacadh, bhiodh e na bâ fheĂ rr taic a thoirt do ciudhaichean mòra. Dhèanadh socrachadh an dĂ chĂšis seo adhartas mòr air coileanadh RabbitMQ mar theicneòlas teachdaireachd a tha fulangach le lochdan agus a tha ri fhaighinn gu mòr. Bhithinn leisg RabbitMQ a mholadh le cruinneachadh anns na suidheachaidhean a leanas:
- LĂŹonra neo-earbsach.
- Stòradh neo-earbsach.
- Ciudha glè fhada.
Nuair a thig e gu roghainnean ruigsinneachd Ă rd, beachdaich air na leanas:
ha-promote-on-failure=alwaysha-sync-mode=manualcluster_partition_handling=ignore(noautoheal)- teachdaireachdan leantainneach
- dèan cinnteach gu bheil teachdaichean aâ ceangal ris an nĂłd gnĂŹomhach nuair a dhâ fhailicheas cuid de nĂłd
Airson cunbhalachd (tèarainteachd dà ta), beachdaich air na roghainnean a leanas:
- Foillsichear a 'dearbhadh agus a' toirt buidheachas lĂ imhe air taobh luchd-cleachdaidh
ha-promote-on-failure=when-synced, mas urrainn dha na foillsichearan feuchainn a-rithist nas fhaide air adhart agus ma tha stòradh fĂŹor earbsach agad! Mur eil cuir=always.ha-sync-mode=automatic(ach airson ciudhaichean mòra neo-ghnĂŹomhach dhâ fhaodadh gum bi feum air modh lĂ imhe; beachdaich cuideachd an toireadh dĂŹth teachdaireachdan air chall)- Cuir stad air modh Mion-chinnidh
- teachdaireachdan leantainneach
Chan eil sinn air dèiligeadh ris a h-uile cÚis mu fhulangas lochdan agus ruigsinneachd à rd fhathast; mar eisimpleir, mar a choileanas tu modhan rianachd gu tèarainte (leithid Úrachadh leantainneach). Feumaidh sinn cuideachd bruidhinn mu dheidhinn caidreachas agus plugan Shovel.
Ma tha mi air rud sam bith eile a chall, leig fios dhomh.
Faic cuideachd mo , far am bi mi aâ dèanamh milleadh air cruinneachadh RabbitMQ aâ cleachdadh Docker and Blockade gus deuchainn a dhèanamh air cuid de na suidheachaidhean call teachdaireachd a tha air am mĂŹneachadh san artaigil seo.
Artaigilean roimhe san t-sreath:
Ăir. 1 -
Ăir. 2 -
Ăir. 3 -
Source: www.habr.com
