Kif aħna fi Sportmaster għażilna sistema ta’ caching. Parti 1

Bongu! Jisimni Alexey Pyankov, jien żviluppatur fil-kumpanija Sportmaster. F'dak post Jien għidt kif beda x-xogħol fuq il-websajt Sportmaster fl-2012, liema inizjattivi rnexxielna “nimbuttaw” u viċi versa, liema rake ġbarna.

Illum irrid naqsam ħsibijiet li jsegwu suġġett ieħor - għażla ta 'sistema ta' caching għall-backend java fiż-żona tal-amministrazzjoni tas-sit. Din il-plott għandha tifsira speċjali għalija – għalkemm l-istorja żvolġiet għal xahrejn biss, matul dawn is-2 jum ħdimna 60-12-il siegħa u mingħajr ġurnata waħda ta’ mistrieħ. Qatt ma kont ħsibt jew immaġinajt li kien possibbli li taħdem daqshekk iebes.

Għalhekk, qassam it-test f'2 partijiet sabiex ma tagħbijahx kompletament. Għall-kuntrarju, l-ewwel parti se tkun ħafifa ħafna - preparazzjoni, introduzzjoni, xi konsiderazzjonijiet dwar x'inhu caching. Jekk diġà int żviluppatur b'esperjenza jew ħdimt bil-caches, min-naħa teknika x'aktarx ma jkun hemm xejn ġdid f'dan l-artikolu. Iżda għal junior, reviżjoni daqshekk żgħira tista 'tgħidlu f'liema direzzjoni għandu jħares jekk isib ruħu f'salib it-toroq bħal dan.

Kif aħna fi Sportmaster għażilna sistema ta’ caching. Parti 1

Meta l-verżjoni l-ġdida tal-websajt Sportmaster ddaħħlet fil-produzzjoni, id-dejta ġiet riċevuta b'mod li kien, biex ngħiduha ħafif, mhux konvenjenti ħafna. Il-bażi kienet tabelli ppreparati għall-verżjoni preċedenti tas-sit (Bitrix), li kellhom jinġibdu f'ETL, miġjuba għal forma ġdida u arrikkit b'diversi affarijiet żgħar minn tużżana aktar sistemi. Sabiex stampa ġdida jew deskrizzjoni tal-prodott tidher fuq is-sit, kellek tistenna sal-għada - aġġornamenti biss bil-lejl, darba kuljum.

Għall-ewwel, kien hemm tant inkwiet mill-ewwel ġimgħat ta 'dħul fil-produzzjoni li inkonvenjenzi bħal dawn għall-maniġers tal-kontenut kienu trifle. Iżda, hekk kif kollox issetilja, l-iżvilupp tal-proġett kompla - ftit xhur wara, fil-bidu tal-2015, bdejna niżviluppaw b'mod attiv il-pannell tal-amministrazzjoni. Fl-2015 u l-2016, kollox sejjer tajjeb, aħna nirrilaxxaw regolarment, il-pannell tal-amministrazzjoni jkopri aktar u aktar mill-preparazzjoni tad-dejta, u qed nippreparaw għall-fatt li dalwaqt it-tim tagħna se jiġi fdat bl-iktar ħaġa importanti u kumplessa - il-prodott ċirkwit (preparazzjoni sħiħa u manutenzjoni tad-dejta fuq il-prodotti kollha). Iżda fis-sajf tal-2017, eżatt qabel it-tnedija taċ-ċirkwit tal-komoditajiet, il-proġett se jsib ruħu f'sitwazzjoni diffiċli ħafna - preċiżament minħabba problemi bil-caching. Irrid nitkellem dwar dan l-episodju fit-tieni parti ta’ din il-pubblikazzjoni f’żewġ partijiet.

Iżda f'din il-kariga se nibda mill-bogħod, se nippreżenta xi ħsibijiet - ideat dwar il-caching, li jkun pass tajjeb biex tiskrollja qabel proġett kbir.

Meta jseħħ kompitu ta' caching

Il-kompitu tal-caching ma jidhirx biss. Aħna żviluppaturi, niktbu prodott ta 'softwer u rridu li jkun fid-domanda. Jekk il-prodott huwa fid-domanda u ta 'suċċess, l-utenti jiġu. U aktar u aktar ġejjin. U mbagħad hemm ħafna utenti u mbagħad il-prodott isir mgħobbi ħafna.

