Yuav ua li cas peb ntawm Sportmaster xaiv lub kaw lus caching. Ntu 1

Nyob zoo! Kuv lub npe yog Alexey Pyankov, Kuv yog tus tsim tawm ntawm lub tuam txhab Sportmaster. Hauv qhov ntawd ncej Kuv tau hais tias kev ua haujlwm ntawm Sportmaster lub vev xaib tau pib li cas hauv 2012, dab tsi pib peb tau tswj kom "them dhau" thiab rov qab, dab tsi rake peb sau.

Hnub no kuv xav qhia cov kev xav uas ua raws lwm lub ntsiab lus - xaiv lub kaw lus caching rau java backend hauv qhov chaw tswj hwm vaj huam sib luag. Zaj dab neeg no muaj lub ntsiab lus tshwj xeeb rau kuv - txawm hais tias zaj dab neeg nthuav tawm tsuas yog 2 lub hlis, lub sijhawm 60 hnub no peb ua haujlwm 12-16 teev thiab tsis muaj ib hnub so. Kuv yeej tsis tau xav lossis xav txog tias nws muaj peev xwm ua haujlwm hnyav heev.

Yog li ntawd, kuv faib cov ntawv ua 2 ntu kom tsis txhob thauj khoom tag. Ntawm qhov tsis sib xws, thawj feem yuav yog lub teeb heev - kev npaj, kev taw qhia, qee qhov kev xav txog dab tsi caching yog. Yog tias koj twb yog tus tsim tawm kev paub dhau los lossis tau ua haujlwm nrog caches, los ntawm cov kws tshaj lij feem ntau yuav tsis muaj dab tsi tshiab hauv tsab xov xwm no. Tab sis rau cov menyuam yaus, qhov kev tshuaj xyuas me me no tuaj yeem qhia nws txoj kev coj mus saib yog tias nws pom nws tus kheej ntawm txoj kev sib tshuam.

Yuav ua li cas peb ntawm Sportmaster xaiv lub kaw lus caching. Ntu 1

Thaum tus tshiab version ntawm Sportmaster lub vev xaib raug muab tso rau hauv kev tsim khoom, cov ntaub ntawv tau txais nyob rau hauv ib txoj kev uas yog, muab nws me me, tsis yooj yim heev. Lub hauv paus yog cov ntxhuav npaj rau yav dhau los version ntawm qhov chaw (Bitrix), uas yuav tsum tau rub mus rau hauv ETL, coj mus rau ib daim ntawv tshiab thiab ntxiv rau ntau yam me me los ntawm ntau lub tshuab. Txhawm rau kom cov duab tshiab lossis cov lus piav qhia ntawm cov khoom yuav tshwm sim hauv qhov chaw, koj yuav tsum tau tos txog hnub tom qab - hloov kho tsuas yog hmo ntuj, ib hnub ib zaug.

Thaum xub thawj, muaj ntau qhov kev txhawj xeeb los ntawm thawj lub lim tiam ntawm kev mus rau hauv kev tsim khoom uas qhov tsis yooj yim rau cov neeg saib xyuas cov ntsiab lus yog qhov tsis yooj yim. Tab sis, sai li sai tau txhua yam teeb tsa, kev txhim kho ntawm qhov project txuas ntxiv - ob peb lub hlis tom qab, thaum pib ntawm 2015, peb tau pib ua kom muaj kev tsim kho vaj huam sib luag. Nyob rau hauv 2015 thiab 2016, txhua yam mus zoo, peb tso tawm tsis tu ncua, lub vaj huam sib luag admin npog ntau thiab ntau ntawm cov ntaub ntawv npaj, thiab peb tab tom npaj rau lub fact tias tsis ntev peb pab neeg yuav tau entrusted rau qhov tseem ceeb tshaj plaws thiab complex khoom - cov khoom. Circuit Court (tag nrho kev npaj thiab tu cov ntaub ntawv ntawm tag nrho cov khoom). Tab sis nyob rau lub caij ntuj sov xyoo 2017, tsuas yog ua ntej lub community launch ntawm cov khoom siv hluav taws xob, qhov project yuav pom nws tus kheej nyob rau hauv qhov teeb meem nyuaj heev - yog vim muaj teeb meem nrog caching. Kuv xav tham txog qhov ntu thib ob ntawm qhov kev tshaj tawm ob ntu no.

Tab sis nyob rau hauv no ncej kuv yuav pib los ntawm deb, kuv yuav nthuav qhia ib co kev xav - tswv yim txog caching, uas yuav yog ib tug zoo kauj ruam mus scroll los ntawm ua ntej ib tug loj project.

Thaum ua haujlwm caching tshwm sim

Txoj haujlwm caching tsis yog tshwm sim xwb. Peb yog cov neeg tsim khoom, sau cov khoom lag luam software thiab xav kom nws xav tau. Yog tias cov khoom lag luam xav tau thiab ua tiav, cov neeg siv yuav tuaj. Thiab ntau thiab ntau tuaj. Thiab tom qab ntawd muaj ntau tus neeg siv thiab tom qab ntawd cov khoom yuav dhau los ua cov khoom thauj.

