Pàtranan ailtireachd goireasach

Hi Habr!

Mar thoradh air tachartasan làithreach mar thoradh air coronavirus, tha grunn sheirbheisean eadar-lìn air tòiseachadh a’ faighinn barrachd luchd. Mar eisimpleir, Chuir aon de na slabhraidhean reic san RA stad air an làrach òrduigh air-loidhne aca., oir cha robh comas gu leòr ann. Agus chan eil e an-còmhnaidh comasach frithealaiche a luathachadh le bhith dìreach a’ cur uidheamachd nas cumhachdaiche ris, ach feumar iarrtasan teachdaiche a phròiseasadh (air neo thèid iad gu farpaisich).

San artaigil seo bruidhnidh mi goirid mu chleachdaidhean mòr-chòrdte a leigeas leat seirbheis luath is fulangach a chruthachadh. Ach, bho na sgeamaichean leasachaidh a dh’ fhaodadh a bhith ann, thagh mi dìreach an fheadhainn a tha ann an-dràsta furasta a chleachdadh. Airson gach nì, tha leabharlannan deiseil agad, no tha cothrom agad an duilgheadas fhuasgladh le bhith a’ cleachdadh àrd-ùrlar sgòthan.

Sgèileadh còmhnard

Am puing as sìmplidh agus as aithnichte. Gu h-àbhaisteach, is e an dà sgeama cuairteachaidh luchd as cumanta sgèileadh còmhnard agus dìreach. Anns a 'chiad chùis leigidh tu le seirbheisean ruith aig an aon àm, agus mar sin a’ cuairteachadh an luchd eatorra. Anns an dàrna h-àite bidh thu ag òrdachadh frithealaichean nas cumhachdaiche no a’ dèanamh an còd as fheàrr.

Mar eisimpleir, gabhaidh mi stòradh faidhle sgòthan eas-chruthach, is e sin, cuid de analogue de OwnCloud, OneDrive, agus mar sin air adhart.

Tha dealbh àbhaisteach de leithid de chuairt gu h-ìosal, ach chan eil e a’ sealltainn ach iom-fhillteachd an t-siostaim. Às dèidh na h-uile, feumaidh sinn dòigh air choireigin sioncronaich na seirbheisean. Dè thachras ma shàbhaileas an neach-cleachdaidh faidhle bhon chlàr agus an uairsin ag iarraidh fhaicinn bhon fhòn?

Pàtranan ailtireachd goireasach
An diofar eadar na dòighean-obrach: ann an sgèileadh dìreach, tha sinn deiseil gus cumhachd nodan a mheudachadh, agus ann an sgèileadh còmhnard, tha sinn deiseil gus nodan ùra a chuir ris gus an luchd a sgaoileadh.

CQRS

Ceist Àithne Sgaradh Uallach Pàtran caran cudromach, leis gu bheil e a’ leigeil le diofar teachdaichean chan ann a-mhàin ceangal a dhèanamh ri diofar sheirbheisean, ach cuideachd na h-aon sruthan tachartais fhaighinn. Chan eil na buannachdan aige cho follaiseach airson tagradh sìmplidh, ach tha e air leth cudromach (agus sìmplidh) airson seirbheis thrang. A bhrìgh: cha bu chòir do shruthan dàta a-steach is a-mach a dhol tarsainn. Is e sin, chan urrainn dhut iarrtas a chuir a-steach agus a bhith an dùil ri freagairt; an àite sin, cuiridh tu iarrtas gu seirbheis A, ach gheibh thu freagairt bho sheirbheis B.

Is e a 'chiad bhuannachd den dòigh-obrach seo an comas an ceangal a bhriseadh (ann an seagh farsaing an fhacail) fhad' sa tha e a 'cur an gnìomh iarrtas fada. Mar eisimpleir, gabhamaid sreath àbhaisteach nas lugha no nas lugha:

  1. Chuir an cliant iarrtas chun an fhrithealaiche.
  2. Thòisich am frithealaiche air ùine giollachd fada.
  3. Fhreagair am frithealaiche an teachdaiche leis an toradh.

