Momwe ife ku Sportmaster tinasankhira makina osungira. Gawo 1

Moni! Dzina langa ndine Alexey Pyankov, ndine wopanga pakampani ya Sportmaster. Mu zimenezo positi Ndidauza momwe ntchito patsamba la Sportmaster idayambira mu 2012, ndi njira ziti zomwe tidakwanitsa "kukankhira" komanso mosemphanitsa, zomwe tidasonkhanitsa.

Lero ndikufuna kugawana nawo malingaliro omwe amatsatira mutu wina - kusankha kachidindo kachipangizo ka java backend m'dera la admin. Chiwembuchi chili ndi tanthauzo lapadera kwa ine - ngakhale nkhaniyo idachitika kwa miyezi iwiri yokha, m'masiku 2 tidagwira ntchito maola 60-12 popanda tsiku limodzi lopuma. Sindinaganizepo kapena kuganiza kuti n’zotheka kugwira ntchito molimbika chonchi.

Choncho, ndinagawaniza malembawo m'magawo a 2 kuti ndisasinthiretu. M'malo mwake, gawo loyamba lidzakhala lopepuka kwambiri - kukonzekera, mawu oyamba, malingaliro ena okhudza caching. Ngati ndinu katswiri wodziwa zambiri kapena mwagwirapo ntchito ndi ma cache, kuchokera kumbali yaukadaulo sipadzakhalanso chatsopano m'nkhaniyi. Koma kwa wachichepere, ndemanga yaying’ono yoteroyo ingamuuze mbali yoti ayang’ane ngati adzipeza ali pamphambano yoteroyo.

Momwe ife ku Sportmaster tinasankhira makina osungira. Gawo 1

Pamene mawonekedwe atsopano a webusaiti ya Sportmaster adayikidwa pakupanga, deta inalandiridwa m'njira yomwe inali, kuiyika mofatsa, osati yabwino kwambiri. Maziko ake anali matebulo okonzekera mtundu wam'mbuyo wa tsambalo (Bitrix), lomwe limayenera kukokedwa ku ETL, kubweretsa mawonekedwe atsopano ndikulemeretsa ndi zinthu zazing'ono zingapo kuchokera pamakina ena khumi ndi awiri. Kuti chithunzi chatsopano kapena malongosoledwe azinthu awonekere patsambalo, muyenera kudikirira mpaka tsiku lotsatira - zosintha usiku, kamodzi patsiku.

Poyamba, panali zodetsa nkhawa zambiri kuyambira masabata oyambilira akupanga kotero kuti zosokoneza za oyang'anira zomwe zili mkati zinali zochepa. Koma, zonse zitakhazikika, chitukuko cha polojekiti chinapitirira - miyezi ingapo pambuyo pake, kumayambiriro kwa 2015, tinayamba kupanga gulu la admin. Mu 2015 ndi 2016, zonse zikuyenda bwino, timamasula nthawi zonse, gulu la admin likuphimba zambiri zokonzekera deta, ndipo tikukonzekera kuti posachedwa gulu lathu lidzapatsidwa chinthu chofunika kwambiri komanso chovuta kwambiri - mankhwala. dera (kukonzekera kwathunthu ndi kukonza deta pazinthu zonse). Koma m'chilimwe cha 2017, atangotsala pang'ono kukhazikitsidwa kwa dera lazinthu, ntchitoyi idzakhala yovuta kwambiri - makamaka chifukwa cha mavuto ndi caching. Ndikufuna kulankhula za gawoli mu gawo lachiwiri la buku la magawo awirili.

Koma mu positi iyi ndiyambira patali, ndipereka malingaliro ena - malingaliro okhudza caching, yomwe ingakhale sitepe yabwino kuti mudutse ntchito yayikulu isanachitike.

Pamene ntchito caching ikuchitika

Ntchito yosungira sikuwoneka yokha. Ndife opanga, tikulemba pulogalamu yamapulogalamu ndipo tikufuna kuti ikhale yofunikira. Ngati mankhwalawa akufunika komanso opambana, ogwiritsa ntchito adzabwera. Ndipo ochulukira akubwera. Ndiyeno pali ogwiritsa ntchito ambiri ndiyeno mankhwalawa amakhala odzaza kwambiri.

