Ukuthi thina kwaSportmaster sikhethe kanjani i-caching system. Ingxenye 1

Sawubona! Igama lami ngingu-Alexey Pyankov, ngingunjiniyela enkampanini ye-Sportmaster. Kulokho okuthunyelwe Ngasho ukuthi umsebenzi kusizindalwazi se-Sportmaster waqala kanjani ngo-2012, yiziphi izinhlelo esikwazile “ukuphusha kuzo” futhi ngokuphambene nalokho, isiphi ireki esiyiqoqile.

Namuhla ngifuna ukwabelana ngemicabango elandela esinye isihloko - ukukhetha isistimu ye-caching ye-java backend endaweni yomphathi wesayithi. Lesi sakhiwo sinencazelo ekhethekile kimi - nakuba indaba yenzeka izinyanga ezi-2 kuphela, phakathi nalezi zinsuku ezingu-60 sisebenze amahora angu-12-16 futhi ngaphandle kosuku olulodwa lokuphumula. Ngangingakaze ngicabange noma ngicabange ukuthi kungenzeka ukusebenza kanzima kangaka.

Ngakho-ke, ngihlukanisa umbhalo zibe izingxenye ezingu-2 ukuze ngingawulayishi ngokuphelele. Ngokuphambene nalokho, ingxenye yokuqala izoba lula kakhulu - ukulungiselela, isingeniso, ukucatshangelwa okuthile mayelana nokuthi i-caching iyini. Uma usuvele ungunjiniyela onolwazi noma uke wasebenza nezinqolobane, kusukela ohlangothini lwezobuchwepheshe cishe ngeke kube khona okusha kulesi sihloko. Kodwa kumuntu osemncane, ukubukeza okuncane okunjalo kungamtshela ukuthi abheke ngakuphi uma ezithola esempambanweni yomgwaqo.

Ukuthi thina kwaSportmaster sikhethe kanjani i-caching system. Ingxenye 1

Lapho inguqulo entsha yewebhusayithi ye-Sportmaster ifakwa ekukhiqizweni, idatha yatholwa ngendlela yokuthi, ukuyibeka kancane, hhayi elula kakhulu. Isisekelo bekungamatafula alungiselelwe inguqulo yangaphambilini yesiza (i-Bitrix), okwakudingeka idonswe ku-ETL, ilethwe efomini elisha futhi inothiswe ngezinto ezincane ezihlukahlukene ezivela kwezinye izinhlelo eziyishumi nambili. Ukuze kuvele isithombe esisha noma incazelo yomkhiqizo kusayithi, bekufanele ulinde kuze kube usuku olulandelayo - izibuyekezo kuphela ebusuku, kanye ngosuku.

Ekuqaleni, bekunokukhathazeka okuningi kusukela emasontweni okuqala okukhiqizwa kangangokuthi ukuphazamiseka okunjalo kwabaphathi bokuqukethwe kwakuyinto encane. Kodwa, ngokushesha nje lapho yonke into isizinzile, ukuthuthukiswa kwephrojekthi kwaqhubeka - ezinyangeni ezimbalwa kamuva, ekuqaleni kuka-2015, saqala ukuthuthukisa iphaneli yokuphatha ngenkuthalo. Ngo-2015 no-2016, konke kuhamba kahle, sikhipha njalo, iphaneli yokuphatha ihlanganisa ukulungiswa kwedatha, futhi silungiselela iqiniso lokuthi maduze ithimba lethu lizophathiswa into ebaluleke kakhulu futhi eyinkimbinkimbi - umkhiqizo. umjikelezo (ukulungiswa okuphelele nokugcinwa kwedatha kuyo yonke imikhiqizo). Kodwa ehlobo lika-2017, ngaphambi nje kokwethulwa kwesifunda sempahla, iphrojekthi izozithola isesimweni esinzima kakhulu - ngenxa yezinkinga ze-caching. Ngifuna ukukhuluma ngalesi siqephu engxenyeni yesibili yalolu shicilelo olunezingxenye ezimbili.

Kodwa kulokhu okuthunyelwe ngizoqala kude, ngizokwethula imicabango ethile - imibono mayelana ne-caching, okungaba isinyathelo esihle sokupheqa ngaphambi kwephrojekthi enkulu.

Lapho kwenzeka umsebenzi wokulondoloza inqolobane

Umsebenzi wokulondoloza okwesikhashana awuveli nje. Singabathuthukisi, sibhala umkhiqizo wesoftware futhi sifuna ukuthi ube yimfuneko. Uma umkhiqizo udingeka futhi uphumelele, abasebenzisi bazofika. Futhi abengeziwe abeza. Bese kuba nabasebenzisi abaningi bese umkhiqizo ulayishwa kakhulu.