Smaoinich sinn ann am puing 2 gun deach an ceangal a bhriseadh (no an lìonra ath-cheangal, no chaidh an neach-cleachdaidh gu duilleag eile, a 'briseadh a' cheangail). Anns a 'chùis seo, bidh e doirbh don fhrithealaiche freagairt a chuir chun neach-cleachdaidh le fiosrachadh mu dè dìreach a chaidh a phròiseasadh. A’ cleachdadh CQRS, bidh an t-sreath beagan eadar-dhealaichte:

  1. Tha an neach-dèiligidh air fo-sgrìobhadh airson ùrachaidhean.
  2. Chuir an cliant iarrtas chun an fhrithealaiche.
  3. Fhreagair am frithealaiche “gabhail ris an iarrtas.”
  4. Fhreagair am frithealaiche leis an toradh tron ​​​​t-sianal bho phuing “1”.

Pàtranan ailtireachd goireasach

Mar a chì thu, tha an sgeama beagan nas iom-fhillte. A bharrachd air an sin, tha an dòigh freagairt-iarrtas intuitive a dhìth an seo. Ach, mar a chì thu, cha toir briseadh ceangail fhad ‘s a tha thu a’ làimhseachadh iarrtas mearachd. A bharrachd air an sin, ma tha an neach-cleachdaidh gu dearbh ceangailte ris an t-seirbheis bho ghrunn innealan (mar eisimpleir, bho fhòn-làimhe agus bho chlàr), faodaidh tu dèanamh cinnteach gu bheil am freagairt a ’tighinn chun dà inneal.

Gu h-inntinneach, bidh an còd airson teachdaireachdan a thig a-steach a làimhseachadh a’ fàs mar an ceudna (chan e 100%) an dà chuid airson tachartasan air an tug an neach-dèiligidh buaidh, agus airson tachartasan eile, a’ gabhail a-steach an fheadhainn bho luchd-dèiligidh eile.

Ach, ann an da-rìribh gheibh sinn bònas a bharrachd leis gu bheil e comasach sruthadh aon-stiùiridh a làimhseachadh ann an stoidhle gnìomh (a ’cleachdadh RX agus an leithid). Agus tha seo mar-thà na fhìor bhuannachd, oir gu dearbh faodar an tagradh a dhèanamh gu tur reactive, agus cuideachd a ’cleachdadh dòigh-obrach gnìomh. Airson prògraman geir, faodaidh seo leasachadh agus goireasan taice a shàbhaladh gu mòr.

Ma chuireas sinn an dòigh-obrach seo còmhla ri sgèileadh còmhnard, an uairsin mar bhuannachd gheibh sinn an comas iarrtasan a chuir gu aon fhrithealaiche agus freagairtean fhaighinn bho neach eile. Mar sin, faodaidh an neach-dèiligidh an t-seirbheis a tha freagarrach dha a thaghadh, agus bidh an siostam a-staigh fhathast comasach air tachartasan a phròiseasadh gu ceart.

Stòradh Tachartas

Mar a tha fios agad, is e aon de phrìomh fheartan siostam sgaoilte nach eil ùine chumanta ann, earrann riatanach cumanta. Airson aon phròiseas, faodaidh tu sioncronadh a dhèanamh (air na h-aon mutexes), anns a bheil thu cinnteach nach eil duine eile a’ cur a’ chòd seo an gnìomh. Ach, tha seo cunnartach airson siostam sgaoilte, oir bidh feum air os-cionn, agus marbhaidh e cuideachd bòidhchead sgèileadh - bidh na pàirtean uile fhathast a 'feitheamh ri aon.

Às an seo gheibh sinn fìrinn chudromach - chan urrainnear siostam a tha air a sgaoileadh gu luath a shioncronachadh, oir an uairsin lughdaichidh sinn coileanadh. Air an làimh eile, gu tric bidh feum againn air cunbhalachd sònraichte eadar co-phàirtean. Agus airson seo faodaidh tu an dòigh-obrach a chleachdadh le cunbhalachd mu dheireadh, far a bheil e cinnteach mura h-eil atharrachadh dàta ann airson ùine às deidh an ùrachadh mu dheireadh (“mu dheireadh”), tillidh a h-uile ceist an luach ùraichte mu dheireadh.