Pamagawo oyamba, sitiganizira za kukhathamiritsa komanso magwiridwe antchito. Chinthu chachikulu ndicho kugwira ntchito, kutulutsa mwamsanga woyendetsa ndege ndikuyesa ma hypotheses. Ndipo katunduyo akachuluka, timapopa chitsulocho. Timachulukitsa kawiri kapena katatu, kasanu, mwina 10. Penapake apa - ndalama sizingalolenso. Kodi chiwerengero cha ogwiritsa ntchito chidzawonjezeka kangati? Sizidzakhala ngati 2-5-10, koma ngati zipambana, zidzakhala kuchokera ku 100-1000 mpaka 100 zikwi. Ndiye kuti, posachedwa kapena mtsogolo, muyenera kuchita kukhathamiritsa.

Tinene kuti gawo lina la code (tiyeni titchule gawo ili kuti ndi ntchito) limatenga nthawi yayitali, ndipo tikufuna kuchepetsa nthawi yopha. Ntchito ikhoza kukhala yofikira ku database, kapena ikhoza kukhala kutsata malingaliro ovuta - chinthu chachikulu ndikuti zimatenga nthawi yayitali kuti amalize. Kodi mungachepetse bwanji nthawi yokonzekera? M'malire, mutha kuchepetsa mpaka ziro, osapitilira. Kodi mungachepetse bwanji nthawi yochitira ziro? Yankho: kuthetsa kuphedwa palimodzi. M'malo mwake, bweretsani zotsatira mwamsanga. Kodi mungadziwe bwanji zotsatira zake? Yankho: mwina muwerengere kapena muyang'ane penapake. Zimatenga nthawi yayitali kuti muwerenge. Ndipo kuti akazonde, mwachitsanzo, kukumbukira zotsatira zomwe ntchitoyo idatulutsa komaliza itayitanidwa ndi magawo omwewo.

Ndiko kuti, kukhazikitsidwa kwa ntchitoyi sikofunikira kwa ife. Ndikokwanira kungodziwa pazigawo zomwe zotsatira zake zimadalira. Ndiye, ngati magawo a parameter akuyimiridwa mu mawonekedwe a chinthu chomwe chingagwiritsidwe ntchito ngati kiyi posungirako, ndiye kuti zotsatira za kuwerengera zitha kupulumutsidwa ndikuwerenganso nthawi ina ikadzafika. Ngati kulemba ndi kuwerenga kwa zotsatirazo kuli mofulumira kuposa kuchita ntchitoyo, tili ndi phindu pa liwiro. Kuchuluka kwa phindu kumatha kufika pa 100, 1000, ndi 100 nthawi zikwi (10 ^ 5 ndizosiyana, koma pakakhala malo ocheperako, ndizotheka).

Zofunikira zoyambira pa caching system

Chinthu choyamba chomwe chingakhale chofunikira pa caching system ndikufulumira kuwerenga komanso, pang'ono pang'ono, kulemba liwiro. Izi ndi zoona, koma pokhapokha titatulutsa dongosolo kuti lipangidwe.

Tiyeni tisewere nkhaniyi.

Tiyerekeze kuti tapereka katundu wamakono ndi hardware ndipo pang'onopang'ono tikuyambitsa caching. Chiwerengero cha ogwiritsa ntchito chimakula pang'ono, katunduyo amakula - timawonjezera ma cache pang'ono, kuwombera apa ndi apo. Izi zikupitirira kwa kanthawi, ndipo tsopano ntchito zolemetsa sizimatchedwanso - katundu wonse waukulu umagwera pa cache. Chiwerengero cha ogwiritsa ntchito panthawiyi chawonjezeka ka N.

Ndipo ngati kuperekedwa koyamba kwa hardware kungakhale nthawi 2-5, ndiye mothandizidwa ndi cache tikhoza kusintha ntchito ndi gawo la 10 kapena, mwabwino, ndi chiwerengero cha 100, m'malo ena mwina ndi chifukwa. ya 1000. Ndiko kuti, pa hardware yomweyo - timakonza zopempha 100 nthawi zambiri. Zabwino, mukuyenera mkate wa gingerbread!

Koma tsopano, panthawi ina yabwino, mwamwayi, makinawo adagwa ndipo posungirayo adagwa. Palibe chapadera - pambuyo pake, cache idasankhidwa kutengera zomwe "kuthamanga kwambiri kuwerenga ndi kulemba, zina zilibe kanthu."

Poyerekeza ndi katundu woyambira, nkhokwe yathu yachitsulo inali nthawi 2-5, ndipo katunduyo adakwera nthawi 10-100. Pogwiritsa ntchito cache, tidachotsa ma foni olemetsa ndipo zonse zidayenda bwino. Ndipo tsopano, popanda cache, kangati dongosolo lathu lizichepetsa? Kodi chidzatichitikira n’chiyani? Dongosolo lidzagwa.