Ezigabeni zokuqala, asicabangi mayelana nokwenza kahle kanye nokusebenza kwekhodi. Into esemqoka ukusebenza, ngokushesha ukukhipha umshayeli wendiza kanye nemibono yokuhlola. Futhi uma umthwalo ukhula, simpompa insimbi. Sikwandisa kabili noma kathathu, kahlanu, mhlawumbe ka-10. Ndawana thize lapha - izimali ngeke zisakuvuma. Inani labasebenzisi lizokhuphuka kangaki? Ngeke kube njenge-2-5-10, kodwa uma iphumelele, izoba kusukela ku-100-1000 kuya ku-100 izikhathi eziyizinkulungwane. Okusho ukuthi, maduze noma kamuva, kuzodingeka wenze ukuthuthukiswa.

Ake sithi ingxenye ethile yekhodi (ake sibize le ngxenye ngomsebenzi) ithatha isikhathi eside ngokungafaneleki, futhi sifuna ukunciphisa isikhathi sokwenza. Umsebenzi ungaba ukufinyelela ku-database, noma kungaba ukwenziwa kwe-logic ethile eyinkimbinkimbi - into esemqoka ukuthi kuthatha isikhathi eside ukuqeda. Unganciphisa kangakanani isikhathi sokwenza? Emkhawulweni, ungawehlisa ube uziro, ungaqhubeki. Ungasinciphisa kanjani isikhathi sokwenza sibe ku-zero? Impendulo: susa ukubulawa ngokuphelele. Kunalokho, buyisela umphumela ngokushesha. Ungawuthola kanjani umphumela? Impendulo: yibale noma ubheke ndawana thize. Kuthatha isikhathi eside ukubala. Futhi inhloli, isibonelo, ukukhumbula umphumela wokuthi umsebenzi ukhiqize okokugcina lapho ubizwa ngemingcele efanayo.

Okusho ukuthi, ukuqaliswa komsebenzi akubalulekile kithi. Kwanele ukwazi nje ukuthi yiziphi imingcele umphumela uncike. Khona-ke, uma amanani epharamitha emelelwa ngendlela yento engasetshenziswa njengokhiye endaweni ethile yokugcina, umphumela wesibalo ungagcinwa futhi ufundwe ngesikhathi esilandelayo lapho ufinyelelwa khona. Uma lokhu kubhala nokufunda komphumela kushesha kunokwenza umsebenzi, sinenzuzo ngokwejubane. Inani lenzuzo lingafinyelela ku-100, 1000, kanye nezikhathi eziyizinkulungwane eziyi-100 (i-10 ^ 5 ihlukile, kodwa esimweni sesisekelo esilinganiselwe, kungenzeka).

Izidingo eziyisisekelo zesistimu yokugcina isikhashana

Into yokuqala engase ibe yimfuneko yesistimu ye-caching isivinini sokufunda ngokushesha futhi, ngokwezinga elincane, isivinini sokubhala. Lokhu kuyiqiniso, kodwa kuze kube yilapho sikhiphela isistimu ekukhiqizweni.

Asidlale leli cala.

Ake sithi sinikeze umthwalo wamanje ngehadiwe futhi manje sethula kancane kancane i-caching. Inombolo yabasebenzisi ikhula kancane, umthwalo ukhula - sifaka ama-cache amancane, sihlanganise lapha nalaphaya. Lokhu kuyaqhubeka isikhathi esithile, futhi manje imisebenzi esindayo cishe ayisabizwa - wonke umthwalo oyinhloko uwela kunqolobane. Inombolo yabasebenzisi ngalesi sikhathi ikhuphuke izikhathi ezingu-N.

Futhi uma ukunikezwa kokuqala kwe-hardware kungase kube izikhathi ezingu-2-5, ngakho-ke ngosizo lwenqolobane singathuthukisa ukusebenza nge-factor 10 noma, esimweni esihle, nge-factor ye-100, kwezinye izindawo mhlawumbe nge-factory factor. ka-1000. Okusho ukuthi, kwihadiwe efanayo - sicubungula izicelo eziphindwe ka-100 ngaphezulu. Kuhle, usifanele isinkwa sejinja!

Kodwa manje, ngesikhathi esisodwa esihle, ngenhlanhla, isistimu yaphahlazeka futhi inqolobane yawa. Akukho okukhethekile - emva kwakho konke, inqolobane yakhethwa ngokusekelwe kwimfuneko "ijubane eliphezulu lokufunda nokubhala, konke okunye akunandaba."

Ngokuphathelene nomthwalo wokuqala, inqolobane yethu yensimbi yayiyizikhathi ezingu-2-5, futhi umthwalo ngalesi sikhathi wanda izikhathi ezingu-10-100. Ngokusebenzisa i-cache, sisuse izingcingo zemisebenzi esindayo ngakho-ke konke kwasebenza. Futhi manje, ngaphandle kwenqolobane, isistimu yethu izokwehla kangaki ijubane? Kuzokwenzekani kithi? Uhlelo luzowa.

