Mar a thagh sinn aig Sportmaster siostam caching. Pàirt 1

Halò! Is e m ’ainm Alexey Pyankov, tha mi nam leasaiche aig a’ chompanaidh Sportmaster. Ann an sin dreuchd Dh’ innis mi mar a thòisich obair air làrach-lìn Sportmaster ann an 2012, dè na h-iomairtean air an deach againn air “putadh troimhe” agus a chaochladh, dè an ràcan a chruinnich sinn.

An-diugh tha mi airson smuaintean a cho-roinn a tha a 'leantainn cuspair eile - a' taghadh siostam caching airson backend java ann an raon rianachd na làraich. Tha ciall sònraichte aig a’ chuilbheart seo dhòmhsa - ged nach do nochd an sgeulachd ach airson 2 mhìos, anns na 60 latha sin bha sinn ag obair 12-16 uairean agus às aonais aon latha dheth. Cha robh mi a-riamh air smaoineachadh no smaoineachadh gu robh e comasach a bhith ag obair cho cruaidh.

Mar sin, roinn mi an teacsa ann an 2 phàirt gus nach luchdaich mi e gu tur. Air an làimh eile, bidh a 'chiad phàirt gu math aotrom - ullachadh, ro-ràdh, cuid de bheachdan air dè a th' ann an tasgadh. Ma tha thu mar leasaiche eòlach mu thràth no ma tha thu air a bhith ag obair le caches, bhon taobh theicnigeach is dòcha nach bi dad ùr san artaigil seo. Ach airson òganach, faodaidh ath-sgrùdadh cho beag innse dha dè an taobh air am bu chòir coimhead a-steach ma gheibh e e fhèin aig a leithid de chrois-rathaid.

Mar a thagh sinn aig Sportmaster siostam caching. Pàirt 1

Nuair a chaidh an dreach ùr de làrach-lìn Sportmaster a chuir a-steach gu cinneasachadh, chaidh an dàta fhaighinn ann an dòigh a bha, airson a chuir gu socair, nach robh gu math goireasach. B 'e am bun-stèidh clàran a chaidh ullachadh airson an dreach roimhe den làrach (Bitrix), a dh'fheumadh a tharraing a-steach gu ETL, a thoirt gu cruth ùr agus a neartachadh le diofar rudan beaga bho dhusan siostam eile. Gus an nochd dealbh ùr no tuairisgeul toraidh air an làrach, dh'fheumadh tu feitheamh gus an ath latha - ùrachaidhean a-mhàin air an oidhche, aon uair san latha.

An toiseach, bha na h-uimhir de dhraghan ann bho na ciad sheachdainean de bhith a’ dol a-steach gu cinneasachadh gu robh an leithid de mhì-ghoireasachd dha manaidsearan susbaint na fhìor rud. Ach, cho luath ‘s a shocraich a h-uile càil, lean leasachadh a’ phròiseict - beagan mhìosan an dèidh sin, aig toiseach 2015, thòisich sinn gu gnìomhach a ’leasachadh a’ phannal rianachd. Ann an 2015 agus 2016, tha a h-uile càil a 'dol gu math, bidh sinn a' leigeil a-mach gu cunbhalach, tha am pannal rianachd a 'còmhdach barrachd is barrachd den ullachadh dàta, agus tha sinn ag ullachadh airson gum bi an sgioba againn a dh'aithghearr an urra ris an rud as cudromaiche agus iom-fhillte - an toradh cuairt (làn ullachadh agus cumail suas dàta air a h-uile toradh). Ach as t-samhradh 2017, dìreach mus tèid an cuairteachadh bathar a chuir air bhog, bidh am pròiseact ann an suidheachadh gu math duilich - dìreach air sgàth duilgheadasan le tasgadh. Tha mi airson bruidhinn mun phrògram seo anns an dàrna pàirt den fhoillseachadh dà-phàirt seo.

Ach anns an dreuchd seo tòisichidh mi bho chian, bheir mi seachad cuid de bheachdan - beachdan mu thasgadh, a bhiodh na cheum math airson gluasad troimhe ro phròiseact mòr.

Nuair a bhios obair caching a’ tachairt

Chan eil an obair tasgadan dìreach a’ nochdadh. Tha sinn nar luchd-leasachaidh, a’ sgrìobhadh toradh bathar-bog agus tha sinn airson gum bi iarrtas ann. Ma tha iarrtas mòr air an toradh agus soirbheachail, thig luchd-cleachdaidh. Agus thig barrachd is barrachd. Agus an uairsin tha tòrr luchd-cleachdaidh ann agus an uairsin bidh an toradh air a luchdachadh gu mòr.

Aig na ciad ìrean, chan eil sinn a 'smaoineachadh mu dheidhinn optimization agus coileanadh còd. Is e am prìomh rud comas-gnìomh, a bhith a’ sgaoileadh pìleat gu sgiobalta agus a’ dèanamh deuchainn air barailean. Agus ma thèid an luchd àrdachadh, bidh sinn a’ pumpadh suas an iarann. Bidh sinn ga àrdachadh dhà no trì thursan, còig tursan, is dòcha 10 tursan. An àiteigin an seo - cha leig ionmhas tuilleadh e. Cia mheud uair a thèid an àireamh de luchd-cleachdaidh àrdachadh? Cha bhith e coltach ri 2-5-10, ach ma bhios e soirbheachail, bidh e bho 100-1000 gu 100 mìle uair. Is e sin, luath no mall, feumaidh tu optimization a dhèanamh.