Ngakhale cache yathu sinagwe, koma idangochotsedwa kwakanthawi, iyenera kutenthedwa, ndipo izi zitenga nthawi. Ndipo panthawiyi, cholemetsa chachikulu chidzagwa pakugwira ntchito.

Kutsiliza: mapulojekiti odzaza kwambiri amafunikira makina osungira osati kuti akhale ndi liwiro lalikulu lowerenga ndi kulemba, komanso kuonetsetsa chitetezo cha data ndikukana zolephera.

Tambala wosankha

Mu pulojekiti yokhala ndi gulu la admin, kusankha kudapita motere: choyamba tidayika Hazelcast, chifukwa Tidazidziwa kale mankhwalawa kuchokera pazomwe zidachitika patsamba lalikulu. Koma apa chisankho ichi sichinapambane - pansi pa mbiri yathu yolemetsa, Hazelcast samangochedwa, koma wodekha kwambiri. Ndipo panthawiyo tinali titalembetsa kale tsiku lomasulidwa.

Spoiler: momwe zinthu zidakhalira ndendende kuti tidaphonya chinthu chachikulu chotere ndipo tidakhala ndi vuto lalikulu - ndikuwuzani gawo lachiwiri - komanso momwe tidathera komanso momwe tidatuluka. Koma tsopano - ndingonena kuti kunali kupsinjika kwambiri, ndipo "kuganiza - mwanjira ina sindingathe kuganiza, tikugwedeza botolo." "Kugwedeza botolo" ndikowononganso, zambiri pambuyo pake.

Zomwe tidachita:

  1. Timalemba mndandanda wamakina onse omwe Google ndi StackOverflow akuwonetsa. Pafupifupi mphindi 30
  2. Timalemba mayeso ndi katundu wofanana ndi kupanga. Kuti tichite izi, tinalemba deta yomwe imadutsa m'dongosolo mu malo opangira - mtundu wa sniffer wa deta osati pa intaneti, koma mkati mwa dongosolo. Ndendende deta iyi idagwiritsidwa ntchito poyesa.
  3. Ndi gulu lonse, aliyense amasankha dongosolo lotsatira pamndandanda, amakonza, ndikuyesa mayeso. Sichimadutsa mayesero, sichinyamula katundu - timachitaya ndikupita ku china chotsatira.
  4. Pa dongosolo la 17 zinaonekeratu kuti zonse zinali zopanda chiyembekezo. Lekani kugwedeza botolo, nthawi yakwana yoganiza mozama.

Koma izi ndizosankha pamene mukufunikira kusankha dongosolo lomwe "lidzadutsa mofulumira" mu mayesero okonzekeratu. Bwanji ngati palibe mayesero oterowo ndipo mukufuna kusankha mwamsanga?

Tiyeni tiyese chitsanzo ichi (ndizovuta kulingalira kuti wopanga mapulogalamu apakati + amakhala mopanda kanthu, ndipo panthawi yosankhidwa sanakhazikitse zomwe akufuna kuti ayambe kuyesa - chifukwa chake, kulingalira kwina ndiko kuganiza mozama / filosofi / za junior).

Popeza tasankha zofunikira, tiyamba kusankha yankho m'bokosilo. Chifukwa chiyani yambitsanso gudumu: tipita kukatenga makina osungira okonzeka.

Ngati mutangoyamba kumene ndi google, ndiye perekani kapena mutenge dongosolo, koma kawirikawiri, malangizowo adzakhala chonchi. Choyamba, mudzakumana ndi Redis, imamveka kulikonse. Ndiye mudzapeza kuti EhCache ndi dongosolo akale kwambiri kutsimikiziridwa. Kenako tilemba za Tarantool, chitukuko chapakhomo chomwe chili ndi gawo lapadera la yankho. Komanso Ignite, chifukwa tsopano akuchulukirachulukira ndipo amasangalala ndi chithandizo cha SberTech. Pamapeto pake palinso Hazelcast, chifukwa m'mayiko amalonda nthawi zambiri amawonekera pakati pa makampani akuluakulu.

Mndandandawu siwokwanira; pali machitidwe ambiri. Ndipo tingowononga chinthu chimodzi. Tiyeni titenge machitidwe asanu osankhidwa a "mpikisano wa kukongola" ndikusankha. Ndani adzakhala wopambana?

Redis

Timawerenga zomwe amalemba patsamba lovomerezeka.
Redis - Opensource project. Amapereka kusungidwa kwa data mu-memory, kukwanitsa kusunga pa-disk, auto-partitioning, kupezeka kwakukulu ndi kuchira kuchokera kuzimitsa kwa intaneti.