Ngisho noma inqolobane yethu ayizange iphahlazeke, kodwa yasuswa okwesikhashana nje, izodinga ukufudunyezwa, futhi lokhu kuzothatha isikhathi. Futhi ngalesi sikhathi, umthwalo omkhulu uzowela ekusebenzeni.

Isiphetho: amaphrojekthi okukhiqiza alayishwe kakhulu adinga uhlelo lwe-caching hhayi nje ukuba nesivinini sokufunda nokubhala esiphezulu, kodwa futhi nokuqinisekisa ukuphepha kwedatha kanye nokumelana nokwehluleka.

Ubuhlungu bokukhetha

Kuphrojekthi enephaneli yomqondisi, ukukhetha kuhambe kanje: okokuqala sifake i-Hazelcast, ngoba Besivele sijwayele lo mkhiqizo kusukela kokuhlangenwe nakho kwesayithi eliyinhloko. Kepha lapha lokhu kukhetha akuphumelelanga - ngaphansi kwephrofayili yethu yomthwalo, i-Hazelcast ayisheshi nje, kodwa ihamba kancane kakhulu. Futhi ngaleso sikhathi sase sibhalisele usuku lokukhululwa.

I-Spoiler: ukuthi izimo zaqala kanjani ukuthi siphuthelwe into enkulu kangaka futhi sagcina sinesimo esibucayi nesishubile - ngizokutshela engxenyeni yesibili - nokuthi sigcine kanjani nokuthi siphume kanjani. Kepha manje - ngizosho nje ukuthi bekuyingcindezi enkulu, futhi "ukucabanga - ngandlela thize angikwazi ukucabanga, sinyakazisa ibhodlela." "Ukunyakazisa ibhodlela" nakho kuyispoiler, ngaphezulu kwalokho kamuva.

Esikwenzile:

  1. Senza uhlu lwawo wonke amasistimu aphakanyiswa yi-Google kanye ne-StackOverflow. Ngaphansi kuka-30
  2. Sibhala izivivinyo ezinomthwalo ojwayelekile wokukhiqiza. Ukwenza lokhu, siqophe idatha edlula ohlelweni endaweni yokukhiqiza - uhlobo lokuhogela idatha hhayi kunethiwekhi, kodwa ngaphakathi kwesistimu. Impela le datha isetshenziswe ezivivinyweni.
  3. Ngeqembu lonke, wonke umuntu ukhetha isistimu elandelayo ohlwini, ayilungiselele, futhi enze izivivinyo. Ayidluli ukuhlolwa, ayithwali umthwalo - siyayilahla futhi siqhubekele kokulandelayo emgqeni.
  4. Ohlelweni luka-17 kwacaca ukuthi konke kuphelile. Yeka ukunyakazisa ibhodlela, sekuyisikhathi sokucabangisisa.

Kodwa lena inketho lapho udinga ukukhetha isistimu "ezodlula isivinini" ekuhlolweni okulungiselelwe ngaphambilini. Kuthiwani uma zingakabi khona izivivinyo ezinjalo futhi ufuna ukukhetha ngokushesha?

Ake simodelise le nketho (kunzima ukucabanga ukuthi umthuthukisi omaphakathi+ uhlala endaweni engenalutho, futhi ngesikhathi sokukhethwa akakakwenzi kube semthethweni ukukhetha kwakhe ukuthi yimuphi umkhiqizo okufanele awuzame kuqala - ngakho-ke, ukucabanga okwengeziwe kungokwengqondo / ifilosofi/ mayelana nengane encane).

Ngemva kokunquma ngezidingo, ake siqale ukukhetha isixazululo ebhokisini. Kungani sisungula kabusha isondo: sizohamba futhi sithathe isistimu yokulondoloza isikhashana eseyenziwe ngomumo.

Uma usanda kuqala futhi uyi-google, bese unikeza noma uthathe i-oda, kodwa ngokuvamile, imihlahlandlela izoba kanje. Okokuqala, uzohlangana neRedis, izwakala yonke indawo. Khona-ke uzothola ukuthi i-EhCache iyisistimu endala futhi efakazelwe kakhulu. Okulandelayo sizobhala nge-Tarantool, intuthuko yasekhaya enesici esiyingqayizivele sesixazululo. Futhi futhi Ignite, ngoba manje iyanda ekudumeni futhi ijabulela ukusekelwa kwe-SberTech. Ekugcineni kukhona i-Hazelcast, ngoba emhlabeni webhizinisi ivame ukuvela phakathi kwezinkampani ezinkulu.

Uhlu aluphelele; kunezinhlelo eziningi. Futhi sizokonakalisa into eyodwa kuphela. Ake sithathe amasistimu angu-5 akhethiwe “womncintiswano wobuhle” bese sikhetha. Ubani ozophumelela?

Redis