Canaidh sinn gu bheil pàirt den chòd (canaidh sinn a’ phàirt seo mar ghnìomh) a’ toirt ùine gu mì-mhodhail, agus tha sinn airson an ùine cur gu bàs a lughdachadh. Faodaidh gnìomh a bhith mar chothrom air stòr-dàta, no faodaidh e a bhith a’ coileanadh cuid de loidsig iom-fhillte - is e am prìomh rud gu bheil e a’ toirt ùine mhòr airson a chuir an gnìomh. Dè as urrainn dhut an ùine cur gu bàs a lughdachadh? Anns a ’chrìoch, faodaidh tu a lughdachadh gu neoni, gun a bhith nas fhaide. Ciamar as urrainn dhut ùine cur gu bàs a lughdachadh gu neoni? Freagairt: cuir às gu bàs gu tur. An àite sin, thoir air ais an toradh sa bhad. Ciamar a gheibh thu a-mach an toradh? Freagairt: an dàrna cuid obraich a-mach e no coimhead an àiteigin. Bheir e ùine mhòr airson obrachadh a-mach. Agus is e spionadh, mar eisimpleir, cuimhneachadh air an toradh a thug an gnìomh an turas mu dheireadh nuair a chaidh a ghairm leis na h-aon pharaimearan.

Is e sin, chan eil buileachadh na gnìomh cudromach dhuinn. Tha e gu leòr dìreach fios a bhith agad air na crìochan a tha an toradh an urra. An uairsin, ma tha na luachan paramadair air an riochdachadh ann an cruth nì a dh'fhaodar a chleachdadh mar iuchair ann an cuid de stòradh, faodar toradh an àireamhachaidh a shàbhaladh agus a leughadh a-mach an ath thuras a gheibhear thuige. Ma tha an sgrìobhadh agus an leughadh seo den toradh nas luaithe na bhith a’ coileanadh a’ ghnìomh, tha prothaid againn a thaobh luaths. Faodaidh an ìre de phrothaid ruighinn 100, 1000, agus 100 mìle uair (10 ^ 5 caran eisgeachd, ach ann an cùis bunait gu math lag, tha e gu math comasach).

Riatanasan bunaiteach airson siostam caching

Is e a’ chiad rud a dh’ fhaodadh a bhith na riatanas airson siostam caching astar leughaidh luath agus, gu ìre beagan nas lugha, astar sgrìobhaidh. Tha seo fìor, ach dìreach gus an cuir sinn a-mach an siostam gu cinneasachadh.

Cluichidh sinn a’ chùis seo.

Canaidh sinn gu bheil sinn air bathar-cruaidh a thoirt don luchd gnàthach agus gu bheil sinn a-nis a’ toirt a-steach tasgadan mean air mhean. Bidh an àireamh de luchd-cleachdaidh a’ fàs beagan, bidh an luchd a’ fàs - bidh sinn a’ cur beagan caches ris, ga sgrìobadh a-steach an seo agus an sin. Tha seo a 'leantainn airson ùine, agus a-nis cha mhòr nach eil gnìomhan trom air an ainmeachadh tuilleadh - bidh am prìomh luchd gu lèir a' tuiteam air an tasgadan. Tha an àireamh de luchd-cleachdaidh rè na h-ùine seo air àrdachadh N amannan.

Agus ma dh’ fhaodadh an solar bathar-cruaidh tùsail a bhith 2-5 tursan, an uairsin le cuideachadh bhon tasgadan dh’ fhaodadh sinn coileanadh a leasachadh le factar 10 no, ann an suidheachadh math, le factar 100, ann an cuid de dh’àiteachan is dòcha le factar. de 1000. 'S e sin, air an aon bhathar-cruaidh – bidh sinn a' pròiseasadh 100 uair a bharrachd iarrtasan. Sgoinneil, tha thu airidh air an gingerbread!

Ach a-nis, aig aon àm math, le cothrom, thuit an siostam agus thuit an tasgadan. Chan eil dad sònraichte - às deidh a h-uile càil, chaidh an tasgadan a thaghadh stèidhichte air an riatanas “astar leughaidh is sgrìobhaidh àrd, chan eil an còrr gu diofar.”

An coimeas ris an luchd tòiseachaidh, bha an tèarmann iarainn againn 2-5 tursan, agus mheudaich an luchd aig an àm seo 10-100 uair. A’ cleachdadh an tasgadan, chuir sinn às do ghairmean airson gnìomhan troma agus mar sin dh’ obraich a h-uile càil. Agus a-nis, às aonais tasgadan, cia mheud uair a bhios an siostam againn a’ fàs nas slaodaiche? Dè thachras dhuinn? Bidh an siostam a 'tuiteam.

Eadhon ged nach do thuit an tasgadan againn, ach nach deach a ghlanadh ach airson greis, feumar a bhlàthachadh, agus bheir seo beagan ùine. Agus rè na h-ùine seo, bidh am prìomh eallach air comas-gnìomh.