Tha e cudromach tuigsinn gu bheil e air a chleachdadh gu tric airson stòran-dàta clasaigeach cunbhalachd làidir, far a bheil an aon fhiosrachadh aig gach nód (tha seo gu tric air a choileanadh anns a’ chùis far a bheilear den bheachd gu bheil an gnothach air a stèidheachadh dìreach às deidh don dàrna frithealaiche freagairt). Tha beagan fois an seo mar thoradh air na h-ìrean iomallachd, ach tha am beachd coitcheann fhathast mar a tha e - faodaidh tu a bhith beò ann an saoghal gu tur co-sheirm.

Ach, rachamaid air ais chun obair thùsail. Ma ghabhas pàirt den t-siostam a thogail le cunbhalachd mu dheireadh, an uairsin is urrainn dhuinn an diagram a leanas a thogail.

Pàtranan ailtireachd goireasach

Feartan cudromach den dòigh-obrach seo:

  • Tha gach iarrtas a thig a-steach air a chuir ann an aon ciudha.
  • Fhad ‘s a bhios iad a’ làimhseachadh iarrtas, faodaidh an t-seirbheis gnìomhan a chuir ann an ciudha eile.
  • Tha aithnichear aig gach tachartas a thig a-steach (a tha riatanach airson dùblachadh).
  • Bidh an ciudha ag obair gu ideòlach a rèir an sgeama “eàrr-ràdh a-mhàin”. Chan urrainn dhut eileamaidean a thoirt air falbh no an ath-rèiteachadh.
  • Bidh an ciudha ag obair a rèir sgeama FIFO (duilich airson an tautology). Ma dh'fheumas tu coileanadh co-shìnte a dhèanamh, an uairsin aig aon ìre bu chòir dhut rudan a ghluasad gu ciudha eadar-dhealaichte.

Leig dhomh do chuimhneachadh gu bheil sinn a’ beachdachadh air cùis stòradh fhaidhlichean air-loidhne. Anns a 'chùis seo, seallaidh an siostam rudeigin mar seo:

Pàtranan ailtireachd goireasach

Tha e cudromach nach eil na seirbheisean san dealbh gu riatanach a’ ciallachadh frithealaiche air leth. Faodaidh eadhon am pròiseas a bhith mar an ceudna. Tha rud eile cudromach: gu h-ideòlach, tha na rudan sin air an sgaradh ann an dòigh a tha e furasta sgèileadh còmhnard a chuir an sàs.

Agus airson dà neach-cleachdaidh seallaidh an diagram mar seo (tha seirbheisean airson luchd-cleachdaidh eadar-dhealaichte air an comharrachadh ann an dathan eadar-dhealaichte):

Pàtranan ailtireachd goireasach

Bònasan bho leithid de mheasgachadh:

  • Tha seirbheisean giollachd fiosrachaidh air an sgaradh. Tha na ciudha cuideachd air an sgaradh. Ma dh’ fheumas sinn an siostam a mheudachadh, feumaidh sinn dìreach barrachd sheirbheisean a chuir air bhog air barrachd luchd-frithealaidh.
  • Nuair a gheibh sinn fiosrachadh bho neach-cleachdaidh, chan fheum sinn feitheamh gus an tèid an dàta a shàbhaladh gu tur. Air an làimh eile, feumaidh sinn dìreach “ceart gu leòr” a fhreagairt agus an uairsin tòiseachadh air obair mean air mhean. Aig an aon àm, bidh an ciudha a ’socrachadh stùcan, leis gu bheil cuir ris rud ùr a’ tachairt gu sgiobalta, agus chan fheum an neach-cleachdaidh feitheamh ri pas iomlan tron ​​​​chearcall gu lèir.
  • Mar eisimpleir, chuir mi seirbheis dì-dhùblachadh ris a bhios a’ feuchainn ri faidhlichean co-ionann a chur còmhla. Ma dh’ obraicheas e airson ùine mhòr ann an 1% de chùisean, cha mhòr gum mothaich an neach-dèiligidh e (faic gu h-àrd), rud a tha na bhuannachd mhòr, leis nach fheum sinn a bhith nas luaithe agus earbsach XNUMX%.