Sifunda abakubhalayo kusizindalwazi esisemthethweni.
Redis - iphrojekthi ye-opensource. Inikeza ukugcinwa kwedatha okusenkumbulweni, ikhono lokulondoloza kudiski, ukwahlukanisa okuzenzakalelayo, ukutholakala okuphezulu kanye nokululama ekuvaleni kwenethiwekhi.

Kubonakala sengathi yonke into ihamba kahle, ungayithatha futhi uyigoqe - yonke into oyidingayo, iyakwenza. Kodwa ukuze sizijabulise, ake sibheke abanye abazongenela ukhetho.

EhCache

EhCache - "inqolobane esetshenziswa kakhulu yeJava" (ukuhunyushwa kwesiqubulo esivela kuwebhusayithi esemthethweni). Futhi i-opensource. Futhi-ke siyaqonda ukuthi i-Redis akuyona eye-java, kodwa ejwayelekile, futhi ukuze uxhumane nayo udinga isisonga. Futhi i-EhCache izoba lula kakhulu. Yini enye ethenjiswa uhlelo? Ukwethembeka, kufakazelwe, ukusebenza okugcwele. Hhayi-ke, futhi yiyona evame kakhulu. Futhi igcina ama-terabytes edatha.

U-Redis ukhohliwe, ngilungele ukukhetha i-EhCache.

Kodwa umuzwa wokushisekela izwe ungiphusha ukuthi ngibone ukuthi yini enhle ngeTarantool.

I-Tarantool

I-Tarantool - ihlangabezana negama elithi "Inkundla yokuhlanganisa idatha yesikhathi sangempela". Kuzwakala kuyinkimbinkimbi kakhulu, ngakho-ke sifunda ikhasi ngokuningiliziwe futhi sithola isitatimende esiphezulu: "Igcina idatha engu-100% ku-RAM." Lokhu kufanele kuphakamise imibuzo - phela, kungaba nedatha eningi kunememori. Incazelo ukuthi kusho ukuthi i-Tarantool ayisebenzisi ukusethwa kwedatha ukuze ibhale idatha kudiski kusuka enkumbulweni. Kunalokho, isebenzisa izici ezisezingeni eliphansi zohlelo, lapho inkumbulo imane ifakwe kumephu ohlelweni lwefayela olunokusebenza okuhle kakhulu kwe-I/O. Ngokuvamile, benza into emangalisayo futhi epholile.

Ake sibheke ukuqaliswa: Mail.ru corporate onguthelawayeka, Avito, Beeline, Megafon, Alfa-Bank, Gazprom...

Uma bekusekhona ukungabaza nge-Tarantool, icala lokuqalisa ku-Mastercard liyangiqeda. Ngithatha iTarantool.

Kodwa noma kunjalo…

Ignite

... ingabe kukhona okunye Ignite, ikhokhiswa “njengenkundla yekhompuyutha yenkumbulo...isivinini senkumbulo kuma-petabytes edatha.” Kukhona futhi izinzuzo eziningi lapha: inqolobane esabalalisiwe yenkumbulo, isitoreji senani lokhiye esheshayo nesilondolozi, ukukala okuvundlile, ukutholakala okuphezulu, ubuqotho obuqinile. Ngokuvamile, kuvela ukuthi esheshayo i-Ignite.

Ukuqaliswa: Sberbank, American Airlines, Yahoo! Japan. Bese ngithola ukuthi i-Ignite ayisebenzi nje e-Sberbank, kodwa ithimba le-SberTech lithumela abantu balo eqenjini le-Ignite ngokwayo ukuze licwengisise umkhiqizo. Lokhu kuhlaba umxhwele ngokuphelele futhi sengilungele ukuthatha i-Ignite.

Akucaci kahle ukuthi kungani, ngibheke iphuzu lesihlanu.

i-hazelcast

Ngiya esizeni i-hazelcast, ukufunda. Futhi kuvela ukuthi isixazululo esisheshayo se-caching esatshalaliswa yi-Hazelcast. Ingama-oda wobukhulu ngokushesha kunazo zonke ezinye izixazululo futhi ngokujwayelekile ingumholi emkhakheni wegridi yedatha yenkumbulo. Ngokumelene nalesi sizinda, ukuthatha enye into ukungazihloniphi. Iphinde isebenzise ukugcinwa kwedatha okungafuneki ekusebenzeni okuqhubekayo kweqoqo ngaphandle kokulahleka kwedatha.

Yilokho kuphela, sengilungele ukuthatha i-Hazelcast.

Ukuqhathanisa

Kodwa uma ubheka, bonke abahlanu abakhethiwe bachazwa ngendlela yokuthi ngamunye wabo ungcono kakhulu. Indlela yokukhetha? Singabona ukuthi iyiphi ethandwa kakhulu, bheka iziqhathaniso, futhi ikhanda lizophela.