Zikuwoneka kuti zonse zili bwino, mutha kuzitenga ndikuziwombera - zonse zomwe mukufuna, zimatero. Koma kuti tisangalale, tiyeni tione ena ofuna.

EhCache

EhCache - "cache yomwe imagwiritsidwa ntchito kwambiri pa Java" (kumasulira kwa mawu olembedwa patsamba lovomerezeka). Komanso opensource. Kenako timamvetsetsa kuti Redis si ya java, koma yamba, ndipo kuti mulumikizane nayo pamafunika chofunda. Ndipo EhCache idzakhala yabwino. Ndi chiyani chinanso chomwe dongosololi limalonjeza? Kudalirika, kutsimikiziridwa, kugwira ntchito kwathunthu. Chabwino, ndizofala kwambiri. Ndipo posungira ma terabytes a data.

Redis aiwalika, ndine wokonzeka kusankha EhCache.

Koma kukonda dziko lako kumandikakamiza kuti ndiwone zabwino za Tarantool.

Tarantool

Tarantool - amakumana ndi dzina lakuti "Real-time data integration platform". Zikumveka zovuta kwambiri, kotero timawerenga tsambalo mwatsatanetsatane ndikupeza mawu okweza: "Imasunga 100% ya data mu RAM." Izi ziyenera kudzutsa mafunso - pambuyo pake, patha kukhala zambiri kuposa kukumbukira. Kufotokozera ndikuti zikutanthawuza kuti Tarantool simayendetsa serialization kuti ilembe deta ku disk kuchokera pamtima. M'malo mwake, imagwiritsa ntchito mawonekedwe otsika a dongosolo, pomwe kukumbukira kumangojambulidwa ku fayilo yokhala ndi magwiridwe antchito abwino kwambiri a I/O. Kawirikawiri, iwo anachita chinthu chodabwitsa komanso chozizira.

Tiyeni tiwone zomwe zakhazikitsidwa: Mail.ru corporate highway, Avito, Beeline, Megafon, Alfa-Bank, Gazprom ...

Ngati pakadali kukayikira kulikonse za Tarantool, ndiye kuti mlandu wokhazikitsidwa ku Mastercard umandimaliza. Ndimatenga Tarantool.

Komabe…

Musanyalanyaze

… pali zinanso Musanyalanyaze, imatchedwa "in-memory computing platform...mu-memory speeds pa petabytes of data." Palinso zabwino zambiri pano: kugawidwa mu-memory cache, kusungirako kwamtengo wapatali kwambiri ndi cache, kukweza kopingasa, kupezeka kwakukulu, kukhulupirika kokhazikika. Mwambiri, zikuwoneka kuti yothamanga kwambiri ndi Ignite.

Kukhazikitsa: Sberbank, American Airlines, Yahoo! Japan. Ndiyeno ndikupeza kuti Ignite sikungogwiritsidwa ntchito ku Sberbank, koma gulu la SberTech limatumiza anthu ake ku gulu la Ignite lokha kuti likonzenso malonda. Izi ndizosangalatsa kwambiri ndipo ndakonzeka kutenga Ignite.

Sizikudziwika bwino chifukwa chake, ndikuyang'ana mfundo yachisanu.

hazelcast

Ndimapita patsamba hazelcast, kuwerenga. Ndipo zikuoneka kuti njira yachangu kwa caching anagawira ndi Hazelcast. Ndi maulamuliro a kukula mofulumira kuposa mayankho ena onse ndipo kawirikawiri ndi mtsogoleri pamagulu a grid data mu-memory. Potengera izi, kutenga chinthu china sikuyenera kudzilemekeza. Imagwiritsanso ntchito kusungirako deta yowonjezereka kuti igwire ntchito mosalekeza pagulu popanda kutaya deta.

Ndi zimenezotu, ndakonzeka kutenga Hazelcast.

Kuyerekeza

Koma ngati muyang'ana, osankhidwa onse asanu akufotokozedwa m'njira yakuti aliyense wa iwo ndi wabwino kwambiri. Kodi kusankha? Titha kuwona yemwe ali wotchuka kwambiri, yang'anani mafananidwe, ndipo mutu udzachoka.

Timapeza wina wonga uyu kuwunika, sankhani machitidwe athu 5.

Momwe ife ku Sportmaster tinasankhira makina osungira. Gawo 1

Apa asankhidwa: Redis ali pamwamba, Hazelcast ali pamalo achiwiri, Tarantool ndi Ignite akupeza kutchuka, EhCache yakhala ikufanana.