Ach, tha na h-eas-bhuannachdan rim faicinn sa bhad:

  • Tha an siostam againn air a cunbhalachd teann a chall. Tha seo a’ ciallachadh ma tha, mar eisimpleir, fo-sgrìobhadh do sheirbheisean eadar-dhealaichte, gu teòiridheach gheibh thu suidheachadh eadar-dhealaichte (oir is dòcha nach bi ùine aig aon de na seirbheisean fios fhaighinn bhon ciudha a-staigh). Mar thoradh eile, chan eil ùine cumanta aig an t-siostam a-nis. Is e sin, tha e do-dhèanta, mar eisimpleir, a h-uile tachartas a sheòrsachadh dìreach a rèir àm ruighinn, oir is dòcha nach bi na gleocaichean eadar frithealaichean sioncronaich (a bharrachd air an sin, is e utopia a th ’ann an aon ùine air dà fhrithealaiche).
  • Chan urrainnear tachartasan sam bith a thoirt air ais a-nis (mar a ghabhadh dèanamh le stòr-dàta). An àite sin, feumaidh tu tachartas ùr a chuir ris - tachartas dìolaidh, a dh'atharraicheas an staid mu dheireadh chun an tè a tha a dhìth. Mar eisimpleir bho raon coltach ris: gun a bhith ag ath-sgrìobhadh eachdraidh (a tha dona ann an cuid de chùisean), chan urrainn dhut gealltanas a thoirt air ais ann an git, ach faodaidh tu rud sònraichte a dhèanamh. tiomnadh air ais, a tha gu bunaiteach dìreach a’ tilleadh an t-seann stàit. Ach, mairidh an dà chuid gealltanas mearachdach agus an gluasad air ais ann an eachdraidh.
  • Dh’ fhaodadh an sgeama dàta atharrachadh bho fhoillseachadh gu foillseachadh, ach cha bhith e comasach do sheann thachartasan ùrachadh chun ìre ùr tuilleadh (leis nach urrainnear tachartasan atharrachadh ann am prionnsapal).

Mar a chì thu, tha Stòradh Tachartas ag obair gu math le CQRS. A bharrachd air an sin, tha e mar-thà duilich siostam a chuir an gnìomh le ciudhaichean èifeachdach is goireasach, ach gun a bhith a’ sgaradh sruthan dàta, oir feumaidh tu puingean sioncronaidh a chuir ris a bheir neodachadh air buaidh adhartach nan ciudhaichean. Le bhith a’ cleachdadh an dà dhòigh-obrach aig an aon àm, feumar còd a’ phrògraim atharrachadh beagan. Anns a ’chùis againn, nuair a chuireas tu faidhle chun t-seirbheisiche, chan eil am freagairt a’ tighinn ach “ceart gu leòr”, a tha dìreach a ’ciallachadh“ chaidh an obair gus am faidhle a chuir ris a shàbhaladh. ” Gu foirmeil, chan eil seo a 'ciallachadh gu bheil an dàta ri fhaighinn mu thràth air innealan eile (mar eisimpleir, faodaidh an t-seirbheis deduplication an clàr-amais ath-thogail). Ach, às deidh beagan ùine, gheibh an neach-dèiligidh fios ann an stoidhle “tha faidhle X air a shàbhaladh.”

Mar thoradh:

  • Tha an àireamh de dh’ inbhean cur faidhle a’ dol am meud: an àite an “faidhle air a chuir,” gheibh sinn dhà: “chaidh am faidhle a chur ris a’ chiudha air an fhrithealaiche” agus “chaidh am faidhle a shàbhaladh ann an stòradh.” Tha an tè mu dheireadh a’ ciallachadh gum faod innealan eile tòiseachadh air am faidhle fhaighinn mu thràth (air atharrachadh leis gu bheil na ciudhaichean ag obair aig astaran eadar-dhealaichte).
  • Leis gu bheil am fiosrachadh tagraidh a-nis a’ tighinn tro dhiofar shianalan, feumaidh sinn fuasglaidhean a lorg gus inbhe giollachd an fhaidhle fhaighinn. Mar thoradh air an seo: eu-coltach ris an iarrtas-freagairt clasaigeach, faodar an neach-dèiligidh ath-thòiseachadh fhad ‘s a tha iad a’ giullachd an fhaidhle, ach bidh inbhe a ’ghiollachd seo fhèin ceart. A bharrachd air an sin, bidh an rud seo ag obair, gu bunaiteach, a-mach às a ’bhogsa. Mar thoradh air an sin: tha sinn a-nis nas fulangaiche ri fàilligidhean.