Fl-ewwel stadji, ma naħsbux dwar l-ottimizzazzjoni u l-prestazzjoni tal-kodiċi. Il-ħaġa ewlenija hija l-funzjonalità, it-tnedija ta 'pilota malajr u l-ittestjar tal-ipoteżi. U jekk it-tagħbija tiżdied, nippompjaw il-ħadid. Inżiduha darbtejn jew tliet darbiet, ħames darbiet, forsi 10 darbiet. X'imkien hawn - il-finanzi mhux se jippermettu aktar. Kemm-il darba se jiżdied in-numru ta' utenti? Mhux se jkun bħal 2-5-10, iżda jekk jirnexxi, ikun minn 100-1000 għal 100 elf darba. Jiġifieri, illum jew għada, ser ikollok tagħmel ottimizzazzjoni.

Ejja ngħidu li xi parti tal-kodiċi (ejja nsejħu din il-parti funzjoni) tieħu żmien indecently twil, u rridu nnaqqsu l-ħin ta 'eżekuzzjoni. Funzjoni tista 'tkun aċċess għal database, jew tista' tkun l-eżekuzzjoni ta 'xi loġika kumplessa - il-ħaġa prinċipali hija li tieħu żmien twil biex tesegwixxi. Kemm tista 'tnaqqas il-ħin ta' eżekuzzjoni? Fil-limitu, tista 'tnaqqasha għal żero, mhux aktar. Kif tista 'tnaqqas il-ħin ta' eżekuzzjoni għal żero? Tweġiba: telimina l-eżekuzzjoni għal kollox. Minflok, irritorna r-riżultat immedjatament. Kif tista 'ssir taf ir-riżultat? Tweġiba: jew ikkalkula jew tfittex xi mkien. Huwa jieħu ħafna żmien biex jiġi kkalkulat. U li spy huwa, pereżempju, li tiftakar ir-riżultat li l-funzjoni pproduċiet l-aħħar darba meta msejħa bl-istess parametri.