Koma tiyeni tione njira yowerengera: maulalo amawebusayiti, chidwi chambiri pamakina, ntchito zopatsa - zabwino! Ndiko kuti, dongosolo langa likalephera, ndidzanena kuti: “Ayi, ndizodalirika! Pali zambiri zopatsa ntchito. ”… Kuyerekezera kophweka koteroko sikungathandize.

Machitidwe onsewa si makina osungira okha. Amakhalanso ndi ntchito zambiri, kuphatikizapo pamene deta siinapopedwe kwa kasitomala kuti ikonzedwe, koma mosiyana: code yomwe imayenera kuchitidwa pa deta imasunthira ku seva, imachitidwa kumeneko, ndipo zotsatira zake zimabwezeretsedwa. Ndipo nthawi zambiri samawonedwa ngati njira yosiyana yosungira.

Chabwino, tisataye mtima, tiyeni tipeze kufananitsa kwachindunji kwa machitidwe. Tiyeni titenge njira ziwiri zapamwamba - Redis ndi Hazelcast. Tili ndi chidwi ndi liwiro, ndipo tidzawafanizitsa potengera izi.

Hz vs Redis

Ife tikupeza izi kufanizira:
Momwe ife ku Sportmaster tinasankhira makina osungira. Gawo 1

Buluu ndi Redis, wofiira ndi Hazelcast. Hazelcast imapambana kulikonse, ndipo pali zifukwa za izi: imakhala ndi ulusi wambiri, wokongoletsedwa kwambiri, ulusi uliwonse umagwira ntchito ndi magawo ake, kotero palibe kutsekereza. Ndipo Redis ili ndi ulusi umodzi; sichipindula ndi ma CPU amakono ambiri. Hazelcast ili ndi asynchronous I/O, Redis-Jedis ili ndi zotchingira. Kupatula apo, Hazelcast amagwiritsa ntchito protocol ya binary, ndipo Redis ndiyokhazikika pamawu, kutanthauza kuti ndiyosakwanira.

Ngati zitheka, tiyeni titembenukire ku magwero ena oyerekezera. Nanga adzationetsa ciani?

Redis vs Hz

Wina kufanizira:
Momwe ife ku Sportmaster tinasankhira makina osungira. Gawo 1

Apa, m'malo mwake, wofiira ndi Redis. Ndiko kuti, Redis imaposa Hazelcast pakuchita bwino. Hazelcast adapambana kufananitsa koyamba, Redis adapambana chachiwiri. Pomwe pano adafotokoza momveka bwino chifukwa chomwe Hazelcast adapambana kufananitsa kwapita.

Zikuoneka kuti zotsatira za woyambayo zinali zokhotakhota: Redis adatengedwa m'bokosi loyambira, ndipo Hazelcast adakonzedwa kuti ayesedwe. Kenaka zikuwonekera: choyamba, sitingakhulupirire aliyense, ndipo kachiwiri, tikamasankha dongosolo, tifunikabe kukonza bwino. Zokonda izi zikuphatikiza zambiri, pafupifupi mazana a magawo.

Kugwedeza botolo

Ndipo nditha kufotokoza zonse zomwe tachita tsopano ndi fanizo ili: "Kugwedeza botolo." Ndiko kuti, tsopano simukuyenera kupanga pulogalamu, tsopano chinthu chachikulu ndikutha kuwerenga stackoverflow. Ndipo ndili ndi munthu pagulu langa, katswiri, yemwe amagwira ntchito chimodzimodzi panthawi yovuta.

Kodi iye akuchita chiyani? Amawona chinthu chosweka, amawona kuchulukirachulukira, amatenga mawu kuchokera pamenepo (omwe ndi ukatswiri wake mu pulogalamuyi), amafufuza pa Google, amapeza kuchuluka kwa mayankho pakati pa mayankho. Popanda kuwerenga, popanda kuganiza, pakati pa mayankho a funsoli, amasankha chinthu chofanana kwambiri ndi chiganizo "chita ichi ndi icho" (kusankha yankho ili ndilo talente yake, chifukwa si nthawi zonse yankho lomwe limalandira zokonda kwambiri), imagwira ntchito, zikuwoneka: ngati china chake chasintha, ndiye chabwino. Ngati sichinasinthe, tembenuzaninso. Ndipo bwerezani kusaka-kufufuza. Ndipo mwachidziwitso ichi, amaonetsetsa kuti code ikugwira ntchito pakapita nthawi. Sakudziwa chifukwa chake, sakudziwa zomwe adachita, sangathe kufotokoza. Koma! Matendawa amagwira ntchito. Ndipo “moto umazimitsidwa.” Tsopano tiyeni tione zimene tinachita. Pulogalamuyo ikagwira ntchito, ndi dongosolo la ukulu wosavuta. Ndipo zimapulumutsa nthawi yambiri.