sharding

Mar a chaidh a mhìneachadh gu h-àrd, tha dìth cunbhalachd teann aig siostaman lorg thachartasan. Tha seo a’ ciallachadh gun urrainn dhuinn grunn stòradh a chleachdadh gun sioncronadh sam bith eatorra. A’ tighinn faisg air an duilgheadas againn, is urrainn dhuinn:

  • Roinn faidhlichean a rèir seòrsa. Mar eisimpleir, faodar dealbhan/bhideothan a dhì-chòdachadh agus cruth nas èifeachdaiche a thaghadh.
  • Cunntasan fa leth a rèir dùthaich. Air sgàth mòran laghan, is dòcha gum bi feum air seo, ach tha an sgeama ailtireachd seo a 'toirt seachad a leithid de chothrom gu fèin-ghluasadach

Pàtranan ailtireachd goireasach

Ma tha thu airson dàta a ghluasad bho aon stòradh gu fear eile, chan eil dòighean àbhaisteach gu leòr tuilleadh. Gu mì-fhortanach, anns a 'chùis seo, feumaidh tu stad a chur air a' chiudha, dèan an imrich, agus an uairsin tòiseachadh air. Anns a ’chùis choitcheann, chan urrainnear dàta a ghluasad“ air an itealan ”, ge-tà, ma tha ciudha an tachartais air a stòradh gu tur, agus gu bheil dealbhan agad de stàitean stòraidh roimhe, is urrainn dhuinn na tachartasan ath-chluich mar a leanas:

  • Ann an Stòr Tachartas, tha a aithnichear fhèin aig gach tachartas (gu h-iomchaidh, gun a bhith a’ lughdachadh). Tha seo a’ ciallachadh gun urrainn dhuinn raon a chur ris an stòradh - id an eileamaid giullachd mu dheireadh.
  • Bidh sinn a ’dùblachadh a’ chiudha gus an urrainnear a h-uile tachartas a phròiseasadh airson grunn stòradh neo-eisimeileach (is e a ’chiad fhear an tè anns a bheil an dàta air a stòradh mu thràth, agus tha an dàrna fear ùr, ach fhathast falamh). Chan eil an dàrna ciudha, gu dearbh, ga phròiseasadh fhathast.
  • Bidh sinn a’ cur an dàrna ciudha air bhog (is e sin, bidh sinn a’ tòiseachadh air tachartasan ath-chluich).
  • Nuair a tha an ciudha ùr gu ìre mhath falamh (is e sin, tha e iomchaidh gabhail ris an eadar-dhealachadh ùine cuibheasach eadar eileamaid a chur ris agus a thoirt air ais), faodaidh tu tòiseachadh air luchd-leughaidh atharrachadh chun stòradh ùr.

Mar a chì thu, cha robh, agus chan eil, cunbhalachd teann san t-siostam againn. Chan eil ann ach cunbhalachd mu dheireadh, is e sin, gealltanas gum bi tachartasan air an giullachd san aon òrdugh (ach is dòcha le dàil eadar-dhealaichte). Agus, le bhith a’ cleachdadh seo, is urrainn dhuinn dàta a ghluasad gu ìre mhath gun a bhith a’ cur stad air an t-siostam gu taobh eile na cruinne.

Mar sin, a’ leantainn leis an eisimpleir againn mu stòradh air-loidhne airson faidhlichean, tha an leithid de dh’ailtireachd mu thràth a’ toirt dhuinn grunn bhònasan:

  • Is urrainn dhuinn nithean a ghluasad nas fhaisge air luchd-cleachdaidh ann an dòigh fiùghantach. San dòigh seo faodaidh tu càileachd seirbheis a leasachadh.
  • Is dòcha gun glèidh sinn beagan dàta taobh a-staigh chompanaidhean. Mar eisimpleir, bidh luchd-cleachdaidh Iomairt gu tric ag iarraidh gum bi an dàta aca air a stòradh ann an ionadan dàta fo smachd (gus aodion dàta a sheachnadh). Le bhith a’ roinneadh is urrainn dhuinn taic a thoirt dha seo gu furasta. Agus tha an obair eadhon nas fhasa ma tha sgòth co-fhreagarrach aig an neach-ceannach (mar eisimpleir, Azure fèin-aoigheachd).
  • Agus is e an rud as cudromaiche nach fheum sinn seo a dhèanamh. Às deidh na h-uile, an toiseach, bhiodh sinn gu math toilichte le aon stòradh airson a h-uile cunntas (airson tòiseachadh ag obair gu sgiobalta). Agus is e prìomh fheart an t-siostam seo ged a tha e comasach a leudachadh, aig a 'chiad ìre tha e gu math sìmplidh. Cha leig thu leas còd a sgrìobhadh sa bhad a bhios ag obair le millean ciudha neo-eisimeileach, msaa. Ma tha feum air, faodar seo a dhèanamh san àm ri teachd.