Hauv thawj theem, peb tsis xav txog kev ua kom zoo dua thiab kev ua haujlwm ntawm cov lej. Qhov tseem ceeb tshaj plaws yog functionality, sai dov tawm ib tug pilot thiab sim hypotheses. Thiab yog hais tias lub load nce, peb tso cov hlau. Peb nce nws ob lossis peb zaug, tsib zaug, tej zaum 10 npaug. Ib qho ntawm no - nyiaj txiag yuav tsis tso cai ntxiv lawm. Muaj pes tsawg zaus cov neeg siv yuav nce? Nws yuav tsis zoo li 2-5-10, tab sis yog ua tiav, nws yuav yog 100-1000 mus rau 100 txhiab zaus. Ntawd yog, sai lossis tom qab, koj yuav tau ua kom zoo dua.

Cia peb hais tias qee qhov ntawm cov cai (cia peb hu rau ntu no ua haujlwm) siv sijhawm ntev tsis zoo, thiab peb xav txo lub sijhawm ua tiav. Ib txoj haujlwm tuaj yeem nkag mus rau hauv cov ntaub ntawv, lossis nws tuaj yeem ua tiav ntawm qee qhov kev xav tsis zoo - qhov tseem ceeb yog nws yuav siv sijhawm ntev los ua kom tiav. Koj tuaj yeem txo lub sijhawm ua haujlwm ntau npaum li cas? Hauv qhov txwv, koj tuaj yeem txo nws mus rau xoom, tsis muaj ntxiv. Koj tuaj yeem txo lub sijhawm ua haujlwm rau xoom li cas? Teb: tshem tawm kev ua tiav tag nrho. Hloov chaw, rov qab qhov tshwm sim tam sim. Koj tuaj yeem paub qhov tshwm sim li cas? Teb: yog xam nws los yog saib qhov twg. Nws yuav siv sij hawm ntev los xam. Thiab rau cov neeg soj xyuas yog, piv txwv li, kom nco ntsoov qhov tshwm sim uas muaj nuj nqi tsim lub sijhawm kawg thaum hu nrog tib qhov tsis muaj.

Ntawd yog, kev ua haujlwm ntawm kev ua haujlwm tsis tseem ceeb rau peb. Nws yog txaus kom paub txog dab tsi tsis qhov tshwm sim nyob ntawm. Tom qab ntawd, yog tias qhov ntsuas qhov tseem ceeb tau sawv cev rau hauv daim ntawv ntawm cov khoom siv uas tuaj yeem siv los ua tus yuam sij hauv qee qhov chaw khaws cia, tom qab ntawd cov txiaj ntsig ntawm kev suav tuaj yeem khaws cia thiab nyeem tawm lub sijhawm tom ntej nws nkag mus. Yog tias qhov kev sau ntawv no thiab nyeem cov txiaj ntsig tau nrawm dua li kev ua haujlwm, peb muaj txiaj ntsig ntawm kev ceev. Tus nqi ntawm cov txiaj ntsig tuaj yeem ncav cuag 100, 1000, thiab 100 txhiab zaus (10^5 yog qhov tshwj xeeb, tab sis nyob rau hauv cov ntaub ntawv ntawm lub hauv paus ncaj ncees, nws yog qhov ua tau heev).

Cov kev cai yooj yim rau lub kaw lus caching

Thawj qhov uas yuav dhau los ua qhov yuav tsum tau ua rau lub kaw lus caching yog ceev nyeem ntawv ceev thiab, kom tsawg dua, sau nrawm. Qhov no yog qhov tseeb, tab sis tsuas yog kom txog thaum peb yob tawm qhov system mus rau ntau lawm.

Wb ua si rooj plaub no.

Cia peb hais tias peb tau muab cov khoom thauj tam sim no nrog kho vajtse thiab tam sim no maj mam qhia caching. Tus naj npawb ntawm cov neeg siv loj hlob me ntsis, lub load loj hlob - peb ntxiv me ntsis caches, ntsia hlau rau ntawm no thiab muaj. Qhov no txuas ntxiv mus rau qee lub sijhawm, thiab tam sim no cov haujlwm hnyav tsis tau hu ua ntxiv lawm - tag nrho cov khoom tseem ceeb poob rau ntawm lub cache. Tus naj npawb ntawm cov neeg siv lub sijhawm no tau nce N zaug.

Thiab yog tias qhov pib ntawm cov khoom siv yuav yog 2-5 zaug, nrog kev pab ntawm lub cache peb tuaj yeem txhim kho kev ua tau zoo los ntawm qhov zoo ntawm 10 lossis, qhov zoo, los ntawm qhov zoo ntawm 100, nyob rau qee qhov chaw tej zaum yog los ntawm qhov zoo. ntawm 1000. Qhov ntawd yog, ntawm tib lub kho vajtse - peb ua 100 zaus ntau thov. Zoo heev, koj tsim nyog lub gingerbread!

Tab sis tam sim no, nyob rau hauv ib lub sij hawm zoo, los ntawm lub sij hawm, lub kaw lus tsoo thiab lub cache vau. Tsis muaj dab tsi tshwj xeeb - tom qab tag nrho, lub cache raug xaiv raws li qhov yuav tsum tau "siab nyeem ntawv thiab sau nrawm, tus so tsis muaj teeb meem."

Kev txheeb ze ntawm qhov pib load, peb cov hlau cia yog 2-5 zaug, thiab lub sijhawm no tau nce 10-100 zaug. Siv lub cache, peb tshem tawm hu rau cov haujlwm hnyav thiab yog li txhua yam ua haujlwm. Thiab tam sim no, tsis muaj cache, pes tsawg zaus peb lub kaw lus yuav qeeb? Yuav ua li cas rau peb? Lub kaw lus yuav poob.