Sithola enjengalena ukubuyekeza, khetha amasistimu ethu angu-5.

Ukuthi thina kwaSportmaster sikhethe kanjani i-caching system. Ingxenye 1

Lapha ahlungwa: I-Redis iphezulu, i-Hazelcast isendaweni yesibili, i-Tarantool ne-Ignite ithola ukuthandwa, i-EhCache ibilokhu futhi isalokhu injalo.

Kodwa ake sibheke indlela yokubala: izixhumanisi kumawebhusayithi, intshisekelo evamile ohlelweni, ukunikezwa kwemisebenzi - kuhle! Okungukuthi, lapho uhlelo lwami luhluleka, ngizothi: “Cha, luthembekile! Kunemisebenzi eminingi enikezwayo. ”… Ukuqhathanisa okulula okunjalo ngeke kwenze.

Wonke lawa masistimu awawona nje amasistimu wokulondoloza isikhashana. Futhi banokusebenza okuningi, okuhlanganisa lapho idatha ingapontshwanga kuklayenti ukuze icutshungulwe, kodwa okuphambene nalokho: ikhodi edinga ukukhishwa kudatha ithuthela kuseva, ibulawa lapho, futhi umphumela ubuyiselwa. Futhi awavamisile ukubhekwa njengesistimu ehlukile yokugcinwa kwesikhashana.

Kulungile, masingayeki, asithole ukuqhathanisa okuqondile kwezinhlelo. Ake sithathe izinketho ezimbili eziphezulu - i-Redis ne-Hazelcast. Sinentshisekelo ngesivinini, futhi sizoziqhathanisa ngokusekelwe kule parameter.

Hz vs Redis

Siyakuthola lokhu ukuqhathanisa:
Ukuthi thina kwaSportmaster sikhethe kanjani i-caching system. Ingxenye 1

Okuluhlaza okwesibhakabhaka yi-Redis, okubomvu yi-Hazelcast. I-Hazelcast iwina yonke indawo, futhi kunesizathu salokhu: inezintambo eziningi, yenziwe kahle kakhulu, intambo ngayinye isebenza ngokuhlukanisa kwayo, ngakho-ke akukho ukuvinjelwa. Futhi iRedis inomucu owodwa; ayizuzi kuma-CPU anamuhla anezisekelo eziningi. I-Hazelcast ine-asynchronous I/O, i-Redis-Jedis inamasokhethi okuvimbela. Phela, i-Hazelcast isebenzisa umthetho olandelwayo kanambambili, kanti i-Redis igxile kumbhalo, okusho ukuthi ayisebenzi kahle.

Uma kwenzeka, ake siphendukele komunye umthombo wokuqhathanisa. Yini azosibonisa yona?

I-Redis vs Hz

Okunye ukuqhathanisa:
Ukuthi thina kwaSportmaster sikhethe kanjani i-caching system. Ingxenye 1

Lapha, ngokuphambene nalokho, okubomvu yiRedis. Okusho ukuthi, i-Redis idlula i-Hazelcast ngokusebenza. UHazelcast uwine isiqhathaniso sokuqala, uRedis wawina okwesibili. Lapho ke uchaze ngokunembe kakhulu ukuthi kungani i-Hazelcast iwine isiqhathaniso sangaphambilini.

Kuvele ukuthi umphumela weyokuqala empeleni wawukhohliwe: I-Redis yathathwa ebhokisini lesisekelo, futhi i-Hazelcast yenzelwe icala lokuhlola. Khona-ke kuvela: okokuqala, asikwazi ukuthemba noma ubani, futhi okwesibili, lapho ekugcineni sikhetha uhlelo, sisadinga ukuyilungisa ngendlela efanele. Lezi zilungiselelo zihlanganisa amashumi, cishe amakhulu amapharamitha.

Enyakazisa ibhodlela

Futhi ngingachaza yonke inqubo esesiyenzile manje ngesingathekiso esilandelayo: “Ukunyakazisa ibhodlela.” Okusho ukuthi, manje awudingi ukuhlela, manje into eyinhloko ukwazi ukufunda i-stackoverflow. Futhi nginomuntu ethimbeni lami, uchwepheshe, osebenza kanjena ngezikhathi ezibucayi.

Wenzani? Ubona into ephukile, ubona umkhondo westaki, uthatha amagama athile kuwo (okuyinto eyingcweti yakhe ohlelweni), usesha ku-Google, uthola ukuchichima kwenqwaba phakathi kwezimpendulo. Ngaphandle kokufunda, ngaphandle kokucabanga, phakathi kwezimpendulo zombuzo, ukhetha into efana kakhulu nomusho othi "yenza lokhu nalokhuya" (ukukhetha impendulo enjalo ithalenta lakhe, ngoba akuyona impendulo ethola ukuthandwa kakhulu njalo), kuyasebenza, kubukeka: uma kukhona okushintshile, kuhle. Uma ingakashintshi, ibuyisele emuva. Bese uphinda usesho lokuqalisa. Futhi ngale ndlela enembile, uqinisekisa ukuthi ikhodi isebenza ngemva kwesikhathi esithile. Akazi ukuthi kungani, akazi ukuthi wenzeni, akakwazi ukuchaza. Kodwa! Lokhu kutheleleka kuyasebenza. Futhi “umlilo uyacishwa.” Manje ake sithole ukuthi senzeni. Lapho uhlelo lusebenza, kulula ukuhleleka kobukhulu. Futhi konga isikhathi esiningi.