Co-dhùnadh: Feumaidh pròiseactan cinneasachaidh làn luchdan siostam caching chan ann a-mhàin gus astaran leughaidh is sgrìobhaidh àrd a bhith aca, ach cuideachd gus dèanamh cinnteach à sàbhailteachd dàta agus an aghaidh fàilligidhean.

An àmhghar roghainn

Ann am pròiseact le pannal rianachd, chaidh an roghainn mar seo: an toiseach chuir sinn Hazelcast a-steach, oir Bha sinn mu thràth eòlach air an toradh seo bho eòlas a ’phrìomh làrach. Ach an seo cha do shoirbhich leis an roghainn seo - fon phròifil luchd againn, chan eil Hazelcast dìreach slaodach, ach gu math slaodach. Agus aig an àm sin bha sinn mu thràth air d’ ainm a chuir ris a’ cheann-latha fuasglaidh.

Spoiler: mar a dh’ fhàs na suidheachaidhean gu dìreach agus gu robh sinn ag ionndrainn a leithid de chùis agus a thàinig gu crìch le suidheachadh gann agus teann - innsidh mi dhut san dàrna pàirt - agus mar a chrìochnaich sinn agus mar a fhuair sinn a-mach. Ach a-nis - canaidh mi gur e tòrr cuideam a bh’ ann, agus “smaointinn - dòigh air choireigin chan urrainn dhomh smaoineachadh, tha sinn a’ crathadh a ’bhotal.” Tha “crathadh a’ bhotal” cuideachd na mhilleadh, barrachd air sin nas fhaide air adhart.

Na rinn sinn:

  1. Bidh sinn a’ dèanamh liosta de na siostaman air fad a tha Google agus StackOverflow a’ moladh. Beagan a bharrachd air 30
  2. Bidh sinn a’ sgrìobhadh dheuchainnean le luchd àbhaisteach airson cinneasachadh. Gus seo a dhèanamh, chlàraich sinn dàta a thèid tron ​​​​t-siostam ann an àrainneachd cinneasachaidh - seòrsa de sniffer airson dàta chan ann air an lìonra, ach taobh a-staigh an t-siostam. Dìreach chaidh an dàta seo a chleachdadh anns na deuchainnean.
  3. Leis an sgioba gu lèir, bidh a h-uile duine a’ taghadh an ath shiostam bhon liosta, ga rèiteachadh, agus a’ ruith dheuchainnean. Cha bhith e a’ dol seachad air an deuchainn, cha bhith e a ’giùlan an luchd - bidh sinn ga thilgeil air falbh agus a’ gluasad air adhart chun ath fhear san loidhne.
  4. Air an t-17mh siostam dh'fhàs e soilleir gu robh a h-uile dad gun dòchas. Stad le bhith a’ crathadh a’ bhotal, tha an t-àm ann smaoineachadh gu dona.

Ach tha seo na roghainn nuair a dh'fheumas tu siostam a thaghadh a gheibh "tron astar" ann an deuchainnean ullaichte. Dè mura h-eil deuchainnean mar sin ann fhathast agus gu bheil thu airson taghadh gu sgiobalta?

Feuch an dèan sinn atharrais air an roghainn seo (tha e duilich a shamhlachadh gu bheil leasaiche meadhanach + a’ fuireach ann am falamh, agus aig àm an taghaidh chan eil e fhathast air a roghainn a dhèanamh foirmeil a thaobh dè an toradh a dh’ fheuchas e an toiseach - mar sin, tha tuilleadh reusanachaidh nas motha de theòiridh / feallsanachd / mu dheidhinn òigridh).

Às deidh dhuinn na riatanasan a cho-dhùnadh, tòisichidh sinn a ’taghadh fuasgladh a-mach às a’ bhogsa. Carson a dh'ath-nuadhaich a' chuibhle: falbhaidh sinn agus gabhaidh sinn siostam tasgaidh deiseil.

Ma tha thu dìreach a 'tòiseachadh agus google e, an uairsin thoir seachad no gabh an òrdugh, ach san fharsaingeachd, bidh an stiùireadh mar seo. An toiseach, thig thu tarsainn air Redis, cluinnear e anns a h-uile àite. An uairsin gheibh thu a-mach gur e EhCache an siostam as sine agus as dearbhte. An uairsin sgrìobhaidh sinn mu dheidhinn Tarantool, leasachadh dachaigheil aig a bheil taobh sònraichte den fhuasgladh. Agus cuideachd Ignite, oir tha e a-nis a’ sìor fhàs mòr-chòrdte agus a’ faighinn taic bho SberTech. Aig a 'cheann thall tha Hazelcast ann cuideachd, oir anns an t-saoghal iomairt bidh e tric a' nochdadh am measg chompanaidhean mòra.

Chan eil an liosta iomlan; tha dusanan de shiostaman ann. Agus cha bhith sinn a’ sgrìobadh ach aon rud. Gabhamaid na 5 siostaman taghte airson an “farpais bòidhchead” agus nì sinn taghadh. Cò a bhios na bhuannaiche?