Txawm hais tias peb lub cache tsis poob, tab sis tsuas yog tshem tawm ib ntus xwb, nws yuav tsum tau sov so, thiab qhov no yuav siv sijhawm qee lub sijhawm. Thiab lub sijhawm no, lub nra tseem ceeb yuav poob rau kev ua haujlwm.

Xaus: cov haujlwm tsim khoom hnyav heev yuav tsum muaj lub kaw lus caching tsis yog kom muaj kev nyeem ntawv siab thiab sau nrawm, tab sis tseem ua kom cov ntaub ntawv muaj kev nyab xeeb thiab tiv thaiv kev ua tsis tiav.

Kev nyuaj siab ntawm kev xaiv

Nyob rau hauv ib qhov project nrog ib tug admin vaj huam sib luag, qhov kev xaiv mus zoo li no: thawj peb ntsia Hazelcast, vim hais tias Peb twb paub txog cov khoom no los ntawm kev paub ntawm lub vev xaib tseem ceeb. Tab sis ntawm no qhov kev xaiv no tau ua tsis tiav - raws li peb cov ntaub ntawv thauj khoom, Hazelcast tsis yog qeeb xwb, tab sis qeeb heev. Thiab lub sijhawm ntawd peb twb tau sau npe rau hnub tso tawm.

Spoiler: Yuav ua li cas raws nraim qhov xwm txheej tau tsim uas peb tsis nco txog qhov loj thiab xaus nrog qhov xwm txheej mob hnyav - Kuv yuav qhia rau koj hauv ntu thib ob - thiab peb xaus li cas thiab peb tau tawm mus li cas. Tab sis tam sim no - Kuv tsuas yog hais tias nws muaj kev ntxhov siab ntau, thiab "xav - qee qhov kuv xav tsis tau, peb tab tom tuav lub raj mis." "Caw lub raj mis" kuj yog ib tug spoiler, ntxiv rau tom qab ntawd.

Peb ua dab tsi:

  1. Peb ua ib daim ntawv teev tag nrho cov tshuab uas Google thiab StackOverflow qhia. Ib me ntsis dhau 30
  2. Peb sau cov kev ntsuam xyuas nrog rau lub nra hnyav rau kev tsim khoom. Txhawm rau ua qhov no, peb tau sau cov ntaub ntawv uas dhau los ntawm qhov system hauv ib puag ncig tsim khoom - ib hom sniffer rau cov ntaub ntawv tsis nyob hauv lub network, tab sis sab hauv lub system. Raws nraim cov ntaub ntawv no tau siv hauv kev sim.
  3. Nrog rau tag nrho pab neeg, txhua leej txhua tus xaiv cov kab ke tom ntej los ntawm cov npe, teeb tsa nws, thiab khiav cov kev xeem. Nws tsis dhau qhov kev xeem, nws tsis nqa lub nra - peb muab pov tseg thiab txav mus rau lwm qhov hauv kab.
  4. Nyob rau hauv 17th system nws tau pom tseeb tias txhua yam tsis muaj kev cia siab. Tsis txhob tuav lub raj mis, nws yog lub sijhawm los xav txog tiag.

Tab sis qhov no yog ib qho kev xaiv thaum koj yuav tsum xaiv lub kaw lus uas yuav "tau dhau qhov nrawm" hauv kev npaj ua ntej. Yuav ua li cas yog tias tseem tsis tau muaj cov kev xeem no thiab koj xav xaiv sai sai?

Cia peb ua qauv ntawm qhov kev xaiv no (nws nyuaj rau xav txog tias qhov nruab nrab + tus tsim tawm nyob hauv lub tshuab nqus tsev, thiab thaum lub sijhawm xaiv tseem tsis tau ua tiav nws qhov kev nyiam ntawm cov khoom twg los sim ua ntej - yog li, kev xav ntxiv yog ntau dua ntawm kev xav / kev xav / txog ib tug junior).

Tom qab txiav txim siab txog qhov yuav tsum tau ua, peb yuav pib xaiv qhov kev daws teeb meem tawm ntawm lub thawv. Yog vim li cas reinvent lub log: peb yuav mus thiab ua ib tug npaj-ua caching system.

Yog tias koj nyuam qhuav pib tawm thiab google nws, ces muab lossis xaj xaj, tab sis feem ntau, cov lus qhia yuav zoo li no. Ua ntej tshaj plaws, koj yuav tuaj hla Redis, nws tau hnov ​​​​txog txhua qhov chaw. Tom qab ntawd koj yuav pom tias EhCache yog qhov qub tshaj plaws thiab muaj pov thawj tshaj plaws. Tom ntej no peb yuav sau txog Tarantool, kev txhim kho hauv tsev uas muaj qhov tshwj xeeb ntawm kev daws teeb meem. Thiab tseem Ignite, vim tias tam sim no tau nce hauv kev muaj koob npe thiab txaus siab rau kev txhawb nqa ntawm SberTech. Thaum kawg tseem muaj Hazelcast, vim hais tias hauv lub ntiaj teb kev lag luam nws feem ntau tshwm sim ntawm cov tuam txhab loj.