Le ndlela ichazwe kahle kakhulu ngalesi sibonelo.

Kwake kwaduma kakhulu ukuqoqa isikebhe sikaseyili ebhodleleni. Ngesikhathi esifanayo, isikebhe sikaseyili sikhulu futhi sibuthakathaka, futhi intamo yebhodlela incane kakhulu, akunakwenzeka ukuyicindezela ngaphakathi. Indlela yokuhlanganisa it?

Ukuthi thina kwaSportmaster sikhethe kanjani i-caching system. Ingxenye 1

Kukhona indlela enjalo, esheshayo futhi ephumelelayo kakhulu.

Umkhumbi uqukethe inqwaba yezinto ezincane: izinti, izintambo, oseyili, iglue. Konke lokhu sikufake ebhodleleni.
Sithatha ibhodlela ngezandla zombili bese siqala ukuthuthumela. Siyamdlikiza futhi simnyakazise. Futhi ngokuvamile kuvela ukuthi udoti ophelele, kunjalo. Kodwa ngezinye izikhathi. Kwesinye isikhathi kuvele kube umkhumbi! Ngokunembayo, into efana nomkhumbi.

Sikhombisa lokhu okuthile komunye umuntu: "Seryoga, uyabona!?" Futhi ngempela, ukude kubukeka njengomkhumbi. Kodwa lokhu akukwazi ukuvunyelwa ukuthi kuqhubeke.

Kukhona enye indlela. Zisetshenziswa abafana abathuthuke kakhulu, njengabaduni.

Nganika lo mfana umsebenzi, wenza konke wahamba. Futhi ubukeka - kubukeka sengathi sekwenziwe. Futhi ngemva kwesikhashana, lapho ikhodi idinga ukuqedwa, lokhu kuqala ngenxa yakhe ... Kuhle ukuthi usevele ekwazi ukubalekela kude. Laba bafana abazokwenza lokhu, besebenzisa isibonelo sebhodlela: uyabona, lapho okuphansi, ingilazi igoba. Futhi akucaci ngokuphelele ukuthi kusobala noma cha. Khona-ke "abaduni" banqamula lokhu okuphansi, bafaka umkhumbi lapho, bese bephinde banamathisele phansi phansi, futhi kuba sengathi kufanele kube njalo.

Ngokombono wokusetha inkinga, yonke into ibonakala ilungile. Kodwa usebenzisa imikhumbi njengesibonelo: kungani wenze lo mkhumbi nhlobo, ubani owudingayo noma kunjalo? Ayinikezi noma yikuphi ukusebenza. Ngokuvamile imikhumbi enjalo iyizipho kubantu abaphakeme kakhulu, abayibeka eshalofini ngaphezu kwabo, njengolunye uhlobo lophawu, njengesibonakaliso. Futhi uma umuntu onjalo, inhloko yebhizinisi elikhulu noma isikhulu esiphezulu, ifulege liyomelela kanjani igebe elinjalo, elinqunywe intamo? Kungaba ngcono ukube akakaze azi ngakho. Pho, bagcina benza kanjani le mikhumbi enganikwa umuntu obalulekile?

Ukuphela kwendawo eyinhloko ongeke ukwazi ukwenza lutho ngayo umzimba. Futhi i-hull yomkhumbi ingena ngqo entanyeni. Nakuba umkhumbi uhlanganiswe ngaphandle kwebhodlela. Kodwa akukhona nje ukuhlanganisa umkhumbi, kuwumsebenzi wangempela wobucwebe. Izinsimbi ezikhethekile zengezwa ezingxenyeni, ezivumela ukuthi ziphakanyiswe. Isibonelo, amaseyili ayagoqwa, alethwe ngokucophelela ngaphakathi, bese kuthi, ngosizo lwama-tweezers, adonswe futhi aphakanyiswe ngokunembile, ngokunemba. Umphumela uwumsebenzi wobuciko ongaphiwa unembeza ohlanzekile nokuzigqaja.