Njirayi ikufotokozedwa bwino ndi chitsanzo ichi.

Poyamba zinali zotchuka kwambiri kusonkhanitsa ngalawa mu botolo. Panthawi imodzimodziyo, bwato la ngalawa ndi lalikulu komanso losalimba, ndipo khosi la botolo ndi lopapatiza kwambiri, sizingatheke kukankhira mkati. Kodi kusonkhanitsa izo?

Momwe ife ku Sportmaster tinasankhira makina osungira. Gawo 1

Pali njira yotereyi, yofulumira kwambiri komanso yothandiza kwambiri.

Sitimayo imakhala ndi tinthu tating'onoting'ono: ndodo, zingwe, matanga, zomatira. Timayika zonsezi mu botolo.
Timatenga botolo ndi manja onse ndikuyamba kugwedeza. Timamugwedeza ndi kumugwedeza. Ndipo nthawi zambiri amakhala zinyalala wathunthu, ndithudi. Koma nthawi zina. Nthawi zina zimakhala ngati sitima! Kunena zowona, chinthu chofanana ndi chombo.

Tikuwonetsa izi kwa wina: "Seryoga, mukuwona!?" Ndipo ndithudi, patali chikuwoneka ngati chombo. Koma izi sizingaloledwe kupitiliza.

Palinso njira ina. Amagwiritsidwa ntchito ndi anyamata apamwamba kwambiri, monga owononga.

Ndinapatsa munthu uyu ntchito, anachita zonse ndikuchoka. Ndipo mukuwoneka - zikuwoneka ngati zatha. Ndipo patapita kanthawi, pamene code ikufunika kumalizidwa, izi zimayamba chifukwa cha iye ... Ndibwino kuti adatha kale kuthawa kutali. Awa ndi anyamata omwe, pogwiritsa ntchito chitsanzo cha botolo, adzachita izi: mukuwona, komwe kuli pansi, galasi limapindika. Ndipo sizikudziwikiratu kuti ndi zowonekera kapena ayi. Kenako "obera" adadula pansi, kuyika sitimayo pamenepo, kenaka kumangiriza pansi kumbuyo, ndipo zimakhala ngati ndi momwe ziyenera kukhalira.

Kuchokera pamalingaliro okhazikitsa vuto, zonse zikuwoneka ngati zolondola. Koma kugwiritsa ntchito zombo monga chitsanzo: bwanji kupanga sitimayi nkomwe, ndani akufunikira? Silimapereka magwiridwe antchito. Kawirikawiri zombo zoterezi ndi mphatso kwa anthu apamwamba kwambiri, omwe amaziyika pa alumali pamwamba pawo, monga chizindikiro cha mtundu wina, monga chizindikiro. Ndipo ngati munthu woteroyo, mkulu wa bizinesi yaikulu kapena waudindo wapamwamba, kodi mbendera ingaimire bwanji kuthyolako kotereku, kodulidwa khosi? Zikanakhala bwino ngati sakanadziwa za izo. Nanga atha bwanji kupanga zombozi zomwe angapereke kwa munthu wofunika?

Malo okhawo ofunikira omwe simungathe kuchita chilichonse ndi thupi. Ndipo chikopa cha ngalawacho chimalowa m'khosi. Pomwe sitimayo imasonkhanitsidwa kunja kwa botolo. Koma sikuti kungosonkhanitsa ngalawa, ndi luso lenileni la zodzikongoletsera. Zopangira zapadera zimawonjezeredwa ku zigawozo, zomwe zimawalola kuti azikwezedwa. Mwachitsanzo, matanga amapindika, amalowetsedwa mosamala mkati, ndiyeno, mothandizidwa ndi tweezers, amakoka ndikukwezedwa molondola kwambiri, molondola. Chotsatira chake ndi ntchito yaluso yomwe ingakhale ndi mphatso ya chikumbumtima choyera ndi kunyada.