Cov npe tsis yog tag nrho; muaj ntau ntau lub tshuab. Thiab peb yuav tsuas ntsia ib yam. Cia peb xaiv 5 lub tshuab rau "kev sib tw zoo nkauj" thiab xaiv. Leej twg yuav yog tus yeej?

Redis

Peb nyeem qhov lawv sau rau ntawm lub vev xaib official.
Redis - qhov project opensource. Muab cov ntaub ntawv khaws cia hauv lub cim xeeb, muaj peev xwm txuag tau ntawm-disk, pib faib, muaj peev xwm thiab rov qab los ntawm kev siv network.

Nws zoo nkaus li tias txhua yam zoo, koj tuaj yeem nqa nws thiab ntsia hlau rau - txhua yam koj xav tau, nws ua. Tab sis tsuas yog kev lom zem, cia saib lwm tus neeg sib tw.

EhCache

EhCache - "qhov feem ntau siv cache rau Java" (kev txhais lus ntawm lub vev xaib raug cai). Thiab opensource. Thiab tom qab ntawd peb nkag siab tias Redis tsis yog rau java, tab sis dav dav, thiab cuam tshuam nrog nws koj xav tau wrapper. Thiab EhCache yuav yooj yim dua. Qhov system cog lus dab tsi ntxiv? Kev ntseeg tau, pov thawj, ua haujlwm tag nrho. Zoo, nws kuj yog qhov feem ntau. Thiab caches terabytes ntawm cov ntaub ntawv.

Redis tsis nco qab lawm, Kuv npaj siab xaiv EhCache.

Tab sis kev paub txog kev hlub tshua ua rau kuv pom qhov zoo ntawm Tarantool.

Tarantool

Tarantool - ua tau raws li lub npe "Real-time data integration platform". Nws suab nyuaj heev, yog li peb nyeem nplooj ntawv kom ntxaws thiab pom cov lus nrov: "Caches 100% ntawm cov ntaub ntawv hauv RAM." Qhov no yuav tsum tsa cov lus nug - tom qab tag nrho, tuaj yeem muaj cov ntaub ntawv ntau dua li kev nco. Qhov kev piav qhia yog tias nws txhais tau hais tias Tarantool tsis khiav serialization los sau cov ntaub ntawv rau disk ntawm lub cim xeeb. Hloov chaw, nws siv cov yam ntxwv qis ntawm lub kaw lus, thaum lub cim xeeb tsuas yog ua rau cov ntaub ntawv kaw lus nrog I / O kev ua tau zoo heev. Feem ntau, lawv tau ua ib yam dab tsi zoo thiab txias.

Cia peb saib cov kev siv: Mail.ru tuam txhab txoj kev loj, Avito, Beeline, Megafon, Alfa-Bank, Gazprom ...

Yog tias tseem muaj kev tsis ntseeg txog Tarantool, ces qhov kev siv ntawm Mastercard ua tiav kuv. Kuv noj Tarantool.

Tab sis txawm li cas los xij…

Tsom iav

… puas muaj lwm yam Tsom iav, raug nqi raws li "hauv-nco xam platform ... hauv-nco ceev ntawm petabytes ntawm cov ntaub ntawv." Kuj tseem muaj ntau qhov zoo ntawm no: faib hauv-nco cache, ceev tshaj qhov tseem ceeb-tus nqi cia thiab cache, kab rov tav scaling, muaj siab, nruj nruj. Feem ntau, nws hloov tawm tias qhov ceev tshaj plaws yog Ignite.

Kev nqis tes ua: Sberbank, American Airlines, Yahoo! Nyiv. Thiab tom qab ntawd kuv pom tias Ignite tsis yog siv hauv Sberbank xwb, tab sis pab pawg SberTech xa nws cov neeg mus rau pab pawg Ignite nws tus kheej los kho cov khoom. Qhov no yog qhov ntxim nyiam kawg thiab kuv npaj siab coj Ignite.

Nws tsis paub meej vim li cas, Kuv tab tom saib ntawm qhov thib tsib.

hazelcast

Kuv mus rau ntawm qhov chaw hazelcast, nyeem ntawv. Thiab nws hloov tawm tias qhov kev daws teeb meem ceev tshaj plaws rau kev faib caching yog Hazelcast. Nws yog qhov kev txiav txim ntawm qhov loj dua sai dua li tag nrho lwm cov kev daws teeb meem thiab feem ntau nws yog tus thawj coj hauv thaj chaw ntawm cov ntaub ntawv hauv lub cim xeeb. Tawm tsam keeb kwm no, coj lwm yam tsis yog kev hwm koj tus kheej. Nws kuj tseem siv cov ntaub ntawv tsis tu ncua rau kev ua haujlwm tas li ntawm pawg tsis muaj cov ntaub ntawv poob.

Qhov ntawd yog nws, Kuv npaj siab coj Hazelcast.

Sib piv

Tab sis yog tias koj saib, tag nrho tsib tus neeg sib tw tau piav qhia hauv txoj hauv kev uas lawv txhua tus yog qhov zoo tshaj plaws. Yuav xaiv li cas? Peb tuaj yeem pom qhov twg yog qhov nrov tshaj plaws, nrhiav kev sib piv, thiab mob taub hau yuav ploj mus.

Peb nrhiav tau ib tug zoo li no ΠΎΠ±Π·ΠΎΡ€, xaiv peb 5 systems.