Jiġifieri, l-implimentazzjoni tal-funzjoni mhix importanti għalina. Huwa biżżejjed li tkun taf biss fuq liema parametri jiddependi r-riżultat. Imbagħad, jekk il-valuri tal-parametri huma rappreżentati fil-forma ta 'oġġett li jista' jintuża bħala ċavetta f'xi ħażna, allura r-riżultat tal-kalkolu jista 'jiġi ssejvjat u jinqara l-ħin li jmiss li jiġi aċċessat. Jekk din il-kitba u l-qari tar-riżultat hija aktar mgħaġġla mill-eżekuzzjoni tal-funzjoni, għandna profitt f'termini ta 'veloċità. L-ammont ta 'profitt jista' jilħaq 100, 1000, u 100 elf darba (10 ^ 5 hija pjuttost eċċezzjoni, iżda fil-każ ta 'bażi ​​pjuttost lura, huwa pjuttost possibbli).

Rekwiżiti bażiċi għal sistema ta' caching

L-ewwel ħaġa li tista' ssir rekwiżit għal sistema ta' caching hija veloċità mgħaġġla tal-qari u, sa ċertu punt, veloċità tal-kitba. Dan huwa minnu, iżda biss sakemm inħaddmu s-sistema għall-produzzjoni.

Ejja nilagħbu dan il-każ.

Ejja ngħidu li pprovdejna t-tagħbija kurrenti bil-ħardwer u issa qed nintroduċu gradwalment il-caching. In-numru ta 'utenti jikber ftit, it-tagħbija tikber - inżidu ftit caches, kaminha hawn u hemm. Dan ikompli għal xi żmien, u issa funzjonijiet tqal prattikament ma jissejħux aktar - it-tagħbija prinċipali kollha taqa 'fuq il-cache. In-numru ta 'utenti matul dan iż-żmien żdied N darbiet.

U jekk il-provvista inizjali ta 'hardware tista' tkun 2-5 darbiet, allura bl-għajnuna tal-cache nistgħu ntejbu l-prestazzjoni b'fattur ta '10 jew, f'każ tajjeb, b'fattur ta' 100, f'xi postijiet forsi b'fattur ta '1000. Jiġifieri, fuq l-istess hardware - nipproċessaw 100 darba aktar talbiet. Kbir, ħaqqek il-gingerbread!

Imma issa, f'mument tajjeb wieħed, b'kumbinazzjoni, is-sistema ġġarraf u l-cache waqgħet. Xejn speċjali - wara kollox, il-cache intgħażlet abbażi tar-rekwiżit "veloċità għolja ta 'qari u kitba, il-bqija ma jimpurtax."

Relattivament għat-tagħbija tal-bidu, ir-riżerva tal-ħadid tagħna kienet 2-5 darbiet, u t-tagħbija matul dan iż-żmien żdiedet 10-100 darba. Bl-użu tal-cache, eliminajna sejħiet għal funzjonijiet tqal u għalhekk kollox ħadem. U issa, mingħajr cache, kemm-il darba se jonqos is-sistema tagħna? X’se jiġrilna? Is-sistema se taqa '.

Anke jekk il-cache tagħna ma ġġarrafx, iżda tneħħa biss għal ftit żmien, ikun jeħtieġ li jissaħħan, u dan jieħu xi żmien. U matul dan iż-żmien, il-piż ewlieni se jaqa 'fuq il-funzjonalità.

Konklużjoni: proġetti ta 'produzzjoni mgħobbija ħafna jeħtieġu sistema ta' caching mhux biss biex ikollha veloċitajiet għolja ta 'qari u kitba, iżda wkoll biex tiżgura s-sikurezza tad-dejta u r-reżistenza għall-fallimenti.

L-agunija tal-għażla

Fi proġett b'pannell tal-amministrazzjoni, l-għażla marret hekk: l-ewwel installajna Hazelcast, għaliex Aħna diġà konna familjari ma 'dan il-prodott mill-esperjenza tas-sit prinċipali. Iżda hawnhekk din l-għażla rriżulta li ma rnexxietx - taħt il-profil tat-tagħbija tagħna, Hazelcast mhux biss bil-mod, iżda bil-mod terriblement. U dak iż-żmien konna diġà rreġistrajna għad-data tal-ħruġ.

Spoiler: kif żviluppaw eżatt iċ-ċirkostanzi li tlifna daqshekk kbir u spiċċajna b’sitwazzjoni akuta u ta’ tensjoni – ngħidilkom fit-tieni parti – u kif spiċċajna u kif ħriġna. Imma issa - se ngħid biss li kien ħafna stress, u "biex taħseb - b'xi mod ma nistax naħseb, qed inħawwdu l-flixkun." "Tħawwad il-flixkun" hija wkoll spoiler, aktar dwar dan aktar tard.

Dak li għamilna:

  1. Nagħmlu lista tas-sistemi kollha li jissuġġerixxu Google u StackOverflow. Ftit aktar minn 30
  2. Aħna niktbu testijiet b'tagħbija tipika għall-produzzjoni. Biex tagħmel dan, irreġistrajna data li tgħaddi mis-sistema f'ambjent ta 'produzzjoni - tip ta' sniffer għal data mhux fuq in-netwerk, iżda ġewwa s-sistema. Eżattament din id-dejta ntużat fit-testijiet.
  3. Mat-tim kollu, kulħadd jagħżel is-sistema li jmiss mil-lista, jikkonfiguraha, u jwettaq it-testijiet. Ma jgħaddix mit-test, ma jġorrx it-tagħbija - narmiha u ngħaddu għal dik li jmiss fil-linja.
  4. Fis-17-il sistema deher ċar li kollox kien bla tama. Tieqaf tħawwad il-flixkun, wasal iż-żmien li taħseb bis-serjetà.

Iżda din hija għażla meta jkollok bżonn tagħżel sistema li "tgħaddi mill-veloċità" f'testijiet ippreparati minn qabel. X'jiġri jekk għad m'hemmx testijiet bħal dawn u trid tagħżel malajr?

Ejja nimmudellaw din l-għażla (huwa diffiċli li wieħed jimmaġina li żviluppatur medju+ jgħix fil-vakwu, u fil-ħin tal-għażla għadu ma fformalizzax il-preferenza tiegħu dwar liema prodott għandu jipprova l-ewwel - għalhekk, aktar raġunament huwa aktar ta 'teorist/filosofija/ dwar junior).

Wara li ddeċidiet dwar ir-rekwiżiti, ejja nibdew nagħżlu soluzzjoni barra mill-kaxxa. Għaliex nivvintaw mill-ġdid ir-rota: immorru nieħdu sistema ta' caching lesta.

Jekk għadek qed tibda u google, imbagħad agħti jew ħu l-ordni, iżda b'mod ġenerali, il-linji gwida se jkunu bħal dan. L-ewwelnett, int se tiltaqa 'ma' Redis, tinstema kullimkien. Imbagħad issib li EhCache hija l-eqdem u l-aktar sistema ppruvata. Sussegwentement se niktbu dwar Tarantool, żvilupp domestiku li għandu aspett uniku tas-soluzzjoni. U wkoll Ignite, għaliex issa qed tiżdied fil-popolarità u tgawdi l-appoġġ ta 'SberTech. Fl-aħħar hemm ukoll Hazelcast, għax fid-dinja tal-intrapriżi ħafna drabi tidher fost kumpaniji kbar.

Il-lista mhix eżawrjenti; hemm għexieren ta 'sistemi. U aħna se kamin ħaġa waħda biss. Ejja nieħdu l-5 sistemi magħżula għall-"konkors tas-sbuħija" u nagħmlu għażla. Min se jkun ir-rebbieħ?

Ddistribwit mill-

Naqraw dak li jiktbu fuq il-websajt uffiċjali.
Ddistribwit mill- - proġett opensource. Joffri ħażna tad-dejta fil-memorja, il-ħila li tiffranka fuq id-diska, diviżorju awtomatiku, disponibbiltà għolja u rkupru minn qtugħ tan-netwerk.

Jidher li kollox huwa tajjeb, tista 'teħodha u kamin - dak kollu li għandek bżonn, jagħmel. Imma biss għall-gost, ejja nħarsu lejn il-kandidati l-oħra.

EhCache

EhCache - "il-cache l-aktar użata għal Java" (traduzzjoni tas-slogan mill-websajt uffiċjali). Ukoll opensource. U mbagħad nifhmu li Redis mhix għal java, iżda ġenerali, u biex jinteraġixxu magħha għandek bżonn tgeżwir. U EhCache se jkun aktar konvenjenti. X'iktar twiegħed is-sistema? Affidabilità, ppruvata, funzjonalità sħiħa. Ukoll, huwa wkoll l-aktar komuni. U caches terabytes ta 'data.

Redis hija minsija, jien lest li nagħżel EhCache.

Imma sens ta’ patrijottiżmu jimbuttani biex nara x’inhu tajjeb dwar Tarantool.

Tarantool

Tarantool - tissodisfa d-denominazzjoni "Pjattaforma ta' integrazzjoni tad-dejta f'ħin reali". Jidher ikkumplikat ħafna, għalhekk naqraw il-paġna fid-dettall u nsibu dikjarazzjoni qawwija: "Caches 100% tad-dejta fir-RAM." Dan għandu jqajjem mistoqsijiet - wara kollox, jista 'jkun hemm ħafna aktar data milli memorja. L-ispjegazzjoni hija li tfisser li Tarantool ma jmexxix serialization biex jikteb data fuq disk mill-memorja. Minflok, juża karatteristiċi ta 'livell baxx tas-sistema, meta l-memorja hija sempliċement immappjata għal sistema ta' fajls b'prestazzjoni I/O tajba ħafna. B'mod ġenerali, għamlu xi ħaġa mill-isbaħ u friska.

Ejja nħarsu lejn l-implimentazzjonijiet: awtostrada korporattiva Mail.ru, Avito, Beeline, Megafon, Alfa-Bank, Gazprom...

Jekk kien għad hemm xi dubji dwar Tarantool, allura l-każ ta 'implimentazzjoni f'Mastercard itemmni. Nieħu Tarantool.

Imma xorta waħda...

Iqabbad

… hemm xi ftit aktar Iqabbad, hija ċċarġjata bħala "pjattaforma tal-kompjuters fil-memorja... veloċitajiet fil-memorja fuq petabytes ta' dejta." Hemm ukoll ħafna vantaġġi hawnhekk: cache imqassam fil-memorja, il-ħażna u l-cache tal-valur ewlieni mgħaġġla, skalar orizzontali, disponibbiltà għolja, integrità stretta. B'mod ġenerali, jirriżulta li l-aktar mgħaġġel huwa Ignite.

Implimentazzjonijiet: Sberbank, American Airlines, Yahoo! Ġappun. U mbagħad insib li Ignite mhux implimentat biss fi Sberbank, iżda t-tim SberTech jibgħat in-nies tiegħu lit-tim Ignite innifsu biex jirfina l-prodott. Dan huwa kompletament captivating u jien lest nieħu Ignite.

Huwa kompletament mhux ċar għaliex, qed inħares lejn il-ħames punt.

hazelcast

Immur fis-sit hazelcast, qari. U jirriżulta li l-aktar soluzzjoni mgħaġġla għal caching distribwit hija Hazelcast. Huwa ordnijiet ta 'kobor aktar mgħaġġla mis-soluzzjonijiet l-oħra kollha u b'mod ġenerali huwa mexxej fil-qasam tal-grilja tad-dejta fil-memorja. F'dan l-isfond, li tieħu xi ħaġa oħra mhux li tirrispetta lilek innifsek. Juża wkoll ħażna ta 'dejta żejda għal tħaddim kontinwu tal-cluster mingħajr telf ta' dejta.

Dak hu, lest nieħu Hazelcast.

Tqabbil

Imma jekk tħares, il-ħames kandidati kollha huma deskritti b'tali mod li kull wieħed minnhom huwa l-aħjar. Kif tagħżel? Nistgħu naraw liema waħda hija l-aktar popolari, tfittex paraguni, u l-uġigħ ta 'ras se jmur.

Insibu wieħed bħal dan ħarsa ġenerali, agħżel il-5 sistemi tagħna.

Kif aħna fi Sportmaster għażilna sistema ta’ caching. Parti 1

Hawnhekk huma magħżula: Redis fil-quċċata, Hazelcast fit-tieni post, Tarantool u Ignite qed jiksbu popolarità, EhCache kien u jibqa 'l-istess.

Imma ejja nħarsu lejn metodu ta' kalkolu: links għal websajts, interess ġenerali fis-sistema, offerti ta' xogħol - kbir! Jiġifieri, meta s-sistema tiegħi tfalli, jien ngħid: “Le, huwa affidabbli! Hemm ħafna offerti ta’ xogħol...” Paragun sempliċi bħal dan mhux se jagħmel.

Dawn is-sistemi kollha mhumiex biss sistemi ta' caching. Għandhom ukoll ħafna funzjonalità, inkluż meta d-data ma tiġix ippumpjata lejn il-klijent għall-ipproċessar, iżda viċi versa: il-kodiċi li jeħtieġ li jiġi esegwit fuq id-data jiċċaqlaq lejn is-server, jiġi eżegwit hemmhekk, u r-riżultat jintbagħat lura. U mhux daqshekk spiss jitqiesu bħala sistema separata għall-caching.

Tajjeb, ejja ma naqtgħux qalbhom, ejja nsibu paragun dirett tas-sistemi. Ejja nieħdu l-aqwa żewġ għażliet - Redis u Hazelcast. Aħna interessati fil-veloċità, u aħna se nqabbluhom ibbażati fuq dan il-parametru.

Hz vs Redis

Dan insibu paragun:
Kif aħna fi Sportmaster għażilna sistema ta’ caching. Parti 1

Blu huwa Redis, aħmar huwa Hazelcast. Hazelcast jirbaħ kullimkien, u hemm raġuni għal dan: huwa multi-threaded, ottimizzat ħafna, kull ħajt jaħdem bil-partizzjoni tiegħu stess, għalhekk m'hemm l-ebda imblukkar. U Redis huwa single-threaded; ma jibbenefikax minn CPUs multi-core moderni. Hazelcast għandu I/O asinkroniku, Redis-Jedis għandu sokits li jimblokka. Wara kollox, Hazelcast juża protokoll binarju, u Redis huwa ċċentrat fuq it-test, li jfisser li huwa ineffiċjenti.

Fil-każ, ejja nduru għal sors ieħor ta 'paragun. X’se jurina?

Redis vs Hz

Ieħor paragun:
Kif aħna fi Sportmaster għażilna sistema ta’ caching. Parti 1

Hawnhekk, għall-kuntrarju, aħmar huwa Redis. Jiġifieri, Redis tegħleb lil Hazelcast f'termini ta 'prestazzjoni. Hazelcast rebaħ l-ewwel paragun, Redis rebaħ it-tieni. Hawnhekk spjega b’mod preċiż ħafna għaliex Hazelcast rebaħ il-paragun preċedenti.

Jirriżulta li r-riżultat tal-ewwel wieħed fil-fatt kien armat: Redis ittieħdet fil-kaxxa bażi, u Hazelcast kien imfassal għal każ tat-test. Imbagħad jirriżulta: l-ewwelnett, ma nistgħu nafdaw lil ħadd, u t-tieni, meta fl-aħħar nagħżlu sistema, għad għandna bżonn nikkonfigurawha b'mod korrett. Dawn is-settings jinkludu għexieren, kważi mijiet ta 'parametri.

Tħawwad il-flixkun

U nista’ nispjega l-proċess kollu li issa għamilna bil-metafora li ġejja: “Tħawwad il-flixkun.” Jiġifieri, issa m'għandekx għalfejn tipprogramma, issa l-ħaġa prinċipali hija li tkun tista 'taqra stackoverflow. U għandi persuna fit-tim tiegħi, professjonali, li taħdem eżattament hekk f’mumenti kritiċi.

X'inhu jagħmel? Huwa jara ħaġa miksura, jara traċċa munzell, jieħu xi kliem minnha (liema huma l-kompetenza tiegħu fil-programm), ifittex fuq Google, isib stackoverflow fost it-tweġibiet. Mingħajr ma jaqra, mingħajr ma jaħseb, fost it-tweġibiet għall-mistoqsija, jagħżel xi ħaġa l-aktar simili għas-sentenza "agħmel dan u dak" (l-għażla ta 'tali tweġiba hija t-talent tiegħu, għaliex mhux dejjem it-tweġiba li rċieva l-aktar jħobb), japplika , jistenna: jekk xi ħaġa inbidlet, allura kbir. Jekk ma nbidlitx, irromblaha lura. U rrepeti tnedija-verifika-tfittxija. U b'dan il-mod intuwittiv, huwa jiżgura li l-kodiċi jaħdem wara xi żmien. Ma jafx għalfejn, ma jafx x’għamel, ma jistax jispjega. Imma! Din l-infezzjoni taħdem. U “in-nar jintefa.” Issa ejja nsemmu dak li għamilna. Meta l-programm jaħdem, huwa ordni ta 'kobor aktar faċli. U jiffranka ħafna ħin.

Dan il-metodu huwa spjegat tajjeb ħafna b'dan l-eżempju.

Darba kienet popolari ħafna li tiġbor dgħajsa tal-qlugħ fi flixkun. Fl-istess ħin, id-dgħajsa tal-qlugħ hija kbira u fraġli, u l-għonq tal-flixkun huwa dejjaq ħafna, huwa impossibbli li timbottaha ġewwa. Kif tiġborha?

Kif aħna fi Sportmaster għażilna sistema ta’ caching. Parti 1

Hemm metodu bħal dan, veloċi ħafna u effettiv ħafna.

Il-vapur jikkonsisti minn mazz ta 'affarijiet żgħar: bsaten, ħbula, qlugħ, kolla. Dan kollu npoġġu fi flixkun.
Nieħdu l-flixkun biż-żewġ idejn u nibdew ħawwad. Aħna ħawwad u ħawwad tagħha. U normalment jirriżulta li jkun żibel komplut, ovvjament. Imma kultant. Kultant jirriżulta li jkun vapur! B'mod aktar preċiż, xi ħaġa simili għal vapur.

Aħna nuru din xi ħaġa lil xi ħadd: "Seryoga, tara!?" U tabilħaqq, mill-bogħod qisu vapur. Iżda dan ma jistax jitħalla jkompli.

Hemm mod ieħor. Jintużaw minn guys aktar avvanzati, bħal hackers.

Tajt lil dan it-tip kompitu, għamel kollox u telaq. U tħares - qisu lest. U wara ftit, meta l-kodiċi jeħtieġ li jiġi ffinalizzat, dan jibda minħabba lilu... Tajjeb li diġà rnexxielu jaħrab 'il bogħod. Dawn huma l-ġuvini li, billi jużaw l-eżempju ta 'flixkun, se jagħmlu dan: tara, fejn il-qiegħ, il-ħġieġ jitgħawweġ. U mhux ċar għal kollox jekk huwiex trasparenti jew le. Imbagħad il-"hackers" jaqtgħu dan il-qiegħ, daħħal vapur hemm, imbagħad erġa' waħħal il-qiegħ lura, u bħallikieku hekk suppost.

Mil-lat tal-issettjar tal-problema, kollox jidher li huwa korrett. Imma bl-użu tal-vapuri bħala eżempju: għaliex tagħmel dan il-vapur għal kollox, min għandu bżonnu xorta waħda? Ma jipprovdi l-ebda funzjonalità. Normalment vapuri bħal dawn huma rigali lil nies ta 'grad għoli ħafna, li jpoġġuha fuq xkaffa fuqhom, bħala xi tip ta' simbolu, bħala sinjal. U jekk persuna bħal din, il-kap ta 'negozju kbir jew uffiċjal ta' grad għoli, kif se toqgħod il-bandiera għal tali hack, li l-għonq tiegħu ġie maqtugħ? Ikun aħjar kieku qatt ma kien jaf biha. Allura, kif jispiċċaw jagħmlu dawn il-vapuri li jistgħu jingħataw lil persuna importanti?

L-uniku post ewlieni li verament ma tistax tagħmel xejn dwaru huwa l-ġisem. U l-buq tal-vapur jidħol dritt fl-għonq. Billi l-vapur huwa mmuntat barra l-flixkun. Imma mhux biss immuntar vapur, huwa inġenju ta 'ġojjellerija reali. Lievi speċjali huma miżjuda mal-komponenti, li mbagħad jippermettulhom li jitneħħew. Per eżempju, il-qlugħ huma mitwija, miġjuba b'attenzjoni ġewwa, u mbagħad, bl-għajnuna ta 'pinzetti, jinġibdu u mqajma b'mod preċiż ħafna, bi preċiżjoni. Ir-riżultat huwa xogħol tal-arti li jista’ jingħata b’kuxjenza ċara u kburija.

U jekk irridu li l-proġett ikun ta’ suċċess, irid ikun hemm mill-inqas ġojjellier wieħed fit-tim. Xi ħadd li jimpurtah mill-kwalità tal-prodott u jqis l-aspetti kollha, mingħajr ma jissagrifikaw xejn, anke f'mumenti ta 'stress, meta ċ-ċirkostanzi jeħtieġu li tagħmel l-urġenti għad-detriment tal-importanti. Il-proġetti kollha ta’ suċċess li huma sostenibbli, li għaddew it-test taż-żmien, huma mibnija fuq dan il-prinċipju. Hemm xi ħaġa preċiża ħafna u unika dwarhom, xi ħaġa li tieħu vantaġġ mill-possibbiltajiet kollha disponibbli. Fl-eżempju bil-vapur fil-flixkun, jindaqq il-fatt li l-buq tal-vapur jgħaddi mill-għonq.

Nirritornaw għall-kompitu li nagħżlu s-server tal-caching tagħna, kif jista 'jiġi applikat dan il-metodu? Noffri din l-għażla li nagħżel mis-sistemi kollha li jeżistu - tħawwadx il-flixkun, ma tagħżelx, imma tħares lejn dak li għandhom fil-prinċipju, x'għandek tfittex meta tagħżel sistema.

Fejn tfittex flixkun-għonq

Ejja nippruvaw ma nħawwdux il-flixkun, ma ngħaddux minn dak kollu li hemm wieħed wieħed, imma ejja naraw x'problemi jinqalgħu jekk f'daqqa waħda, għall-kompitu tagħna, niddisinjaw sistema bħal din aħna stess. Naturalment, mhux se niġbru r-rota, iżda se nużaw din id-dijagramma biex tgħinna nifhmu liema punti għandna nagħtu attenzjoni fid-deskrizzjonijiet tal-prodott. Ejja nfasslu dijagramma bħal din.

Kif aħna fi Sportmaster għażilna sistema ta’ caching. Parti 1

Jekk is-sistema titqassam, allura jkollna diversi servers (6). Ejja ngħidu li hemm erbgħa (huwa konvenjenti li tpoġġihom fl-istampa, iżda, ovvjament, jista 'jkun hemm kemm trid). Jekk is-servers huma fuq nodi differenti, dan ifisser li kollha jmexxu xi kodiċi li huwa responsabbli biex jiżgura li dawn in-nodi jiffurmaw cluster u, f'każ ta 'waqfa, jgħaqqdu u jagħrfu lil xulxin.

Għandna bżonn ukoll il-loġika tal-kodiċi (2), li fil-fatt hija dwar il-caching. Il-klijenti jinteraġixxu ma' dan il-kodiċi permezz ta' xi API. Il-kodiċi tal-klijent (1) jista' jkun jew fl-istess JVM jew jaċċessah permezz tan-netwerk. Il-loġika implimentata ġewwa hija d-deċiżjoni ta 'liema oġġetti tħalli fil-cache u liema tarmi. Aħna nużaw il-memorja (3) biex naħżnu l-cache, iżda jekk meħtieġ, nistgħu niffrankaw ftit mid-dejta fuq id-diska (4).

Ejja naraw f'liema partijiet se sseħħ it-tagħbija. Fil-fatt, kull vleġġa u kull node se jiġu mgħobbija. L-ewwelnett, bejn il-kodiċi tal-klijent u l-api, jekk din hija komunikazzjoni tan-netwerk, is-sussidju jista 'jkun pjuttost notevoli. It-tieni nett, fi ħdan il-qafas tal-api nnifisha - jekk nagħmlu żżejjed b'loġika kumplessa, nistgħu nilqgħu problemi bis-CPU. U jkun sabiħ li kieku l-loġika ma taħlix il-ħin fuq il-memorja. U jibqa 'interazzjoni mas-sistema tal-fajls - fil-verżjoni tas-soltu din hija serialize / tirrestawra u tikteb / aqra.

Li jmiss hija l-interazzjoni mal-cluster. Ħafna probabbli, se jkun fl-istess sistema, iżda jista 'jkun separatament. Hawnhekk għandek bżonn ukoll tieħu kont tat-trasferiment tad-data lilha, il-veloċità tas-serialization tad-data u l-interazzjonijiet bejn il-cluster.

Issa, min-naħa waħda, nistgħu nimmaġinaw "x'inhuma l-gerijiet" fis-sistema tal-cache meta nipproċessaw it-talbiet mill-kodiċi tagħna, u min-naħa l-oħra, nistgħu nistmaw liema u kemm se tiġġenera talbiet il-kodiċi tagħna għal din is-sistema. Dan huwa biżżejjed biex tagħmel għażla bejn wieħed u ieħor sobri - li tagħżel sistema għall-każ tal-użu tagħna.

hazelcast

Ejja naraw kif tapplika din id-dekompożizzjoni għal-lista tagħna. Per eżempju, Hazelcast.

Sabiex tpoġġi/tieħu dejta minn Hazelcast, il-kodiċi tal-klijent jaċċessa (1) l-api. Hz jippermettilek li tmexxi s-server bħala inkorporat, u f'dan il-każ, l-aċċess għall-api huwa sejħa ta 'metodu ġewwa l-JVM, li tista' titqies b'xejn.

Sabiex il-loġika f'(2) taħdem, Hz tiddependi fuq il-hash tal-firxa tal-byte taċ-ċavetta serializzata - jiġifieri, iċ-ċavetta tkun serializzata fi kwalunkwe każ. Dan huwa overhead inevitabbli għal Hz.
L-istrateġiji ta 'żgumbrament huma implimentati tajjeb, iżda għal każijiet speċjali tista' żżid tiegħek. M'għandekx għalfejn tinkwieta dwar din il-parti.

Il-ħażna (4) tista 'tiġi konnessa. Kbir. L-interazzjoni (5) għall-inkorporat tista 'titqies instantanja. Skambju tad-dejta bejn in-nodi fil-cluster (6) - iva, jeżisti. Dan huwa investiment fit-tolleranza tal-ħsarat għad-detriment tal-veloċità. Il-karatteristika Hz Near-cache tippermettilek tnaqqas il-prezz - id-dejta riċevuta minn nodi oħra fil-cluster se tkun fil-cache.

X'jista' jsir f'kundizzjonijiet bħal dawn biex tiżdied il-veloċità?

Pereżempju, biex tevita s-serjelizzazzjoni taċ-ċavetta f'(2) - ehmeż cache ieħor fuq Hazelcast, għad-dejta l-aktar sħuna. Sportmaster għażel il-Caffeine għal dan il-għan.

Għall-brim fil-livell (6), Hz joffri żewġ tipi ta 'ħażna: IMap u ReplicatedMap.
Kif aħna fi Sportmaster għażilna sistema ta’ caching. Parti 1

Ta’ min isemmi kif Hazelcast daħal fil-munzell tat-teknoloġija Sportmaster.

Fl-2012, meta konna naħdmu fuq l-ewwel pilota tas-sit futur, kien Hazelcast li rriżulta li kien l-ewwel link li rritornat il-magna tat-tiftix. Il-konoxxenza bdiet "l-ewwel darba" - konna maħsuda mill-fatt li sagħtejn biss wara, meta kamin Hz fis-sistema, ħadmet. U ħadem tajjeb. Sal-aħħar tal-ġurnata konna lestejna numru ta’ testijiet u konna kuntenti. U din ir-riżerva ta’ ħeġġa kienet biżżejjed biex tegħleb is-sorpriżi li Hz tefa’ maż-żmien. Issa t-tim ta’ Sportmaster m’għandux raġuni biex jabbanduna lil Hazelcast.

Iżda argumenti bħal "l-ewwel link fil-magna tat-tiftix" u "HelloWorld ġie mmuntat malajr" huma, ovvjament, eċċezzjoni u karatteristika tal-mument li fih seħħet l-għażla. It-testijiet reali għas-sistema magħżula jibdew bir-rilaxx fil-produzzjoni, u huwa f'dan l-istadju li għandek tagħti attenzjoni meta tagħżel kwalunkwe sistema, inkluż il-cache. Fil-fatt, fil-każ tagħna nistgħu ngħidu li għażilna Hazelcast b'mod aċċidentali, iżda mbagħad irriżulta li għażilna b'mod korrett.

Għall-produzzjoni, ħafna aktar importanti: monitoraġġ, immaniġġjar ta 'fallimenti fuq nodi individwali, replikazzjoni tad-dejta, spiża ta' skalar. Jiġifieri, ta 'min joqgħod attent għall-kompiti li se jinqalgħu preċiżament waqt il-manutenzjoni tas-sistema - meta t-tagħbija tkun għexieren ta' darbiet ogħla minn dak ippjanat, meta aċċidentalment intellgħu xi ħaġa fil-post ħażin, meta jkollna bżonn infetħu verżjoni ġdida ta ' il-kodiċi, ibdel id-data u tagħmel dan inosservat għall-klijenti.

Għal dawn ir-rekwiżiti kollha, Hazelcast ċertament taqbel mal-kont.

Ser jitkompla aktar il-quddiem

Imma Hazelcast mhix rimedju. Fl-2017, għażilna Hazelcast għall-cache tal-amministrazzjoni, sempliċement ibbażati fuq impressjonijiet tajbin mill-esperjenza tal-passat. Dan kellu rwol ewlieni f'ċajta krudili ħafna, li minħabba fiha sibna ruħna f'sitwazzjoni diffiċli u "erojikament" ħriġna minnha għal 60 jum. Iżda aktar dwar dan fil-parti li jmiss.

Sadanittant... Happy New Code!

Sors: www.habr.com

Żid kumment