Ndipo ngati tikufuna kuti ntchitoyo ikhale yopambana, payenera kukhala munthu mmodzi wa miyala yamtengo wapatali. Wina amene amasamala za ubwino wa mankhwala ndi kuganizira mbali zonse, popanda nsembe chilichonse, ngakhale mu nthawi ya nkhawa, pamene zinthu amafuna kuchita mwamsanga pa ndalama zofunika. Mapulojekiti onse opambana omwe ali okhazikika, omwe akhala akuyesa nthawi, amamangidwa pa mfundo iyi. Pali china chake cholondola komanso chachilendo pa iwo, chomwe chimagwiritsa ntchito mwayi uliwonse womwe ulipo. Mu chitsanzo ndi ngalawa mu botolo, mfundo yakuti chombo cha sitimayo chimadutsa pakhosi chimaseweredwa.

Kubwerera ku ntchito yosankha seva yathu yosungira, kodi njirayi ingagwiritsidwe ntchito bwanji? Ndikupereka chisankho ichi chosankha kuchokera ku machitidwe onse omwe alipo - musagwedeze botolo, musasankhe, koma yang'anani zomwe ali nazo, zomwe muyenera kuziyang'ana posankha dongosolo.

Komwe mungayang'ane botolo-khosi

Tiyeni tiyesetse kuti tisagwedeze botolo, kuti tisadutse chirichonse chomwe chiripo chimodzi ndi chimodzi, koma tiyeni tiwone mavuto omwe angabwere ngati mwadzidzidzi, chifukwa cha ntchito yathu, tidzipanga tokha dongosolo loterolo. Zoonadi, sitidzasonkhanitsa njinga, koma tidzagwiritsa ntchito chithunzichi kutithandiza kudziwa mfundo zomwe tiyenera kuziganizira pofotokozera mankhwala. Tiyeni tijambule chithunzi chotere.

Momwe ife ku Sportmaster tinasankhira makina osungira. Gawo 1

Ngati dongosololi likugawidwa, ndiye kuti tidzakhala ndi ma seva angapo (6). Tiyerekeze kuti pali anayi (ndikosavuta kuwayika pachithunzichi, koma, ndithudi, pakhoza kukhala ochuluka momwe mukufunira). Ngati ma seva ali pamagulu osiyanasiyana, zikutanthauza kuti onse amayendetsa kachidindo kamene kamakhala ndi udindo woonetsetsa kuti nodezi zimapanga masango ndipo, pakagwa nthawi yopuma, zimagwirizanitsa ndikuzindikirana.

Timafunikiranso code logic (2), yomwe kwenikweni ili yokhudza caching. Makasitomala amalumikizana ndi khodi iyi kudzera mu API ina. Khodi yamakasitomala (1) ikhoza kukhala mkati mwa JVM yomweyo kapena kuyipeza pamaneti. Lingaliro lomwe lakhazikitsidwa mkati ndikusankha kuti ndi zinthu ziti zomwe zichoke mu cache ndikutaya. Timagwiritsa ntchito kukumbukira (3) kusunga cache, koma ngati kuli kofunikira, tikhoza kusunga zina mwazolemba pa disk (4).

Tiyeni tiwone mbali zomwe katunduyo azichitika. Kwenikweni, muvi uliwonse ndi node iliyonse idzayikidwa. Choyamba, pakati pa nambala yamakasitomala ndi api, ngati iyi ndi kulumikizana kwapaintaneti, kutsika kumatha kuwoneka bwino. Kachiwiri, mkati mwa chimango cha api palokha - ngati tipitilira ndi malingaliro ovuta, titha kulowa m'mavuto ndi CPU. Ndipo zingakhale bwino ngati logic sinataye nthawi pamtima. Ndipo pali kuyanjana komwe kumatsalira ndi mafayilo amafayilo - mumtundu wanthawi zonse izi ndi serialize / kubwezeretsa ndikulemba / kuwerenga.

Chotsatira ndikulumikizana ndi tsango. Mwinamwake, izo zidzakhala mu dongosolo lomwelo, koma zikhoza kukhala padera. Apa muyeneranso kuganizira kusamutsa deta kwa izo, liwiro la serialization deta ndi kugwirizana pakati pa tsango.

Tsopano, kumbali imodzi, tikhoza kulingalira "magiya ati omwe angatembenuzire" mu cache system pokonza zopempha kuchokera ku code yathu, ndipo kumbali ina, tikhoza kulingalira zomwe ndi zopempha zingati zomwe code yathu idzapanga dongosolo lino. Izi ndi zokwanira kuti tisankhe mwanzeru - kusankha njira yoti tigwiritse ntchito.

hazelcast

Tiyeni tiwone momwe tingagwiritsire ntchito kuwonongeka kumeneku pamndandanda wathu. Mwachitsanzo, Hazelcast.