Yuav ua li cas peb ntawm Sportmaster xaiv lub kaw lus caching. Ntu 1

Ntawm no lawv tau txheeb xyuas: Redis nyob rau saum toj, Hazelcast nyob rau hauv qhov chaw thib ob, Tarantool thiab Ignite tau txais koob meej, EhCache tau ua thiab tseem zoo li qub.

Tab sis cia peb saib txoj kev xam: txuas mus rau cov vev xaib, kev txaus siab dav dav hauv qhov system, txoj haujlwm muab - zoo heev! Ntawd yog, thaum kuv lub kaw lus ua tsis tiav, kuv yuav hais tias: β€œTsis yog, nws ntseeg tau! Muaj ntau txoj haujlwm ”… Xws li kev sib piv yooj yim yuav tsis ua.

Tag nrho cov tshuab no tsis yog caching systems xwb. Lawv kuj muaj ntau yam kev ua haujlwm, suav nrog thaum cov ntaub ntawv tsis tau xa mus rau tus neeg siv khoom rau kev ua haujlwm, tab sis vice versa: cov cai uas yuav tsum tau ua tiav ntawm cov ntaub ntawv tsiv mus rau lub server, raug tua nyob rau ntawd, thiab cov txiaj ntsig tau rov qab los. Thiab lawv tsis yog li ntawd feem ntau suav hais tias yog ib qho kev cais rau caching.

Okay, cia peb tsis txhob tso tseg, cia peb nrhiav kev sib piv ncaj qha ntawm cov tshuab. Cia peb coj ob qho kev xaiv saum toj kawg nkaus - Redis thiab Hazelcast. Peb txaus siab rau kev ceev, thiab peb yuav muab piv rau lawv raws li qhov ntsuas no.

Hz vs Redis

Peb nrhiav tau qhov no sib piv:
Yuav ua li cas peb ntawm Sportmaster xaiv lub kaw lus caching. Ntu 1

Xiav yog Redis, liab yog Hazelcast. Hazelcast yeej txhua qhov chaw, thiab muaj qhov laj thawj rau qhov no: nws yog ntau txoj xov, zoo heev, txhua txoj xov ua haujlwm nrog nws tus kheej muab faib, yog li tsis muaj kev thaiv. Thiab Redis yog ib txoj xov nkaus xwb; nws tsis tau txais txiaj ntsig los ntawm niaj hnub multi-core CPUs. Hazelcast muaj asynchronous I / O, Redis-Jedis muaj qhov thaiv qhov (socket). Tom qab tag nrho, Hazelcast siv binary raws tu qauv, thiab Redis yog cov ntawv nyeem-centric, txhais tau tias nws tsis muaj txiaj ntsig.

Tsuas yog nyob rau hauv rooj plaub, cia peb tig mus rau lwm qhov kev sib piv. Nws yuav qhia peb li cas?

Redis vs Hz

Lwm tus sib piv:
Yuav ua li cas peb ntawm Sportmaster xaiv lub kaw lus caching. Ntu 1

Ntawm no, ntawm qhov tsis sib xws, liab yog Redis. Ntawd yog, Redis outperforms Hazelcast nyob rau hauv cov nqe lus ntawm kev ua tau zoo. Hazelcast yeej thawj qhov sib piv, Redis yeej qhov thib ob. Txoj cai ntawm no piav qhia meej heev vim li cas Hazelcast yeej qhov kev sib piv yav dhau los.

Nws hloov tawm tias qhov tshwm sim ntawm thawj tus tau raug rigged tiag tiag: Redis tau coj mus rau hauv lub hauv paus lub thawv, thiab Hazelcast tau tsim kho rau qhov kev sim. Tom qab ntawd nws hloov tawm: thawj zaug, peb tsis tuaj yeem tso siab rau leej twg, thiab qhov thib ob, thaum peb xaiv qhov system, peb tseem yuav tsum teeb tsa kom raug. Cov kev teeb tsa no suav nrog ntau ntau, yuav luag pua pua ntawm cov kev txwv.

Tuav lub raj mis

Thiab kuv tuaj yeem piav qhia tag nrho cov txheej txheem uas peb tau ua tam sim no nrog cov lus piv txwv hauv qab no: "Co lub raj mis." Ntawd yog, tam sim no koj tsis tas yuav program, tam sim no qhov tseem ceeb yog tuaj yeem nyeem stackoverflow. Thiab kuv muaj ib tus neeg ntawm kuv pab neeg, tus kws tshaj lij, uas ua haujlwm raws nraim li qhov no thaum lub sijhawm tseem ceeb.

Nws ua dab tsi? Nws pom ib qho tawg, pom ib pawg kab, siv qee cov lus los ntawm nws (uas yog nws tus kws tshaj lij hauv qhov program), tshawb hauv Google, pom stackoverflow ntawm cov lus teb. Tsis tau nyeem, tsis xav, ntawm cov lus teb rau lo lus nug, nws xaiv ib yam dab tsi zoo ib yam li kab lus "ua qhov no thiab qhov ntawd" (xaiv cov lus teb no yog nws lub peev xwm, vim nws tsis yog ib qho lus teb uas tau txais kev nyiam tshaj plaws), siv, zoo li: yog tias ib yam dab tsi tau hloov, ces zoo heev. Yog tias nws tseem tsis tau hloov, tig rov qab. Thiab rov pib-check-search. Thiab nyob rau hauv no intuitive txoj kev, nws xyuas kom meej tias cov code ua hauj lwm tom qab ib co sij hawm. Nws tsis paub yog vim li cas, nws tsis paub nws ua dab tsi, nws piav tsis tau. Tab sis! Cov kab mob no ua haujlwm. Thiab "qhov hluav taws kub yog extinguished." Tam sim no cia peb xam seb peb tau ua dab tsi. Thaum qhov kev zov me nyuam ua haujlwm, nws yog qhov kev txiav txim siab yooj yim dua. Thiab nws txuag tau ntau lub sijhawm.