Aoigheachd susbaint statach

Is dòcha gu bheil a’ phuing seo gu math follaiseach, ach tha e fhathast riatanach airson tagradh luchdaichte gu ìre mhòr no nas lugha. Tha a bhrìgh sìmplidh: tha a h-uile susbaint statach air a chuairteachadh chan ann bhon aon fhrithealaiche far a bheil an tagradh suidhichte, ach bho fheadhainn sònraichte a tha gu sònraichte sònraichte don ghnìomh seo. Mar thoradh air an sin, tha na h-obraichean sin air an coileanadh nas luaithe (tha nginx cumhach a’ frithealadh fhaidhlichean nas luaithe agus nas saoire na frithealaiche Java). A bharrachd air ailtireachd CDN (-Susbaint Lìbhrigeadh Lìonra) a’ leigeil leinn na faidhlichean againn a lorg nas fhaisge air luchd-cleachdaidh deireannach, aig a bheil deagh bhuaidh air goireasachd a bhith ag obair leis an t-seirbheis.

Is e an eisimpleir as sìmplidh agus as àbhaistiche de shusbaint statach seata de sgriobtaichean agus ìomhaighean airson làrach-lìn. Tha a h-uile dad sìmplidh leotha - tha fios aca ro-làimh, agus an uairsin thèid an tasglann a luchdachadh suas gu frithealaichean CDN, às am bi iad air an sgaoileadh gu luchd-cleachdaidh deireannach.

Ach, ann an da-rìribh, airson susbaint statach, faodaidh tu dòigh-obrach a chleachdadh rudeigin coltach ri ailtireachd lambda. Tillidh sinn chun obair againn (stòradh fhaidhlichean air-loidhne), anns am feum sinn faidhlichean a sgaoileadh gu luchd-cleachdaidh. Is e am fuasgladh as sìmplidh seirbheis a chruthachadh a nì, airson gach iarrtas neach-cleachdaidh, a h-uile sgrùdadh riatanach (ùghdarras, msaa), agus an uairsin luchdaich sìos am faidhle gu dìreach bhon stòradh againn. Is e prìomh ana-cothrom an dòigh-obrach seo gu bheil susbaint statach (agus faidhle le ath-sgrùdadh sònraichte, gu dearbh, susbaint statach) air a chuairteachadh leis an aon fhrithealaiche anns a bheil loidsig gnìomhachais. An àite sin, faodaidh tu an sgeama a leanas a dhèanamh:

  • Bidh am frithealaiche a’ toirt seachad URL luchdaich sìos. Faodaidh e a bhith den fhoirm file_id + iuchair, far a bheil an iuchair mar ainm-sgrìobhte mion-dhidseatach a bheir còir cothrom faighinn chun ghoireas airson an ath XNUMX uairean.
  • Tha am faidhle air a chuairteachadh le nginx sìmplidh leis na roghainnean a leanas:
    • Tasgadh susbaint. Leis gum faodar an t-seirbheis seo a shuidheachadh air frithealaiche air leth, tha sinn air sinn fhèin fhàgail mar thèarmann airson an ama ri teachd leis a’ chomas na faidhlichean as ùire a chaidh a luchdachadh sìos a stòradh air diosc.
    • A’ sgrùdadh na h-iuchrach aig àm cruthachadh ceangail
  • Roghainneil: sruthadh giollachd susbaint. Mar eisimpleir, ma dhlùthaicheas sinn a h-uile faidhle san t-seirbheis, is urrainn dhuinn unzipping a dhèanamh gu dìreach sa mhodal seo. Mar thoradh air an sin: tha gnìomhachd IO air a dhèanamh far a bheil iad. Bidh tasglannaiche ann an Java gu furasta a’ riarachadh tòrr cuimhne a bharrachd, ach dh’ fhaodadh gum bi ath-sgrìobhadh seirbheis le loidsig gnìomhachais a-steach do chumhachan Rust / C ++ neo-èifeachdach cuideachd. Anns a ’chùis againn, thathas a’ cleachdadh diofar phròiseasan (no eadhon seirbheisean), agus mar sin is urrainn dhuinn loidsig gnìomhachais agus gnìomhachd IO a sgaradh gu h-èifeachdach.