Kuti muyike / mutenge deta kuchokera ku Hazelcast, khodi ya kasitomala imapeza (1) api. Hz imakulolani kuyendetsa seva monga yophatikizidwa, ndipo pamenepa, kupeza api ndi njira yoyitanira mkati mwa JVM, yomwe ingaganizidwe kuti ndi yaulere.

Kuti logic mu (2) igwire ntchito, Hz imadalira hashi ya makiyi a serialized - ndiye kuti, fungulo lidzasinthidwa mulimonse. Izi ndizosapeŵeka pamutu wa Hz.
Njira zothamangitsira zikugwiritsidwa ntchito bwino, koma pazochitika zapadera mukhoza kuwonjezera zanu. Simuyenera kuda nkhawa ndi gawo ili.

Kusungirako (4) kumatha kulumikizidwa. Zabwino. Kuyanjana (5) kwa ophatikizidwa kumatha kuganiziridwa nthawi yomweyo. Kusinthana kwa data pakati pa node mu tsango (6) - inde, kulipo. Uku ndikuyika ndalama pakulekerera zolakwika pamtengo wa liwiro. Gawo la Hz Near-cache limakupatsani mwayi wochepetsera mtengo - zomwe zalandilidwa kuchokera kumagulu ena amgulu zidzasungidwa.

Kodi chingachitike n’chiyani m’mikhalidwe yoteroyo kuti liwonjezeke?

Mwachitsanzo, kuti mupewe kusanja makiyi mu (2) - sungani posungira wina pamwamba pa Hazelcast, pa data yotentha kwambiri. Sportmaster adasankha Caffeine pachifukwa ichi.

Pakupotoza pamlingo (6), Hz imapereka mitundu iwiri yosungira: IMap ndi ReplicatedMap.
Momwe ife ku Sportmaster tinasankhira makina osungira. Gawo 1

Ndikoyenera kutchula momwe Hazelcast adalowa mumtundu waukadaulo wa Sportmaster.

Mu 2012, pamene tikugwira ntchito yoyendetsa ndege yoyamba ya malo amtsogolo, inali Hazelcast yomwe inakhala chiyanjano choyamba chomwe injini yosaka inabwerera. Kudziwana kunayamba "koyamba" - tinakopeka ndi mfundo yakuti maola awiri okha pambuyo pake, pamene tidasokoneza Hz mu dongosolo, zinagwira ntchito. Ndipo zinayenda bwino. Pofika kumapeto kwa tsikuli tinali titamaliza mayeso angapo ndipo tinali osangalala. Ndipo nkhokwe iyi yamphamvu inali yokwanira kuthana ndi zodabwitsa zomwe Hz adataya pakapita nthawi. Tsopano timu ya Sportmaster ilibe chifukwa chosiya Hazelcast.

Koma mikangano monga "chiyanjano choyamba mu injini yofufuzira" ndi "HelloWorld inasonkhanitsidwa mwamsanga" ndizosiyana ndi zomwe zinachitikira panthawi yomwe chisankhocho chinachitika. Mayesero enieni a dongosolo losankhidwa amayamba ndi kumasulidwa kuti apangidwe, ndipo ndi panthawi ino yomwe muyenera kumvetsera posankha dongosolo lililonse, kuphatikizapo cache. Kwenikweni, ife tikhoza kunena kuti tinasankha Hazelcast mwangozi, koma kunapezeka kuti tinasankha molondola.

Pakupanga, ndikofunikira kwambiri: kuyang'anira, kuthana ndi zolephera pamanodi pawokha, kubwereza deta, mtengo wakukweza. Ndiko kuti, ndi bwino kumvetsera ntchito zomwe zidzachitike panthawi yokonza dongosolo - pamene katunduyo ndi wokwera kakhumi kuposa momwe anakonzera, pamene mwangozi timayika chinachake pamalo olakwika, pamene tifunika kutulutsa Baibulo latsopano. za code, m'malo deta ndi kuchita mosazindikira kwa makasitomala.

Pazofunikira zonsezi, Hazelcast ikugwirizana ndi biluyo.

Zipitilizidwa

Koma Hazelcast si mankhwala. Mu 2017, tidasankha Hazelcast pa cache ya admin, kungotengera zomwe zidachitika kale. Izi zidachita mbali yayikulu mu nthabwala zankhanza kwambiri, chifukwa chomwe tidakumana ndi zovuta ndipo "mwaulemu" tidatulukamo kwa masiku 60. Koma zambiri pa izo mu gawo lotsatira.

Pakadali pano ... Wodala Code Yatsopano!

Source: www.habr.com

Kuwonjezera ndemanga