Txoj kev no tau piav qhia zoo heev nrog qhov piv txwv no.

Nws yog ib zaug nyiam heev los sau ib lub nkoj nkoj hauv lub raj mis. Nyob rau tib lub sijhawm, lub nkoj nkoj loj thiab tsis yooj yim, thiab lub caj dab ntawm lub raj mis nqaim heev, nws tsis tuaj yeem thawb nws sab hauv. Yuav ua li cas los ua ke nws?

Yuav ua li cas peb ntawm Sportmaster xaiv lub kaw lus caching. Ntu 1

Muaj xws li ib txoj kev, ceev heev thiab zoo heev.

Lub nkoj muaj ib pawg ntawm me me: sticks, ropes, sails, kua nplaum. Peb muab tag nrho cov no tso rau hauv ib lub raj mis.
Peb nqa lub raj mis nrog ob txhais tes thiab pib co. Peb co thiab co nws. Thiab feem ntau nws hloov tawm mus ua cov khib nyiab tag, tau kawg. Tab sis qee zaum. Qee lub sij hawm nws hloov tawm los ua lub nkoj! Ntau precisely, ib yam dab tsi zoo ib yam li lub nkoj.

Peb qhia qhov no rau ib tug neeg: "Seryoga, koj puas pom!?" Thiab qhov tseeb, los ntawm qhov deb nws zoo li lub nkoj. Tab sis qhov no tsis tuaj yeem tso cai txuas ntxiv.

Muaj lwm txoj kev. Lawv tau siv los ntawm cov txiv neej siab dua, xws li hackers.

Kuv muab tus txiv neej no ua haujlwm, nws ua txhua yam thiab tawm mus. Thiab koj saib - nws zoo li nws ua tiav. Thiab tom qab ib pliag, thaum tus lej yuav tsum tau ua tiav, qhov no pib vim nws ... Nws yog qhov zoo uas nws tau tswj kom khiav mus deb. Cov no yog cov txiv neej uas, siv cov piv txwv ntawm lub raj mis, yuav ua li no: koj pom, qhov twg hauv qab yog, iav khoov. Thiab nws tsis paub meej tias nws yog pob tshab lossis tsis yog. Tom qab ntawd cov "hackers" txiav tawm hauv qab no, ntxig ib lub nkoj rau ntawd, tom qab ntawd nplaum lub hauv qab rov qab dua, thiab nws zoo li qhov ntawd yog qhov nws yuav tsum ua.

Los ntawm qhov pom ntawm qhov teeb meem, txhua yam zoo li yog qhov tseeb. Tab sis siv nkoj ua piv txwv: vim li cas thiaj ua lub nkoj no txhua, leej twg xav tau nws? Nws tsis muab tej functionality. Feem ntau cov nkoj zoo li no yog khoom plig rau cov neeg muaj npe siab heev, uas muab tso rau ntawm lub txee saum lawv, raws li qee yam cim, ua ib qho kos npe. Thiab yog hais tias xws li ib tug neeg, lub taub hau ntawm lub lag luam loj los yog ib tug neeg ua hauj lwm siab, yuav ua li cas tus chij sawv rau xws li ib tug hack, lub caj dab uas tau raug txiav tawm? Nws yuav zoo dua yog tias nws tsis tau paub txog nws. Yog li ntawd, lawv yuav ua li cas thiaj ua tau cov nkoj no tuaj yeem muab rau tus neeg tseem ceeb?

Tib qhov chaw tseem ceeb uas koj yeej ua tsis tau dab tsi txog yog lub cev. Thiab lub nkoj lub nkoj haum rau hauv lub caj dab. Thaum lub nkoj sib sau ua ke sab nraum lub raj mis. Tab sis nws tsis yog sib sau ua ke ib lub nkoj xwb, nws yog khoom siv tes ua khoom siv tes ua tiag tiag. Cov levers tshwj xeeb yog ntxiv rau cov khoom, uas tom qab ntawd tso cai rau lawv nqa. Piv txwv li, cov sails yog folded, ua tib zoo coj mus rau hauv, thiab tom qab ntawd, nrog kev pab los ntawm tweezers, lawv raug rub thiab tsa zoo heev, nrog precision. Qhov tshwm sim yog ib qho kev kos duab uas muaj peev xwm ua tau zoo nrog lub siab ntshiab thiab kev khav theeb.