Redis

Leugh sinn na tha iad a’ sgrìobhadh air an làrach-lìn oifigeil.
Redis - pròiseact opensource. A’ tabhann stòradh dàta ann an cuimhne, an comas sàbhaladh air diosc, sgaradh fèin-ghluasadach, ruigsinneachd àrd agus faighinn air ais bho bhriseadh lìonra.

Tha e coltach gu bheil a h-uile dad gu math, faodaidh tu a thoirt agus a sgrìobadh air - a h-uile dad a dh ’fheumas tu, nì e. Ach dìreach airson spòrs, leig dhuinn sùil a thoirt air na tagraichean eile.

EhCache

EhCache - “an tasgadan as fharsainge airson Java” (eadar-theangachadh an sluagh-ghairm bhon làrach-lìn oifigeil). Cuideachd opensource. Agus an uairsin tha sinn a 'tuigsinn nach eil Redis airson java, ach coitcheann, agus airson eadar-obrachadh leis feumaidh tu pasgan. Agus bidh EhCache nas goireasaiche. Dè eile a tha an siostam a’ gealltainn? Earbsa, dearbhte, làn ghnìomh. Uill, tha e cuideachd as cumanta. Agus caches terabytes dàta.

Tha Redis air a dhìochuimhneachadh, tha mi deiseil airson EhCache a thaghadh.

Ach tha mothachadh air gràdh-dùthcha gam putadh gus faicinn dè a tha math mu Tarantool.

Tarantool

Tarantool - a’ coinneachadh ris an t-sònrachadh “Àrd-ùrlar amalachadh dàta fìor-ùine”. Tha e gu math toinnte, agus mar sin leugh sinn an duilleag gu mionaideach agus lorg sinn aithris àrd: “Tasgadh 100% den dàta ann an RAM.” Bu chòir seo ceistean a thogail - às deidh a h-uile càil, faodaidh tòrr a bharrachd dàta a bhith ann na cuimhne. Is e am mìneachadh gu bheil e a’ ciallachadh nach bi Tarantool a’ ruith sreathachadh gus dàta a sgrìobhadh gu diosc bhon chuimhne. An àite sin, bidh e a’ cleachdadh feartan ìre ìosal den t-siostam, nuair a tha cuimhne dìreach air a mhapadh gu siostam faidhle le coileanadh I/O fìor mhath. San fharsaingeachd, rinn iad rudeigin iongantach agus fionnar.

Bheir sinn sùil air na gnìomhan: àrd-rathad corporra Mail.ru, Avito, Beeline, Megafon, Alfa-Bank, Gazprom ...

Ma bha teagamh sam bith ann fhathast mu Tarantool, tha a’ chùis buileachaidh aig Mastercard a’ cur crìoch orm. Gabhaidh mi Tarantool.

Ach co-dhiù…

Ignite

… a bheil barrachd ann Ignite, air ainmeachadh mar “àrd-ùrlar coimpiutaireachd cuimhneachaidh… astaran cuimhneachaidh air petabytes dàta.” Tha mòran bhuannachdan an seo cuideachd: tasgadan cuimhne air a chuairteachadh, an stòradh agus an tasgadan luach-iuchrach as luaithe, sgèileadh còmhnard, ruigsinneachd àrd, ionracas teann. San fharsaingeachd, tha e a 'tionndadh a-mach gur e Ignite an tè as luaithe.

Gnìomhan: Sberbank, American Airlines, Yahoo! Iapan. Agus an uairsin gheibh mi a-mach nach eil Ignite dìreach air a chuir an gnìomh ann an Sberbank, ach bidh sgioba SberTech a ’cur a dhaoine gu sgioba Ignite fhèin gus an toradh ùrachadh. Tha seo gu tur tarraingeach agus tha mi deiseil airson Ignite a ghabhail.

Chan eil e soilleir carson, tha mi a’ coimhead air a’ chòigeamh puing.

calltainn

Bidh mi a’ dol chun làraich calltainn, leughadh. Agus tha e a 'tionndadh a-mach gur e Hazelcast am fuasgladh as luaithe airson caching sgaoilte. Tha e na òrdughan meudachd nas luaithe na a h-uile fuasgladh eile agus san fharsaingeachd tha e na stiùiriche ann an raon cliath dàta cuimhne. An aghaidh a’ chùl-fhiosrachaidh seo, chan e spèis a thoirt dhut fhèin airson rudeigin eile a ghabhail. Bidh e cuideachd a’ cleachdadh stòradh dàta gun fheum airson obrachadh leantainneach a’ bhuidheann gun chall dàta.

Sin agad e, tha mi deiseil airson Hazelcast a ghabhail.

Coimeas

Ach ma choimheadas tu, tha na còig tagraichean uile air am mìneachadh ann an dòigh is gum bi gach fear dhiubh mar as fheàrr. Ciamar a thaghadh? Chì sinn dè am fear as mòr-chòrdte, coimhead airson coimeasan, agus falbhaidh an ceann goirt.

Lorg sinn fear mar seo sgrùdadh, tagh na 5 siostaman againn.

Mar a thagh sinn aig Sportmaster siostam caching. Pàirt 1