Futhi uma sifuna ukuthi iphrojekthi ibe yimpumelelo, kufanele kube khona okungenani oyedwa jeweler eqenjini. Umuntu okhathalela ikhwalithi yomkhiqizo futhi ucabangela zonke izici, ngaphandle kokudela lutho, ngisho nangezikhathi zokucindezeleka, lapho izimo zidinga ukwenza okuphuthumayo ngezindleko ezibalulekile. Yonke imiklamo eyimpumelelo eqhubekayo, emile isikhathi eside, yakhelwe phezu kwalo mgomo. Kukhona okunembe kakhulu futhi okuyingqayizivele ngabo, into esizakala ngawo wonke amathuba atholakalayo. Esibonelweni ngomkhumbi ebhodleleni, iqiniso lokuthi i-hull yomkhumbi idlula entanyeni idlalwa.

Uma sibuyela emsebenzini wokukhetha iseva yethu yokugcina inqolobane, le ndlela ingasetshenziswa kanjani? Nginikeza le nketho yokukhetha kuzo zonke izinhlelo ezikhona - unganyakazi ibhodlela, ungakhethi, kodwa bheka lokho abanakho ngokomgomo, ukuthi yini okufanele uyibheke lapho ukhetha uhlelo.

Lapho ungabheka khona ibhodlela-neck

Ake sizame ukunganyakazi ibhodlela, singadluli kukho konke okukhona ngamunye ngamunye, kodwa ake sibone ukuthi yiziphi izinkinga ezizovela uma ngokuzumayo, ngenxa yomsebenzi wethu, siklama uhlelo olunjalo ngokwethu. Yiqiniso, ngeke sihlanganise ibhayisikili, kodwa sizosebenzisa lo mdwebo ukuze usisize sithole ukuthi yimaphi amaphuzu okufanele sinake ezincazelweni zomkhiqizo. Ake sidwebe umdwebo onjalo.

Ukuthi thina kwaSportmaster sikhethe kanjani i-caching system. Ingxenye 1

Uma uhlelo lusatshalaliswa, sizoba namaseva amaningana (6). Ake sithi kukhona ezine (kulula ukuzibeka esithombeni, kodwa, kunjalo, zingaba eziningi ngendlela othanda ngayo). Uma amaseva esezindaweni ezihlukene, kusho ukuthi wonke asebenzisa ikhodi ethile enesibopho sokuqinisekisa ukuthi lawa ma-node akha iqoqo futhi, uma kwenzeka ikhefu, axhuma futhi abonana.

Sidinga futhi i-code logic (2), empeleni emayelana nokugcinwa kwesikhashana. Amaklayenti asebenzisana nale khodi nge-API ethile. Ikhodi yeklayenti (1) ingaba ngaphakathi kwe-JVM efanayo noma iyifinyelele ngenethiwekhi. Umqondo osetshenziswe ngaphakathi yisinqumo sokuthi yiziphi izinto okufanele zishiywe kunqolobane nokuthi yiziphi okufanele zilahlwe. Sisebenzisa inkumbulo (3) ukugcina inqolobane, kodwa uma kunesidingo, singagcina enye idatha kudiski (4).

Ake sibone ukuthi iziphi izingxenye zomthwalo ozokwenzeka. Empeleni, yonke imicibisholo nawo wonke amanodi azolayishwa. Okokuqala, phakathi kwekhodi yeklayenti kanye ne-api, uma lokhu kungukuxhumana kwenethiwekhi, ukwehla kungase kubonakale kakhulu. Okwesibili, ngaphakathi kohlaka lwe-api ngokwayo - uma sikwenza ngokweqile nge-logic eyinkimbinkimbi, singangena ezinkingeni nge-CPU. Futhi kungaba kuhle uma ingqondo ingachithi isikhathi ngenkumbulo. Futhi kusele ukusebenzisana nesistimu yefayela - enguqulweni evamile lokhu kuhlanganiswa / ukubuyisela nokubhala / ukufunda.

Okulandelayo ukusebenzisana neqoqo. Ngokunokwenzeka, izoba sesistimu efanayo, kodwa ingaba ngokwehlukana. Lapha futhi udinga ukucabangela ukudluliswa kwedatha kuyo, isivinini sokwenziwa kwedatha kanye nokusebenzisana phakathi kweqoqo.

Manje, ngakolunye uhlangothi, singacabanga ukuthi "yimaphi amagiya azophenduka" ohlelweni lwe-cache lapho sicubungula izicelo ezivela kukhodi yethu, futhi ngakolunye uhlangothi, singalinganisa ukuthi yiziphi futhi zingaki izicelo ikhodi yethu ezokhiqiza kulolu hlelo. Lokhu kwanele ukwenza ukukhetha okusangulukisa kakhulu - ukukhetha isistimu esizoyisebenzisa.

i-hazelcast

Ake sibone ukuthi singakusebenzisa kanjani lokhu kubola ohlwini lwethu. Ngokwesibonelo, Hazelcast.