Thiab yog tias peb xav kom qhov project ua tiav, yuav tsum muaj tsawg kawg yog ib lub jeweler ntawm pab pawg. Ib tug neeg uas mob siab rau qhov zoo ntawm cov khoom thiab coj mus rau hauv tus account txhua yam, tsis muaj kev txi ib yam dab tsi, txawm nyob rau hauv lub sij hawm ntawm kev ntxhov siab, thaum muaj xwm txheej yuav tsum tau ua qhov ceev ntawm qhov tseem ceeb. Txhua txoj haujlwm ua tiav uas muaj kev ruaj ntseg, uas tau sawv ntawm qhov kev sim ntawm lub sijhawm, tau tsim los ntawm txoj cai no. Muaj ib yam dab tsi heev meej thiab tshwj xeeb txog lawv, ib yam dab tsi uas yuav siv sij hawm kom zoo dua ntawm tag nrho cov muaj peev xwm. Hauv qhov piv txwv nrog lub nkoj hauv lub raj mis, qhov tseeb tias lub nkoj ntawm lub nkoj hla lub caj dab yog ua si tawm.

Rov qab mus rau txoj haujlwm ntawm kev xaiv peb cov neeg rau zaub mov caching, yuav ua li cas siv txoj kev no? Kuv muab qhov kev xaiv no xaiv los ntawm txhua lub tshuab uas muaj nyob - tsis txhob co lub raj mis, tsis txhob xaiv, tab sis saib seb lawv muaj dab tsi hauv txoj cai, yuav nrhiav dab tsi thaum xaiv lub kaw lus.

Qhov twg mus nrhiav lub raj mis-caj dab

Cia peb sim tsis txhob co lub raj mis, tsis txhob mus dhau txhua yam uas nyob ntawd ib qho los ntawm ib qho, tab sis cia peb pom tias muaj teeb meem dab tsi tshwm sim yog tias peb mam li nco dheev, rau peb txoj haujlwm, tsim cov txheej txheem peb tus kheej. Tau kawg, peb yuav tsis sib sau ua ke lub tsheb kauj vab, tab sis peb yuav siv daim duab qhia no los pab peb txheeb xyuas seb cov ntsiab lus twg yuav tsum tau them rau hauv cov lus piav qhia ntawm cov khoom. Cia peb kos ib daim duab zoo li no.

Yuav ua li cas peb ntawm Sportmaster xaiv lub kaw lus caching. Ntu 1

Yog tias lub kaw lus tau muab faib, ces peb yuav muaj ntau lub servers (6). Cia peb hais tias muaj plaub (nws yooj yim los tso rau hauv daim duab, tab sis, tau kawg, tuaj yeem muaj ntau npaum li koj nyiam). Yog tias cov servers nyob ntawm cov nodes sib txawv, nws txhais tau hais tias lawv txhua tus khiav qee cov cai uas yog lub luag haujlwm los xyuas kom meej tias cov nodes tsim ib pawg thiab, thaum muaj kev tawg, txuas thiab paub txog ib leeg.

Peb kuj xav tau code logic (2), uas yog tiag tiag txog caching. Cov neeg siv khoom cuam tshuam nrog cov lej no ntawm qee qhov API. Client code (1) tuaj yeem nyob hauv tib JVM lossis nkag mus rau hauv lub network. Lub logic siv sab hauv yog kev txiav txim siab ntawm cov khoom twg tawm hauv lub cache thiab qhov twg yuav pov tawm. Peb siv lub cim xeeb (3) khaws cov cache, tab sis yog tias tsim nyog, peb tuaj yeem khaws qee cov ntaub ntawv ntawm disk (4).

Cia peb saib nyob rau hauv qhov twg cov khoom yuav tshwm sim. Qhov tseeb, txhua tus xub thiab txhua qhov node yuav raug thauj khoom. Ua ntej, ntawm tus neeg siv code thiab api, yog tias qhov no yog kev sib txuas lus hauv network, qhov kev poob qis tuaj yeem pom tau zoo heev. Qhov thib ob, nyob rau hauv lub moj khaum ntawm api nws tus kheej - yog tias peb overdo nws nrog complex logic, peb yuav khiav mus rau hauv cov teeb meem nrog CPU. Thiab nws yuav zoo yog tias logic tsis nkim sij hawm ntawm kev nco. Thiab tseem muaj kev cuam tshuam nrog cov ntaub ntawv kaw lus - hauv qhov niaj zaus version no yog serialize / rov qab thiab sau / nyeem.

Tom ntej no yog kev sib tham nrog pawg. Feem ntau yuav, nws yuav nyob rau hauv tib lub system, tab sis nws yuav cais. Ntawm no koj kuj yuav tsum tau coj mus rau hauv tus account qhov hloov ntawm cov ntaub ntawv mus rau nws, ceev ntawm cov ntaub ntawv serialization thiab kev sib cuam tshuam ntawm pawg.

Tam sim no, ntawm ib sab, peb tuaj yeem xav txog "qhov twg lub zog yuav tig" hauv qhov system cache thaum ua cov lus thov los ntawm peb cov lej, thiab ntawm qhov tod tes, peb tuaj yeem kwv yees li cas thiab pes tsawg qhov kev thov peb cov lej yuav tsim rau lub kaw lus no. Qhov no txaus los ua kom muaj kev xaiv ntau dua lossis tsawg dua - xaiv qhov system rau peb cov ntaub ntawv siv.

hazelcast

Cia peb saib yuav ua li cas siv qhov decomposition no rau peb daim ntawv teev npe. Piv txwv li, Hazelcast.

Txhawm rau muab / nqa cov ntaub ntawv los ntawm Hazelcast, tus neeg siv code nkag (1) api. Hz tso cai rau koj khiav lub server li kos, thiab qhov no, nkag mus rau api yog ib txoj hauv kev hu rau hauv JVM, uas tuaj yeem suav tias yog dawb.