An seo tha iad air an òrdachadh: tha Redis aig a ’mhullach, tha Hazelcast san dàrna àite, tha Tarantool agus Ignite a’ fàs mòr-chòrdte, tha EhCache air a bhith agus fhathast mar a bha e.

Ach leig dhuinn sùil a thoirt air dòigh àireamhachaidh: ceanglaichean gu làraich-lìn, ùidh choitcheann san t-siostam, tairgsean obrach - sgoinneil! Is e sin, nuair a dh’ fhailicheas an siostam agam, canaidh mi: “Chan eil, tha e earbsach! Tha mòran thairgsean obrach ann. ”… Cha dèan coimeas cho sìmplidh sin.

Chan e dìreach siostaman caching a th’ anns na siostaman sin uile. Tha mòran comas-gnìomh aca cuideachd, a ’toirt a-steach nuair nach eil dàta air a phumpadh chun neach-dèiligidh airson a ghiullachd, ach a chaochladh: bidh an còd a dh’ fheumar a chuir gu bàs air an dàta a ’gluasad chun t-seirbheisiche, air a chuir gu bàs an sin, agus thèid an toradh a thilleadh. Agus chan eil iad cho tric air am meas mar shiostam air leth airson tasgadh.

Gu ceart, na leig dhuinn a leigeil seachad, lorg sinn coimeas dìreach de na siostaman. Gabhaidh sinn an dà roghainn as àirde - Redis agus Hazelcast. Tha ùidh againn ann an astar, agus nì sinn coimeas eadar iad stèidhichte air a 'pharaiméadar seo.

Hz an aghaidh Redis

Lorg sinn seo coimeas:
Mar a thagh sinn aig Sportmaster siostam caching. Pàirt 1

Blue is Redis, dearg is Hazelcast. Bidh Hazelcast a’ buannachadh anns a h-uile àite, agus tha feallsanachd ann airson seo: tha e ioma-snàithlean, làn leasaichte, bidh gach snàithlean ag obair leis an sgaradh aige fhèin, agus mar sin chan eil bacadh sam bith ann. Agus tha Redis aon-snàthainn; chan eil e a’ faighinn buannachd bho CPUan ioma-cridhe an latha an-diugh. Tha I / O asyncronach aig Hazelcast, tha socaidean bacaidh aig Redis-Jedis. Às deidh na h-uile, bidh Hazelcast a ’cleachdadh protocol dà-chànanach, agus tha Redis stèidhichte air teacsa, a’ ciallachadh gu bheil e neo-èifeachdach.

Dìreach air eagal, tionndaidhidh sinn gu stòr coimeas eile. Dè a sheallas e dhuinn?

Redis vs Hz

Aon eile coimeas:
Mar a thagh sinn aig Sportmaster siostam caching. Pàirt 1

An seo, air an làimh eile, is e dearg Redis. Is e sin, tha Redis nas fheàrr na Hazelcast a thaobh coileanadh. Bhuannaich Hazelcast a’ chiad choimeas, bhuannaich Redis an dàrna fear. Dìreach an seo mhìnich e gu mionaideach carson a bhuannaich Hazelcast an coimeas roimhe.

Tha e a ’tionndadh a-mach gun deach toradh a’ chiad fhear a chuir an sàs: chaidh Redis a thoirt a-steach don bhogsa bhunaiteach, agus chaidh Hazelcast a dhealbhadh airson cùis deuchainn. An uairsin thionndaidh e a-mach: an toiseach, chan urrainn dhuinn earbsa a bhith ann an duine sam bith, agus san dàrna àite, nuair a thaghas sinn siostam mu dheireadh, feumaidh sinn fhathast a rèiteachadh gu ceart. Tha na roghainnean sin a’ toirt a-steach dusanan, cha mhòr ceudan de pharamadairean.

A 'crathadh a' bhotal

Agus is urrainn dhomh am pròiseas gu lèir a tha sinn air a dhèanamh a mhìneachadh a-nis leis a’ mheafar a leanas: “A’ crathadh a ’bhotal.” Is e sin, a-nis chan fheum thu prògramadh, a-nis is e am prìomh rud a bhith comasach air stackoverflow a leughadh. Agus tha neach agam air an sgioba agam, proifeasanta, a bhios ag obair dìreach mar seo aig amannan èiginneach.