Ukuze ubeke/uthathe idatha ku-Hazelcast, ikhodi yeklayenti ifinyelela (1) i-api. I-Hz ikuvumela ukuthi usebenzise iseva njengoba ishumekiwe, futhi kulokhu, ukufinyelela i-api kuwucingo lwendlela ngaphakathi kwe-JVM, engathathwa njengemahhala.

Ukuze i-logic kokuthi (2) isebenze, i-Hz incike ku-hashi yohlu lwebhayithi yokhiye we-serialized - okungukuthi, ukhiye uzokwenziwa uchungechunge kunoma yikuphi. Lokhu kuyi-overhead engenakugwemeka ku-Hz.
Amasu okukhipha asetshenziswa kahle, kodwa ezimweni ezikhethekile ungakwazi ukwengeza awakho. Awudingi ukukhathazeka ngale ngxenye.

Isitoreji (4) singaxhumeka. Kuhle. Ukusebenzisana (5) kokushumekiwe kungathathwa njengokushesha. Ukushintshana kwedatha phakathi kwamanodi kuqoqo (6) - yebo, kukhona. Lokhu ukutshalwa kwezimali ekubekezeleleni amaphutha ngezindleko zejubane. Isici se-Hz I-Near-cache ikuvumela ukuthi wehlise intengo - idatha etholwe kwamanye ama-node kuqoqo izogcinwa.

Yini engenziwa ezimweni ezinjalo ukwandisa isivinini?

Isibonelo, ukuze ugweme ukwenziwa kwe-serial kokhiye ku-(2) - namathisela enye inqolobane phezu kwe-Hazelcast, ukuze uthole idatha eshisa kakhulu. I-Sportmaster ikhethe i-Caffeine ngale njongo.

Ngokusonta ezingeni (6), i-Hz inikeza izinhlobo ezimbili zokugcina: I-IMap ne-ReplicatedMap.
Ukuthi thina kwaSportmaster sikhethe kanjani i-caching system. Ingxenye 1

Kuhle ukusho ukuthi i-Hazelcast ingene kanjani kusitaki sobuchwepheshe be-Sportmaster.

Ngo-2012, lapho sisebenzela umshayeli wokuqala wesayithi elizayo, kwaba i-Hazelcast eyaba isixhumanisi sokuqala esabuya injini yokusesha. Ukujwayelana kwaqala "okokuqala" - sakhangwa iqiniso lokuthi ngemva kwamahora amabili nje, lapho sifaka i-Hz ohlelweni, yasebenza. Futhi kwasebenza kahle. Ekupheleni kosuku sase siqedile ukuhlolwa okuningi futhi sijabule. Futhi lokhu kugcinwa kwamandla kwakwanele ukunqoba izimanga u-Hz azilahle ngokuhamba kwesikhathi. Manje iqembu le-Sportmaster alinasizathu sokulahla i-Hazelcast.

Kodwa izimpikiswano ezinjengokuthi "isixhumanisi sokuqala enjinini yokusesha" kanye nethi "HelloWorld yahlanganiswa ngokushesha" iyinto ehlukile futhi iyisici sesikhathi lapho ukukhetha kwenzeka. Ukuhlola kwangempela kwesistimu ekhethiwe kuqala ngokukhishelwa ekukhiqizweni, futhi kungalesi sigaba lapho kufanele unake lapho ukhetha noma iyiphi isistimu, okuhlanganisa inqolobane. Empeleni, esimweni sethu singasho ukuthi sakhetha Hazelcast ngengozi, kodwa kwavela ukuthi sikhethe ngendlela efanele.

Ngokukhiqiza, okubaluleke kakhulu: ukuqapha, ukuphatha ukwehluleka kumanodi ngamanye, ukuphindaphinda kwedatha, izindleko zokukala. Okusho ukuthi, kufanelekile ukunaka imisebenzi ezovela ngesikhathi sokugcinwa kwesistimu - lapho umthwalo uphakeme izikhathi eziyishumi kunalokho obekuhleliwe, lapho silayisha ngephutha okuthile endaweni engafanele, lapho sidinga ukukhipha inguqulo entsha. yekhodi, buyisela idatha futhi ukwenze kunganakiwe kumakhasimende.

Kuzo zonke lezi zidingo, i-Hazelcast iyawufanela umthethosivivinywa.

Kuzoqhutshwa

Kodwa i-Hazelcast ayiyona i-panacea. Ngo-2017, sakhetha i-Hazelcast yenqolobane yomqondisi, ngokusekelwe emibonweni emihle evela kokuhlangenwe nakho kwangaphambilini. Lokhu kwadlala indima ebalulekile ehlayeni elinonya kakhulu, ngenxa yokuthi sazithola sisesimweni esinzima futhi “ngobuqhawe” saphuma kuso izinsuku ezingu-60. Kodwa okuningi ngalokho engxenyeni elandelayo.

Okwamanje... Ikhodi Entsha Ejabulisayo!

Source: www.habr.com

Engeza amazwana