Pàtranan ailtireachd goireasach

Chan eil an sgeama seo glè choltach ri bhith a’ cuairteachadh susbaint statach (leis nach bi sinn a’ luchdachadh suas a’ phacaid statach gu lèir an àiteigin), ach ann an da-rìribh, tha an dòigh-obrach seo gu sònraichte an sàs ann a bhith a’ sgaoileadh dàta nach gabh atharrachadh. A bharrachd air an sin, faodar an sgeama seo a choitcheannachadh gu cùisean eile far nach eil an susbaint dìreach statach, ach faodar a riochdachadh mar sheata de bhlocaichean do-ruigsinneach agus nach gabh a dhubhadh às (ged a dh’ fhaodar an cur ris).

Mar eisimpleir eile (airson daingneachadh): ma tha thu air a bhith ag obair le Jenkins / TeamCity, tha fios agad gu bheil an dà fhuasgladh sgrìobhte ann an Java. Tha an dithis aca nam pròiseas Java a bhios a’ làimhseachadh gach cuid orcastra togail agus riaghladh susbaint. Gu sònraichte, tha gnìomhan aig an dithis aca mar “gluasad faidhle / pasgan bhon t-seirbheisiche.” Mar eisimpleir: a 'toirt a-mach stuthan, a' gluasad còd stòr (nuair nach eil an neach-ionaid a 'luchdachadh sìos a' chòd gu dìreach bhon stòr, ach bidh an frithealaiche ga dhèanamh dha), ruigsinneachd gu logaichean. Tha na gnìomhan sin uile eadar-dhealaichte san luchd IO aca. Is e sin, tha e a ’tionndadh a-mach gum feum an frithealaiche le uallach airson loidsig gnìomhachais iom-fhillte aig an aon àm a bhith comasach air sruthan mòra dàta a phutadh troimhe fhèin gu h-èifeachdach. Agus is e an rud as inntinniche gum faodar a leithid de ghnìomhachd a thiomnadh don aon nginx a rèir an aon sgeama (ach a-mhàin gum bu chòir an iuchair dàta a chuir ris an iarrtas).

Ach, ma thilleas sinn chun t-siostam againn, gheibh sinn diagram coltach ris:

Pàtranan ailtireachd goireasach