Yuav kom lub logic hauv (2) ua haujlwm, Hz tso siab rau qhov hash ntawm byte array ntawm tus yuam sij serialized - uas yog, tus yuam sij yuav raug serialized nyob rau hauv txhua rooj plaub. Qhov no yog inevitable overhead rau Hz.
Cov tswv yim tshem tawm tau siv tau zoo, tab sis rau cov xwm txheej tshwj xeeb koj tuaj yeem ntxiv koj tus kheej. Koj tsis tas yuav txhawj txog qhov no.

Cia (4) tuaj yeem txuas nrog. Zoo heev. Kev sib cuam tshuam (5) rau embedded tuaj yeem suav tias yog tam sim. Cov ntaub ntawv sib pauv ntawm cov nodes hauv pawg (6) - yog, nws muaj. Qhov no yog kev nqis peev hauv kev ua txhaum cai ntawm kev siv ceev. Lub Hz feature Ze-cache tso cai rau koj txo tus nqi - cov ntaub ntawv tau txais los ntawm lwm cov ntawm hauv pawg yuav raug cached.

Yuav ua li cas nyob rau hauv xws li tej yam kev mob kom ceev ceev?

Piv txwv li, kom tsis txhob serialization ntawm tus yuam sij hauv (2) - muab lwm lub cache rau saum Hazelcast, rau cov ntaub ntawv kub tshaj plaws. Sportmaster xaiv Caffeine rau lub hom phiaj no.

Rau kev sib tw ntawm qib (6), Hz muaj ob hom kev cia: IMap thiab ReplicatedMap.
Yuav ua li cas peb ntawm Sportmaster xaiv lub kaw lus caching. Ntu 1

Nws tsim nyog hais txog yuav ua li cas Hazelcast tau nkag mus rau hauv Sportmaster thev naus laus zis pawg.

Nyob rau hauv 2012, thaum peb tau ua hauj lwm nyob rau hauv thawj heev pilot ntawm lub neej yav tom ntej site, nws yog Hazelcast uas tau tig tawm los ua thawj qhov txuas uas lub tshuab tshawb nrhiav rov qab los. Cov neeg paub pib "thawj zaug" - peb tau ntxim nyiam los ntawm qhov tseeb tias tsuas yog ob teev tom qab ntawd, thaum peb ntsia Hz rau hauv lub kaw lus, nws ua haujlwm. Thiab nws ua haujlwm zoo. Thaum kawg ntawm hnub peb tau ua tiav ntau qhov kev xeem thiab zoo siab. Thiab qhov tshwj xeeb ntawm lub zog no tau txaus los kov yeej qhov kev xav tsis thoob uas Hz cuam tshuam dhau sijhawm. Tam sim no pab pawg Sportmaster tsis muaj laj thawj tso tseg Hazelcast.

Tab sis xws li kev sib cav xws li "thawj qhov txuas hauv lub tshuab tshawb nrhiav" thiab "HelloWorld tau sib sau ua ke sai" yog, tau kawg, qhov kev zam thiab qhov tshwj xeeb ntawm lub sijhawm uas qhov kev xaiv tau tshwm sim. Qhov kev ntsuam xyuas tiag tiag rau lub kaw lus xaiv pib nrog kev tso tawm rau hauv kev tsim khoom, thiab nws yog nyob rau theem no uas koj yuav tsum tau them sai sai rau thaum xaiv ib qho system, suav nrog cache. Qhov tseeb, hauv peb rooj plaub peb tuaj yeem hais tias peb xaiv Hazelcast los ntawm kev sib tsoo, tab sis tom qab ntawd nws tau muab tawm tias peb xaiv raug.

Rau kev tsim khoom, ntau qhov tseem ceeb tshaj: kev saib xyuas, kev ua tsis tiav ntawm tus kheej ntawm tus kheej, cov ntaub ntawv rov ua dua, tus nqi ntawm kev ntsuas. Ntawd yog, nws tsim nyog them sai sai rau cov dej num uas yuav tshwm sim thaum lub sij hawm txij nkawm ntawm lub system - thaum lub load yog kaum tawm lub sij hawm siab tshaj qhov kev npaj, thaum peb yuam kev upload ib yam dab tsi nyob rau hauv qhov chaw tsis ncaj ncees lawm, thaum peb yuav tsum yob tawm ib tug tshiab version. ntawm cov cai, hloov cov ntaub ntawv thiab ua nws unnoticed rau cov neeg siv khoom.

Rau tag nrho cov kev cai no, Hazelcast yeej haum rau daim nqi.

Ua tau mus ntxiv

Tab sis Hazelcast tsis yog panacea. Hauv 2017, peb xaiv Hazelcast rau admin cache, tsuas yog raws li kev xav zoo los ntawm kev paub dhau los. Qhov no tau ua lub luag haujlwm tseem ceeb hauv kev tso dag siab phem heev, vim tias peb pom peb tus kheej hauv qhov xwm txheej nyuaj thiab "heroically" tau tawm ntawm nws rau 60 hnub. Tab sis ntau ntxiv rau qhov ntawd hauv ntu tom ntej.

Nyob rau lub sijhawm no... Zoo Siab Tshiab Code!

Tau qhov twg los: www.hab.com

Ntxiv ib saib