Dè tha e a' dèanamh? Bidh e a’ faicinn rud briste, a’ faicinn lorg stac, a’ toirt cuid de dh’ fhaclan bhuaithe (dè an fheadhainn a tha eòlach air a’ phrògram), a’ rannsachadh air Google, a’ lorg stac thar-shruth am measg nam freagairtean. Gun a bhith a 'leughadh, gun a bhith a' smaoineachadh, am measg fhreagairtean na ceiste, tha e a 'taghadh rudeigin as coltaiche ris an t-seantans "dèan seo agus sin" (tha e a' taghadh a leithid de fhreagairt an tàlant aige, oir chan e an-còmhnaidh am freagairt a fhuair an fheadhainn as fheàrr leotha), a’ buntainn , a’ coimhead: ma tha rudeigin air atharrachadh, is math sin. Mura h-eil e air atharrachadh, cuir air ais e. Agus cuir air bhog a-rithist sgrùdadh-seic. Agus anns an dòigh ghoireasach seo, bidh e a’ dèanamh cinnteach gu bheil an còd ag obair às deidh beagan ùine. Chan eil fios aige carson, chan eil fios aige dè a rinn e, chan urrainn dha mìneachadh. Ach! Bidh an galar seo ag obair. Agus "tha an teine ​​air a chur às." A-nis leig dhuinn a-mach dè a rinn sinn. Nuair a bhios am prògram ag obair, tha e òrdugh meudachd nas fhasa. Agus bidh e a 'sàbhaladh mòran ùine.

Tha an dòigh seo air a mhìneachadh gu math leis an eisimpleir seo.

Bha e uaireigin mòr-chòrdte bàta-siùil a chruinneachadh ann am botal. Aig an aon àm, tha am bàta-siùil mòr agus lag, agus tha amhaich a 'bhotal gu math cumhang, tha e do-dhèanta a phutadh a-staigh. Ciamar a chruinneachadh e?

Mar a thagh sinn aig Sportmaster siostam caching. Pàirt 1

Tha leithid de dhòigh-obrach ann, gu math luath agus gu math èifeachdach.

Tha an soitheach air a dhèanamh suas de ghrunn rudan: maidean, ròpaichean, siùil, glaodh. Chuir sinn seo uile ann am botal.
Bidh sinn a 'toirt a' bhotal leis an dà làmh agus a 'tòiseachadh a' crathadh. Bidh sinn a 'crathadh agus a' crathadh oirre. Agus mar as trice bidh e na sgudal iomlan, gu dearbh. Ach uaireannan. Aig amannan bidh e na shoitheach! Nas mionaidiche, rudeigin coltach ri bàta.

Bidh sinn a’ sealltainn an rud seo do chuideigin: “Seryoga, a bheil thu a’ faicinn!?” Agus gu dearbh, bho chian tha e coltach ri bàta. Ach chan urrainnear leigeil le seo leantainn air adhart.

Tha dòigh eile ann. Bidh iad air an cleachdadh le balaich nas adhartaiche, leithid hackers.

Thug mi obair don ghille seo, rinn e a h-uile càil agus dh’fhalbh e. Agus tha thu a’ coimhead - tha e coltach gu bheil e deiseil. Agus an ceann greiseag, nuair a dh’ fheumar an còd a thoirt gu crìch, bidh seo a’ tòiseachadh air a sgàth... Tha e math gu bheil e air ruith fada air falbh mu thràth. Is iad seo na daoine a nì seo, a 'cleachdadh an eisimpleir de bhotal: chì thu, far a bheil a' bhonn, a 'ghlainne a' lùbadh. Agus chan eil e gu tur soilleir a bheil e follaiseach no nach eil. An uairsin gheàrr na “hackers” am bonn seo, cuir a-steach bàta an sin, an uairsin glaodh a’ bhonn air ais a-rithist, agus tha e mar gum biodh sin mar a tha còir a bhith.

Bho shealladh suidheachadh na duilgheadas, tha coltas gu bheil a h-uile dad ceart. Ach a 'cleachdadh shoithichean mar eisimpleir: carson a nì thu an soitheach seo idir, cò a dh' fheumas e co-dhiù? Chan eil e a’ toirt seachad comas-gnìomh sam bith. Mar as trice tha na soithichean sin nan tiodhlacan do dhaoine le inbhe àrd, a chuir air sgeilp os an cionn, mar sheòrsa de shamhla, mar shoidhne. Agus ma tha an leithid de dhuine, na cheannard air gnìomhachas mòr no oifigear àrd-inbhe, ciamar a sheasas a’ bhratach airson a leithid de sheic, a chaidh amhach a ghearradh dheth? Bhiodh e na b’ fheàrr mura biodh fios aige mu dheidhinn. Mar sin, ciamar a tha iad mu dheireadh a 'dèanamh nan soithichean sin a dh'fhaodar a thoirt do dhuine cudromach?

Is e an aon phrìomh àite nach urrainn dhut dad a dhèanamh mu dheidhinn a ’bhodhaig. Agus tha slige an t-soithich a 'freagairt dìreach air amhaich. Fhad ‘s a tha an soitheach air a chruinneachadh taobh a-muigh a’ bhotal. Ach chan e dìreach bàta a chuir ri chèile a th’ ann, is e fìor cheàird seuda a th’ ann. Bidh luamhanan sònraichte air an cur ris na co-phàirtean, a leigeas leotha an togail. Mar eisimpleir, tha na siùil air am pasgadh, air an toirt a-steach gu faiceallach, agus an uairsin, le cuideachadh bho chlò-bhualadairean, bidh iad air an tarraing agus air an togail gu mionaideach, le mionaideachd. Is e an toradh seo obair ealain a dh’ fhaodar a thoirt seachad le cogais shoilleir agus moit.

Agus ma tha sinn airson gum bi am pròiseact soirbheachail, feumaidh co-dhiù aon seudair a bhith air an sgioba. Cuideigin a tha a ’gabhail cùram mu chàileachd an toraidh agus a’ toirt aire do gach taobh, gun a bhith ag ìobairt dad, eadhon ann an amannan cuideam, nuair a dh ’fheumas suidheachaidhean èiginneach a dhèanamh aig cosgais an rud cudromach. Tha a h-uile pròiseact soirbheachail a tha seasmhach, a sheas deuchainn ùine, air a thogail air a’ phrionnsapal seo. Tha rudeigin gu math mionaideach agus gun samhail mun deidhinn, rudeigin a tha a’ gabhail brath air na cothroman a tha rim faighinn. Anns an eisimpleir leis an t-soitheach anns a 'bhotal, thathas a' cluich a-mach gu bheil slige an t-soithich a 'dol tron ​​​​amhaich.

A’ tilleadh chun na h-obrach a bhith a’ taghadh an t-seirbheisiche tasgadan againn, ciamar a ghabhadh an dòigh seo a chur an sàs? Bidh mi a 'tairgsinn an roghainn seo de bhith a' taghadh bho na siostaman a tha ann - na bi a 'crathadh a' bhotal, na tagh, ach coimhead air na tha aca ann am prionnsabal, dè a choimheadas tu nuair a thaghas tu siostam.

Far an lorgar amhach botal

Feuchaidh sinn gun a bhith a’ crathadh a’ bhotal, gun a bhith a’ dol tro gach nì a tha ann aon às deidh aon, ach chì sinn dè na duilgheadasan a thig am bàrr ma bhios sinn gu h-obann, airson ar gnìomh, a’ dealbhadh siostam mar seo sinn fhìn. Gu dearbh, cha chruinnich sinn am baidhc, ach cleachdaidh sinn an diagram seo gus ar cuideachadh le bhith a’ faighinn a-mach dè na puingean air am bu chòir aire a thoirt ann an tuairisgeulan toraidh. Feuch gun dèan sinn dealbh den leithid de dhiagram.

Mar a thagh sinn aig Sportmaster siostam caching. Pàirt 1

Ma thèid an siostam a sgaoileadh, bidh grunn luchd-frithealaidh againn (6). Canaidh sinn gu bheil ceithir ann (tha e goireasach an cur san dealbh, ach, gu dearbh, faodaidh uimhir dhiubh a bhith ann mar as toil leat). Ma tha na frithealaichean air nodan eadar-dhealaichte, tha e a’ ciallachadh gu bheil iad uile a’ ruith còd air choireigin a tha cunntachail airson dèanamh cinnteach gu bheil na nodan sin nan cruinneachadh agus, ma thachras briseadh, a’ ceangal agus ag aithneachadh a chèile.

Feumaidh sinn cuideachd loidsig còd (2), a tha gu dearbh mu dheidhinn caching. Bidh teachdaichean ag eadar-obrachadh leis a’ chòd seo tro chuid de API. Faodaidh còd teachdaiche (1) a bhith taobh a-staigh an aon JVM no faighinn thuige thairis air an lìonra. Is e an loidsig a chaidh a chuir an gnìomh a-staigh an co-dhùnadh dè na nithean a dh’ fhàgas san tasgadan agus dè an tilgeadh a-mach. Cleachdaidh sinn cuimhne (3) gus an tasgadan a stòradh, ach ma tha sin riatanach, is urrainn dhuinn cuid den dàta a shàbhaladh air diosc (4).

Feuch sinn a-mach dè na pàirtean anns an tig an luchd. Gu fìrinneach, thèid a h-uile saighead agus gach nód a luchdachadh. An toiseach, eadar còd an neach-cleachdaidh agus an api, mas e conaltradh lìonra a tha seo, faodaidh an subsadaidh a bhith gu math follaiseach. San dàrna h-àite, taobh a-staigh frèam an api fhèin - ma nì sinn cus dheth le loidsig iom-fhillte, faodaidh sinn a dhol a-steach do dhuilgheadasan leis an CPU. Agus bhiodh e math mura biodh loidsig a’ caitheamh ùine air cuimhne. Agus tha eadar-obrachadh ann fhathast leis an t-siostam fhaidhlichean - anns an dreach àbhaisteach tha seo a’ sreathachadh / ath-nuadhachadh agus a sgrìobhadh / leughadh.

An ath rud tha eadar-obrachadh leis a’ bhuidheann. Nas coltaiche, bidh e san aon shiostam, ach dh'fhaodadh e a bhith air leth. An seo feumaidh tu cuideachd aire a thoirt do ghluasad dàta thuige, astar sreathachadh dàta agus eadar-obrachadh eadar an cruinneachadh.

A-nis, air an aon làimh, is urrainn dhuinn smaoineachadh air “dè na gèaraichean a thionndaidheas” san t-siostam tasgadan nuair a bhios sinn a’ giullachd iarrtasan bhon chòd againn, agus air an làimh eile, is urrainn dhuinn tuairmse a dhèanamh air dè agus cia mheud iarrtas a ghineas ar còd airson an t-siostam seo. Tha seo gu leòr airson roghainn nas socraiche a dhèanamh - siostam a thaghadh airson ar cùis cleachdaidh.

calltainn

Chì sinn mar a chuireas sinn an lobhadh seo an sàs anns an liosta againn. Mar eisimpleir, Hazelcast.

Gus dàta a chuir / a thoirt bho Hazelcast, gheibh an còd teachdaiche cothrom air (1) an api. Leigidh Hz leat an frithealaiche a ruith mar a tha freumhaichte, agus anns a’ chùis seo, tha faighinn chun api mar dhòigh-gairm taobh a-staigh an JVM, a dh’ fhaodar a mheas saor.

Gus am bi an loidsig ann an (2) ag obair, tha Hz an urra ri hash an t-sreath byte den iuchair sreathach - is e sin, thèid an iuchair a chuir ann an sreath co-dhiù. Tha seo do-sheachanta os cionn airson Hz.
Tha ro-innleachdan fuadachaidh air an cur an gnìomh gu math, ach airson cùisean sònraichte faodaidh tu do chuid fhèin a chuir ris. Chan fheum thu a bhith draghail mun phàirt seo.

Faodar stòradh (4) a cheangal. Sgoinneil. Faodar beachdachadh air eadar-obrachadh (5) airson freumhaichte sa bhad. Iomlaid dàta eadar nodan sa bhuidheann (6) - tha, tha e ann. Is e tasgadh a tha seo ann am fulangas sgàinidhean aig cosgais astar. Leigidh feart Hz Near-cache leat a’ phrìs a lughdachadh - thèid dàta a gheibhear bho nodan eile sa bhuidheann a thasgadh.

Dè ghabhas dèanamh ann an leithid de shuidheachaidhean gus astar àrdachadh?

Mar eisimpleir, gus sreathachadh na h-iuchrach ann an (2) a sheachnadh - ceangail tasgadan eile air mullach Hazelcast, airson an dàta as teotha. Thagh Sportmaster Caffeine airson an adhbhair seo.

Airson toinneamh aig ìre (6), tha Hz a’ tabhann dà sheòrsa stòraidh: IMap agus ReplicatedMap.
Mar a thagh sinn aig Sportmaster siostam caching. Pàirt 1

Is fhiach iomradh a thoirt air mar a fhuair Hazelcast a-steach don stac teicneòlais Sportmaster.

Ann an 2012, nuair a bha sinn ag obair air a’ chiad phìleat den làrach san àm ri teachd, b’ e Hazelcast a thàinig a-mach mar a’ chiad cheangal a thill an einnsean sgrùdaidh. Thòisich an neach-eòlais “a’ chiad uair ”- bha sinn air ar beò-ghlacadh leis gu robh dìreach dà uair a-thìde às deidh sin, nuair a chuir sinn Hz a-steach don t-siostam, dh’ obraich e. Agus dh’obraich e gu math. Ro dheireadh an latha bha sinn air grunn deuchainnean a chrìochnachadh agus bha sinn toilichte. Agus bha an tèarmann spionnadh seo gu leòr gus faighinn thairis air na h-iongnadh a thilg Hz suas thar ùine. A-nis chan eil adhbhar aig sgioba Sportmaster Hazelcast a thrèigsinn.

Ach tha argamaidean mar “a’ chiad cheangal san einnsean sgrùdaidh” agus “HelloWorld air a chruinneachadh gu sgiobalta” nan eisgeachd agus nam feart den mhionaid a thachair an roghainn. Bidh na fìor dheuchainnean airson an t-siostam taghte a’ tòiseachadh le sgaoileadh a-steach gu cinneasachadh, agus is ann aig an ìre seo a bu chòir dhut aire a thoirt dhut nuair a thaghas tu siostam sam bith, a ’toirt a-steach tasgadan. Gu fìrinneach, anns a ’chùis againn faodaidh sinn a ràdh gun do thagh sinn Hazelcast le tubaist, ach an uairsin thionndaidh e a-mach gun do thagh sinn gu ceart.

Airson cinneasachadh, mòran nas cudromaiche: sgrùdadh, làimhseachadh fàilligeadh air nodan fa leth, ath-riochdachadh dàta, cosgais sgèileadh. Is e sin, is fhiach aire a thoirt do na gnìomhan a thig am bàrr aig àm cumail suas an t-siostaim - nuair a tha an luchd deichean de thursan nas àirde na bha dùil, nuair a luchdaicheas sinn suas rudeigin gun fhiosta san àite cheàrr, nuair a dh’ fheumas sinn dreach ùr a chuir a-steach. den chòd, cuir an àite dàta agus dèan gun mhothachadh dha teachdaichean.

Airson na riatanasan sin uile, tha Hazelcast gu cinnteach a’ freagairt air a’ bhile.

Ri leantainn

Ach chan e panacea a th’ ann an Hazelcast. Ann an 2017, thagh sinn Hazelcast airson an tasgadan rianachd, dìreach stèidhichte air deagh bheachdan bho eòlas a chaidh seachad. Bha prìomh phàirt aig seo ann an fealla-dhà gu math an-iochdmhor, air sgàth sin lorg sinn sinn fhìn ann an suidheachadh duilich agus “gu gaisgeil” fhuair sinn a-mach às airson 60 latha. Ach tuilleadh air sin anns an ath earrann.

Anns an eadar-ama... Còd Ùr Mhath!

Source: www.habr.com

Cuir beachd ann