Mar a chì thu, tha an siostam air fàs gu math nas iom-fhillte. A-nis chan e dìreach pròiseas beag a th’ ann a bhios a’ stòradh fhaidhlichean gu h-ionadail. A-nis chan e an rud a tha a dhìth an taic as sìmplidh, smachd dreach API, msaa. Mar sin, às deidh a h-uile diagram a bhith air a tharraing, tha e nas fheàrr measadh a dhèanamh gu mionaideach an e luach a th’ ann an leudachd. Ach, ma tha thu airson a bhith comasach air an siostam a leudachadh (a 'gabhail a-steach a bhith ag obair le àireamh eadhon nas motha de luchd-cleachdaidh), feumaidh tu a dhol airson fuasglaidhean coltach ris. Ach, mar thoradh air an sin, tha an siostam deiseil a thaobh ailtireachd airson barrachd luchd (faodaidh cha mhòr a h-uile pàirt a bhith air an clonadh airson sgèileadh còmhnard). Faodar an siostam ùrachadh gun a bhith ga stad (dìreach bidh cuid de ghnìomhachd air a lughdachadh beagan).

Mar a thuirt mi aig an fhìor thoiseach, a-nis tha grunn sheirbheisean eadar-lìn air tòiseachadh a’ faighinn barrachd luchd. Agus thòisich cuid dhiubh dìreach air stad a bhith ag obair gu ceart. Gu dearbh, dh’ fhàilnich na siostaman gu mionaideach aig an àm a bha còir aig a’ ghnìomhachas airgead a dhèanamh. Is e sin, an àite lìbhrigeadh air a chuir dheth, an àite a bhith a’ moladh do luchd-ceannach “dealbhaich do lìbhrigeadh airson na mìosan a tha romhainn,” thuirt an siostam gu sìmplidh “rach gu na farpaisich agad.” Gu dearbh, is e seo prìs cinneasachd ìosal: bidh call a’ tachairt dìreach nuair a bhiodh prothaidean nas àirde.

co-dhùnadh

Bha na dòighean sin uile aithnichte roimhe seo. Tha an aon VK o chionn fhada air a bhith a 'cleachdadh a' bheachd air Hosting Susbaint Statach gus dealbhan a thaisbeanadh. Bidh mòran de gheamannan air-loidhne a’ cleachdadh an sgeama Sharding gus cluicheadairean a roinn ann an roinnean no gus àiteachan geama a sgaradh (ma tha an saoghal fhèin mar aon). Tha dòigh-obrach Stòradh Tachartas air a chleachdadh gu gnìomhach ann am post-d. Tha a’ mhòr-chuid de thagraidhean malairt far a bheilear a’ faighinn dàta an-còmhnaidh air an togail air dòigh-obrach CQRS gus an urrainn dhaibh an dàta a gheibhear a shìoladh. Uill, chaidh sgèileadh còmhnard a chleachdadh ann an iomadh seirbheis airson ùine mhòr.

Ach, as cudromaiche, tha na pàtrain sin uile air fàs gu math furasta an cur an sàs ann an tagraidhean an latha an-diugh (ma tha iad iomchaidh, gu dearbh). Bidh sgòthan a’ tabhann Sharding agus sgèileadh còmhnard sa bhad, a tha fada nas fhasa na bhith ag òrdachadh diofar luchd-frithealaidh sònraichte ann an diofar ionadan dàta thu fhèin. Tha CQRS air fàs gu math nas fhasa, mas e dìreach air sgàth leasachadh leabharlannan leithid RX. O chionn timcheall air 10 bliadhna, dh’ fhaodadh làrach-lìn tearc taic a thoirt dha seo. Tha Stòradh Tachartas cuideachd air leth furasta a chuir air dòigh le taing dha soithichean deiseil le Apache Kafka. 10 bliadhna air ais bhiodh seo air a bhith na innleachdas, a-nis tha e cumanta. Tha e an aon rud le aoigheachd susbaint statach: air sgàth teicneòlasan nas goireasaiche (a ’toirt a-steach gu bheil sgrìobhainnean mionaideach ann agus stòr-dàta mòr de fhreagairtean), tha an dòigh-obrach seo air fàs eadhon nas sìmplidh.

Mar thoradh air an sin, tha buileachadh grunn phàtranan ailtireachd caran iom-fhillte a-nis air fàs gu math nas sìmplidh, agus tha sin a 'ciallachadh gu bheil e nas fheàrr sùil nas mionaidiche a thoirt air ro-làimh. Ma chaidh aon de na fuasglaidhean gu h-àrd a thrèigsinn ann an tagradh deich bliadhna air sgàth cosgais àrd buileachaidh agus obrachaidh, a-nis, ann an tagradh ùr, no às deidh ath-leasachadh, faodaidh tu seirbheis a chruthachadh a bhios mar-thà a thaobh ailtireachd an dà chuid leudachail ( a thaobh coileanadh) agus deiseil gu iarrtasan ùra bho luchd-dèiligidh (mar eisimpleir, gus dàta pearsanta a dhèanamh ionadail).

Agus as cudromaiche: feuch nach cleachd thu na dòighean-obrach sin ma tha tagradh sìmplidh agad. Tha, tha iad brèagha agus inntinneach, ach airson làrach le tadhal as àirde de 100 neach, gheibh thu gu tric le monolith clasaigeach (co-dhiù air an taobh a-muigh, faodar a h-uile càil a-staigh a roinn ann am modalan, msaa).

Source: www.habr.com

Cuir beachd ann