FAQ ku saabsan dhismaha iyo shaqada VKontakte

Taariikhda abuurista VKontakte waxay ku taal Wikipedia; waxaa u sheegay Pavel laftiisa. Waxay u muuqataa in qof kastaa hore u yaqaan. Ku saabsan gudaha, qaab-dhismeedka iyo qaab-dhismeedka goobta HighLoad++ Pavel ii sheegay 2010kii. Inta badan server-yada ayaa soo daatay tan iyo markaas, sidaas darteed waxaan cusbooneysiin doonaa macluumaadka: waanu kala saari doonaa, ka soo saareynaa gudaha, miisaan, oo eeg qalabka VK ee dhinaca farsamada.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Alexei Akulovich (AterCattus) horumariyaha dambe ee kooxda VKontakte. Nuqulka warbixintani waa jawaab wadajir ah oo ku saabsan su'aalaha soo noqnoqda ee ku saabsan shaqada madal, kaabayaasha, adeegayaasha iyo isdhexgalka dhexdooda, laakiin maaha mid ku saabsan horumarinta, kuwaas oo ah. ku saabsan birta. Si gooni ah, macluumaadka ku saabsan kaydinta xogta iyo waxa VK leeyahay, oo ku saabsan ururinta diiwaannada iyo la socodka dhammaan mashruuca guud ahaan. Faahfaahinta hoos goynta.



In ka badan afar sano waxaan la tacaalayay dhammaan noocyada kala duwan ee hawlaha la xiriira dhabarka.

  • Soo dejinta, kaydinta, habaynta, qaybinta warbaahinta: muqaal, baahinta tooska ah, maqalka, sawirada, waraaqaha.
  • Kaabayaasha, madal, la socodka horumariyaha, diiwaanka, kaydinta gobolka, CDN, borotokoolka RPC ee lahaanshaha.
  • La-qabsiga adeegyada dibadda: ogeysiisyada riix, kala-soocidda isku-xirka dibadda, quudinta RSS.
  • Ka caawinta asxaabta su'aalo kala duwan, jawaabaha kuwaas oo u baahan quusin kood aan la garanayn.

Muddadaas, waxaan gacan ku lahaa qaybo badan oo goobta ah. Waxaan rabaa inaan la wadaago waayo-aragnimadan.

Dhismaha guud

Wax walba, sida caadiga ah, waxay ka bilaabmaan server ama koox adeegayaal ah oo aqbala codsiyada.

Adeegga hore

Adeegga hore wuxuu aqbalayaa codsiyada HTTPS, RTMP iyo WSS.

HTTPS - kuwani waa codsiyo loogu talagalay noocyada mareegaha ugu weyn iyo kuwa mobilada ee goobta: vk.com iyo m.vk.com, iyo macaamiisha kale ee rasmiga ah iyo kuwa aan rasmiga ahayn ee API-gayada: macaamiisha mobilada, masuulada. Waxaan leenahay soo dhaweyn RTMP-taraafikada loogu talagalay baahinta tooska ah ee leh server-yada hore ee goonida ah iyo WSS- isku xirka API Streaming

HTTPS iyo WSS ee server-yada waa u qalantaa nginx. baahinta RTMP, waxaan dhawaan u wareegnay xal noo gaar ah kive, laakiin way ka baxsan tahay xadka warbixinta. Dulqaadashada khaladaadka, adeegayaashani waxay xayeysiiyaan cinwaannada IP-yada caadiga ah waxayna u dhaqmaan koox koox si haddii ay dhibaato ka dhacdo mid ka mid ah server-yada, codsiyada isticmaale ma lumin. HTTPS iyo WSS, isla server-yadaan waxay sireeyaan taraafikada si ay qayb uga qaataan culeyska CPU naftooda.

Ka hadli mayno wax badan oo ku saabsan WSS iyo RTMP, laakiin kaliya codsiyada HTTPS caadiga ah, kuwaas oo inta badan la xidhiidha mashruuca shabakada.

Backend

Dhanka hore waxaa inta badan yaal server-yada dhabarka dambe. Waxay baaraan codsiyada in server-ka hore uu ka helo macaamiisha.

this kPHP server, kaas oo daemon-ka HTTP ku shaqeeyo, sababtoo ah HTTPS mar hore ayaa la furay. kPHP waa adeegaha ku shaqeeya moodooyinka prefork: waxa uu bilaabaa habsocod heer sare ah, farabadan oo habsocodyada ilmaha ah, waxa uu u gudbiyaa saldhigyada dhegeysiga iyaga oo ka baaraandegaya codsiyadooda. Xaaladdan oo kale, hababka dib looma bilaabo inta u dhaxaysa codsi kasta oo ka yimaada isticmaalaha, laakiin si fudud dib u dejin gobolkooda asalka qiimaha eber - codsi codsi ka dib, halkii ay dib u bilaabi lahaayeen.

Qaybinta xamuulka

Dhammaan dhabarka dambe ma aha mashiinno aad u badan oo ka baaraandegi kara codsi kasta. Anaga iyaga kooxo gaar ah loo qaybiyey: guud, moobil, api, muuqaal, diyaarinta Haddii ay dhacdo dhibaatooyin fiidiyoow ah, isticmaalaha dhegaysanaya muusikada xitaa ma ogaan doono dhibaatooyinka. Waa kuwee dhabarka loo diro codsiga waxaa go'aamiya nginx xagga hore iyadoo la raacayo qaabeynta.

Ururinta mitirka iyo dib-u-dheellitirka

Si aan u fahamno inta baabuur ee aan u baahannahay inaan ku yeelanno koox kasta, annaga ha isku hallayn QPS. Dhabarku way kala duwan yihiin, waxay leeyihiin codsiyo kala duwan, codsi kastaa wuxuu leeyahay kakanaanta kala duwan ee xisaabinta QPS. Taasi waa sababta aan Waxaan ku shaqeyneynaa fikradda culeyska ee server-ka guud ahaan - CPU iyo perf.

Waxaan haynaa kumanaan server oo noocaas ah. Seerfar kasta oo jireed waxa uu wadaa koox kPHP si ay dib ugu warshadeeyaan dhammaan xudunta (maxaa yeelay kPHP waa hal xadhig).

Mawduuca Server-ka

CS ama Content Server waa kaydinta. CS waa adeege kaydiya faylal sidoo kale socodsiiya faylalka la soo galiyay iyo dhammaan noocyada kala duwan ee hawlaha asalka ah ee hore ee webka hore u xilsaaro.

Waxaan haynaa tobanaan kun oo adeegayaal jireed oo kaydiya faylasha. Isticmaalayaashu waxay jecel yihiin inay galiyaan faylasha, waxaana jecelnahay inaan kaydinno oo wadaagno. Qaar ka mid ah server-yadaas waxaa xiray adeegayaal pu/pp gaar ah.

pu/pp

Haddii aad ka furtay shabakadda VK, waxaad aragtay pu/pp.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Waa maxay pu/pp? Haddii aan xirno mid ka mid ah server ka mid kale, markaa waxaa jira laba ikhtiyaar oo loogu talagalay soo dejinta iyo soo dejinta faylka server-ka xiran: si toos ah iyada oo loo marayo http://cs100500.userapi.com/path ama iyada oo loo marayo server dhexdhexaad ah - http://pu.vk.com/c100500/path.

Pu waa magaca taariikhiga ah ee sawir gelinta, ppkuna waa wakiil sawir. Taasi waa, hal server ayaa loogu talagalay soo dejinta sawirada, mid kalena waa wax lagu dhejiyo. Hadda sawiro kaliya maaha, laakiin magaca waa la ilaaliyay.

Adeegayaashan jooji kalfadhiyada HTTPSsi culeyska processor-ka looga saaro kaydinta. Sidoo kale, maadaama faylasha isticmaalaha lagu farsameeyo server-yadan, macluumaadka xasaasiga ah ee yar ee lagu kaydiyo mishiinnadan, ayaa ka sii wanaagsan. Tusaale ahaan, furayaasha sirta HTTPS.

Maadaama mashiinada ay xireen mashiinadayada kale, ma awoodno inaan siinno "cad" IP-yada dibadda ah, iyo siin "cawlan". Sidan ayaanu ku badbaadnay barkadda IP-ga waxaanan dammaanad qaadnay inaan mishiinnada ka ilaalinno gelitaanka dibadda - ma jiro wax IP ah oo lagu galo.

U adkeysiga IP-yada la wadaago. Marka la eego dulqaadka qaladka, nidaamku si isku mid ah ayuu u shaqeeyaa - dhowr adeegayaal jireed ayaa leh IP jireed oo caadi ah, iyo qalabka hortooda yaal ayaa dooranaya meesha laga dirayo codsiga. Waxaan ka hadli doonaa xulashooyinka kale hadhow.

Qodobka muranka dhaliyay ayaa ah in kiiskan macmiilku waxa uu hayaa xidhiidho yar. Haddii ay jiraan IP isku mid ah dhowr mashiinno - oo leh isla martida: pu.vk.com ama pp.vk.com, browserka macmiilku wuxuu leeyahay xaddid tirada codsiyada isku mar ah ee hal marti-geliyaha. Laakin waqtiga HTTP/2 oo meel walba la joogo, waxaan aaminsanahay in tani aysan hadda sidaas khusayn.

Khasaaraha muuqda ee nidaamka ayaa ah inuu sameeyo ku shub dhammaan taraafikada, kaas oo taga kaydinta, iyada oo loo marayo server kale. Maaddaama aan ku shubno taraafikada mashiinnada, weli ma shubi karno taraafikada culus, tusaale ahaan, muuqaal, annaga oo isticmaalaya isla qorshe. Waxaan si toos ah u gudbinaa - xiriir toos ah oo gaar ah oo loogu talagalay kaydinta kala duwan gaar ahaan fiidiyowga. Waxa aanu ku gudbinaa ka fudfudud iyada oo loo marayo wakiil.

Muddo aan fogayn waxa aanu helnay nooc wakiil ah oo la hagaajiyay. Hadda waxaan kuu sheegi doonaa sida ay uga duwan yihiin kuwa caadiga ah iyo sababta ay tani lagama maarmaan u tahay.

Sun

Bishii Sebtembar 2017, Oracle, oo hore u iibsaday Sun, eryay tiro aad u badan oo shaqaale Sun ah. Waxaan dhihi karnaa in xilligan shirkadu ay joogsatay jiritaankeeda. Markii ay dooranayeen magaca nidaamka cusub, maamulayaasheena waxay go'aansadeen inay ixtiraamaan xusuusta shirkaddan waxayna u bixiyeen nidaamka cusub ee Sun. Dhexdeena waxaan si fudud ugu yeernaa "qorraxda".

FAQ ku saabsan dhismaha iyo shaqada VKontakte

pp ayaa lahaa dhowr dhibaato Hal IP koox kasta - kayd aan waxtar lahayn. Dhowr adeegayaal jireed ayaa wadaaga ciwaanka IP-ga caadiga ah, mana jirto si loo xakameeyo server-ka codsigu aadayo. Sidaa darteed, haddii isticmaaleyaal kala duwan ay u yimaadaan fayl isku mid ah, markaa haddii uu jiro kayd ku yaal server-yadaas, feylku wuxuu ku dhamaanayaa kaydka server kasta. Tani waa qorshe aan waxtar lahayn, laakiin waxba lama samayn karo.

Sidaa awgeed- Ma jeexjeexi karno waxa ku jira, sababtoo ah ma dooran karno koox gaar ah kooxdan - waxay leeyihiin IP-ga guud. Sidoo kale sababo gudaha ah ayaanu leenahay Suurtagal ma ahayn in server-yadaas lagu rakibo gobollada. Waxay istaageen oo keliya St. Petersburg.

Qorraxda, waxaan beddelnay nidaamka xulashada. Hadda waxaan leenahay habayn kasta: jiheynta firfircoon, kastacast, is-hubi daemon. Server kastaa wuxuu leeyahay IP-ga gaarka ah, laakiin subnet-ka guud. Wax walba waxaa loo habeeyey si haddii hal server uu ku guuldareysto, taraafikada si toos ah ugu faafaan server-yada kale ee isla kooxda. Hadda waa suurtagal in la doorto server gaar ah, ma jirto kayd aan xad lahayn, iyo isku halaynta ma saameyn.

Taageerada miisaanka. Hadda waxaan awoodnaa inaan ku rakibno mashiinnada awoodda kala duwan ee loo baahan yahay, iyo sidoo kale, haddii ay dhacdo dhibaatooyin ku-meel-gaar ah, beddelo miisaanka shaqada "qorraxda" si loo yareeyo culeyska iyaga saaran, si ay "nastaan" oo ay dib u bilaabaan shaqada.

Ku wadaagida nuxurka id. Waxyaabo qosol leh oo ku saabsan shaandheynta: inta badan waxaan u jeexnaa waxyaabaha ku jira si isticmaalayaasha kala duwan ay u aadaan fayl isku mid ah iyada oo loo marayo isla "qorraxda" si ay u yeeshaan kayd caadi ah.

Waxaan dhawaan bilownay codsiga "Clover". Kani waa kedis online ah oo ku jira baahinta tooska ah, halkaas oo martigeliyaha uu ku weydiiyo su'aalo oo isticmaalayaashu ay ka jawaabaan wakhtiga dhabta ah, iyaga oo dooranaya xulashooyinka. Appku waxa uu leeyahay wada sheekaysi ay isticmaalayaashu ku sheekaysan karaan. Isku mar ku xidhi kara baahinta in ka badan 100 kun oo qof. Dhammaantood waxay qoraan fariimaha loo diro dhammaan ka qaybgalayaasha, iyo avatar ayaa la socda farriinta. Haddii 100 kun oo qof ay u yimaadaan hal avatar hal "qorrax", markaa waxay mararka qaarkood ku soo rogi kartaa daruur.

Si aan ugu adkaysano dillaaca codsiyada isla fayl la mid ah, waa nooc gaar ah oo ka mid ah nuxurka aan u shidno nidaam nacasnimo ah oo ku faafiya faylalka dhammaan "qorraxda" ee gobolka.

Qorraxda gudaha

U rog wakiilka nginx, kaydinta RAM ama saxannada Optane/NVMe degdeg ah. Tusaale: http://sun4-2.userapi.com/c100500/path - isku xirka "qorraxda", kaas oo ku yaala gobolka afraad, kooxda labaad ee server. Waxay xidhaysaa faylka jidka, kaas oo jir ahaan ku jiifa serverka 100500.

cover

Waxaan ku darnaa hal nood oo dheeri ah nidaamkayaga qaab dhismeedka - jawiga kaydinta.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Hoos waxaa ku yaal jaantuska qaabeynta khasnadaha gobolka, waxaa jira ilaa 20 ka mid ah. Kuwani waa meelaha ay ku yaaliin khasnado iyo "qorraxdu", kuwaas oo kaydin kara taraafikada naftooda.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Tani waa kaydinta waxyaabaha ku jira miidhiyaha badan; ma jiro xogta isticmaale halkan lagu kaydiyo - muusik, muuqaal, sawiro.

Si loo go'aamiyo gobolka isticmaalaha, annagu waxaanu ururinay horgalayaasha shabakada BGP ee lagaga dhawaaqay gobolada. Xaaladda dib-u-dhac, waa inaan sidoo kale kala saarno xogta geoip-ka haddii aynaan ka heli karin IP-ga horgalayaasha. Waxaan ku go'aamineynaa gobolka IP-ga isticmaalaha. Koodhka, waxaan eegi karnaa hal ama dhowr gobol oo isticmaalaha - dhibcahaas oo uu ugu dhow yahay juquraafi ahaan.

Sidee u shaqeeyaan?

Waxaan tirinaa caannimada faylalka gobol ahaan. Waxaa jira tiro ka mid ah khasnadaha gobolka ee isticmaalaha ku yaal, iyo aqoonsiga faylka - waxaanu qaadnaa lamaanahan waxaanan kordhineynaa qiimeynta soo dejin kasta.

Isla mar ahaantaana, jinniyada - adeegyada gobollada - waqti ka waqti ayaa u yimaada API-ga oo leh: "Anigu waxaan ahay sidaas oo kale, waxaad i siisaa liiska faylasha ugu caansan gobolkayga oo aan weli igu jirin. ” API-gu waxa uu keenaa faylal badan oo lagu soocay qiimayn, daemon-ku soo dejiyo, geeyaan gobollada oo halkaas ka keenaa faylalka. Tani waa farqiga aasaasiga ah ee u dhexeeya pu/pp iyo Sun ee khasnadaha: waxay si toos ah u siinayaan faylka iyaga oo isla markiiba ah, xitaa haddii faylkani aanu ku jirin kaydka, oo kaydku marka hore soo dejiyo faylka laftiisa, ka dibna wuxuu bilaabaa inuu dib u soo celiyo.

Xaaladdan oo kale waxaan helnaa nuxurka u dhow isticmaalayaasha iyo fidinta culeyska shabakadda. Tusaale ahaan, kaliya khasnadda Moscow waxaan qaybinnaa wax ka badan 1 Tbit/s inta lagu jiro saacadaha ugu sarreeya.

Laakiin waxaa jira dhibaatooyin - kaydiye ma aha caag. Xogta aadka loo jecel yahay, mararka qaarkood ma jirto shabakad ku filan server gooni ah. Seerfarradayada kaydintayadu waa 40-50 Gbit/s, laakiin waxa jira waxyaabo si buuxda u xidhay kanaalkan. Waxaan u soconaa hirgelinta kaydinta in ka badan hal nuqul oo faylasha caanka ah ee gobolka. Waxaan rajeynayaa in aan hirgelin doono dhamaadka sanadka.

Waxaan eegnay dhismaha guud.

  • Adeegayaasha hore ee aqbalaya codsiyada
  • Waxay taageertaa codsiyada nidaamkaas.
  • Kaydinta ay u xidhan yihiin laba nooc oo wakiilo ah.
  • khasnado goboleed.

Maxaa ka maqan jaantuskan? Dabcan, database-yada aan ku kaydinno xogta.

Databases ama matoorada

Waxaan ugu yeernaa ma aha database-yada, laakiin matoorada - Matoorada, sababtoo ah ficil ahaan ma hayno database-yada guud ahaan dareenka la aqbali karo.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Tani waa cabbir lagama maarmaan ah. Tani waxay dhacday sababtoo ah 2008-2009, markii VK lahaa koritaanka qarxa ee caanka ah, mashruucu wuxuu si buuxda uga shaqeeyay MySQL iyo Memcache waxaana jiray dhibaatooyin. MySQL waxay jeclayd inay burburto oo ay kharribto faylalka, ka dib ma soo kabanayso, Memcachena si tartiib tartiib ah ayuu hoos ugu dhacay waxqabadka oo ay ahayd in dib loo bilaabo.

Waxaa soo baxday in mashruuca caanka ah ee sii kordhaya uu lahaa kayd joogto ah, kaas oo kharribaya xogta, iyo kayd, kaas oo hoos u dhacaya. Xaaladahan oo kale, way adag tahay in la horumariyo mashruuc koraya. Waxaa la go'aamiyay in la isku dayo in dib loo qoro waxyaabihii muhiimka ahaa ee mashruuca diiradda lagu saarayay baaskiiladayada.

Xalku waa lagu guulaystay. Waxaa jirtay fursad lagu sameeyo tan, iyo sidoo kale baahi aad u daran, sababtoo ah siyaabaha kale ee miisaanka looma helin wakhtigaas. Ma jirin farabadan xogta, NoSQL weli ma jirin, waxaa jiray kaliya MySQL, Memcache, PostrgreSQL - waana taas.

Hawlgalka caalamiga ah. Horumarka waxaa hogaaminayay kooxdayada horumarinta C wax walbana waxaa loo sameeyay si joogto ah. Iyadoo aan loo eegin matoorka, kulligood waxay lahaayeen ku dhawaad ​​qaab fayl isku mid ah oo lagu qoray saxanka, isla jaangooyooyin isku mid ah, calaamado la farsameeyay si la mid ah, waxayna u dhaqmeen qiyaas isku mid ah haddii ay dhacdo xaalado cidhiidhi ah iyo dhibaatooyin. Iyada oo kobaca matoorada, ay ku habboon tahay maamulayaasha inay ku shaqeeyaan nidaamka - ma jirto xayawaan u baahan in la ilaaliyo, waana inay dib u bartaan sida loo shaqeeyo xog kasta oo cusub oo dhinac saddexaad ah, taas oo suurtogalisay in si dhakhso ah oo habboon loo kordhiyo tiradooda.

Noocyada matoorada

Kooxdu waxay qoreen dhowr matooro. Waa kuwan qaar ka mid ah: saaxiib, tilmaamo, sawir, ipdb, xarfo, liisaska, logs, memcached, meowdb, news, nostradamus, sawir, liisaska muusiga, pmemcached, sandbox, search, kaydinta, jecelyahay, hawlaha,…

Hawl kasta oo u baahan qaab-dhismeed xog gaar ah ama hab-raac codsiyada aan caadiga ahayn, kooxda C waxay qoraan matoor cusub. Maxaa diidaya.

Waxaan leenahay matoor gooni ah memcated, kaas oo la mid ah mid caadi ah, laakiin leh farabadan oo wanaagsan, oo aan hoos u dhigin. Ma aha ClickHouse, laakiin sidoo kale way shaqeysaa. Si gooni ah loo heli karo pmmcached Waa memcashed joogto ah, kaas oo sidoo kale kaydin kara xogta diskka, sidoo kale, inta ku habboon RAM, si aanay u lumin xogta marka dib loo bilaabo. Waxaa jira matoor kala duwan oo loogu talagalay hawlo gaar ah: safafka, liisaska, jaantusyada - wax kasta oo mashruucayagu u baahan yahay.

Kooxaha

Marka laga eego dhinaca koodhka, looma baahna in laga fikiro mishiinnada ama kaydka xogta sida habab, hay'ado, ama tusaaleyaal. Koodhku wuxuu si gaar ah ula shaqeeyaa kooxo, oo wata kooxo matooro ah - hal nooc koox kasta. Aynu nidhaahno inay jirto koox la qariyay - waa uun koox mashiinno ah.

Koodhku uma baahna inuu ogaado goobta jireed, cabbirka, ama tirada adeegayaasha gabi ahaanba. Wuxuu tagaa kooxda isagoo isticmaalaya aqoonsi gaar ah.

Si ay tani u shaqeyso, waxaad u baahan tahay inaad ku darto hal qayb oo kale oo ku yaal inta u dhaxaysa koodka iyo matoorada - wakiil.

RPC wakiil

Wakiil isku xirka baska, kaas oo ku dhawaad ​​goobta oo dhan ay ku shaqeyso. Isla markaana aanu haysano ma jiro daah-fur adeeg - beddelkeeda, waxaa jira habayn loogu talagalay wakiilkan, kaas oo yaqaan meesha ay ku yaalliin dhammaan kooxaha iyo dhammaan jeexjeexyada kooxdan. Tani waa waxa ay admins sameeyaan.

Barnaamij-bixiyeyaashu ma daneeyaan haba yaraatee, meesha iyo waxa ay ku kacayso - waxay aadayaan kooxda. Tani waxay noo ogolaanaysaa wax badan. Marka la helo codsi, wakiilku wuxuu dib u jiheeyaa codsiga, isagoo ogaanaya meesha - iyada ayaa go'aamisa tan lafteeda.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Xaaladdan oo kale, wakiilku waa meesha laga ilaaliyo guuldarrada adeegga. Haddii engine qaar ka mid ah hoos u dhaco ama shil, markaas wakiilku wuu fahmayaa tan oo wuxuu uga jawaabaa si waafaqsan dhinaca macmiilka. Tani waxay kuu ogolaaneysaa inaad meesha ka saarto waqtiga - koodka ma sugin in mishiinka ka jawaabo, laakiin wuxuu fahamsan yahay in aanu shaqaynayn oo uu u baahan yahay inuu u dhaqmo si ka duwan. Koodhka waa in loo diyaariyaa xaqiiqda ah in xog ururintu aanay had iyo jeer shaqayn.

Hirgelin gaar ah

Mararka qaarkood waxaan weli dhab ahaantii rabnaa inaan helno nooc ka mid ah xalalka aan caadiga ahayn sida mishiinka. Isla mar ahaantaana, waxaa la go'aamiyay in aan la isticmaalin rpc-proxy-keena diyaarsan, oo si gaar ah loogu abuuray matooradayada, laakiin si loo sameeyo wakiil gaar ah hawsha.

MySQL, oo ​​aan wali ku hayno halkan iyo halkaas, waxaan u isticmaalnaa db-proxy, iyo ClickHouse - Kitchenhouse.

Waxay u shaqeysaa guud ahaan sidan oo kale. Waxa jira server gaar ah, waxa uu wadaa kPHP, Go, Python - guud ahaan, kood kasta oo isticmaali kara nidaamkayaga RPC. Koodhku wuxuu ku shaqeeyaa maxali ahaan wakiilka RPC - server kasta oo uu koodku ku yaal wuxuu wataa wakiilkiisa maxalliga ah. Marka la codsado, wakiilku wuu fahmayaa meesha la aadayo.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Haddii mid ka mid ah matoorka uu doonayo inuu u tago mid kale, xitaa haddii uu deris yahay, wuxuu soo maraa wakiil, sababtoo ah deriska waxaa laga yaabaa inuu ku jiro xarun kale oo xog ah. Matoorku waa inuusan ku tiirsanaanin ogaanshaha meesha wax kale oo aan ahayn laftiisa - tani waa xalkeena caadiga ah. Laakiin dabcan waxaa jira waxyaabo ka reeban :)

Tusaale TL-qorshe ah sida ay u shaqeeyaan dhammaan matoorada.

memcache.not_found                                = memcache.Value;
memcache.strvalue	value:string flags:int = memcache.Value;
memcache.addOrIncr key:string flags:int delay:int value:long = memcache.Value;

tasks.task
    fields_mask:#
    flags:int
    tag:%(Vector int)
    data:string
    id:fields_mask.0?long
    retries:fields_mask.1?int
    scheduled_time:fields_mask.2?int
    deadline:fields_mask.3?int
    = tasks.Task;
 
tasks.addTask type_name:string queue_id:%(Vector int) task:%tasks.Task = Long;

Kani waa borotokoolka binary, analoogga ugu dhow kaas oo ah protobuf. Nidaamku wuxuu qeexayaa goobo ikhtiyaari ah, noocyo kakan - kordhinta scalars-ku-dhisan, iyo weydiimaha. Wax walba waxay ku shaqeeyaan si waafaqsan borotokoolka.

RPC ka badan TL ka badan TCP/UDP… UDP?

Waxaan leenahay nidaamka RPC ee fulinta codsiyada matoorka ee ku socda nidaamka TL. Tani waxay dhammaan ka shaqeysaa isku xirka TCP/UDP. TCP waa la fahmi karo, laakiin maxaan ugu baahanahay UDP inta badan?

UDP way caawisaa Iska ilaali dhibaatada tirada badan ee isku xirka u dhexeeya server-yada. Haddii server kasta uu leeyahay wakiil RPC ah iyo, guud ahaan, waxay aadi kartaa matoor kasta, markaa waxaa jira tobanaan kun oo xiriir TCP ah server kasta. rar baa jira, laakiin faa'iido ma leh. Xaaladda UDP dhibkani ma jiro.

Ma jiro gacan qaad TCP ah oo joogto ah. Tani waa dhibaato caadi ah: marka mishiin cusub ama server cusub la bilaabo, xiriiro badan oo TCP ah ayaa la sameeyaa hal mar. Codsiyada yaryar ee fudud, tusaale ahaan, culayska UDP, dhammaan xidhiidhka ka dhexeeya koodka iyo mishiinka waa laba baakidh oo UDP ah: mid hal dhinac u duulaya, ka labaadna jihada kale. Hal safar oo wareeg ah - iyo koodhka ayaa jawaab ka helay mishiinka iyada oo aan la gacan qaadin.

Haa, dhammaan way shaqeeyaan oo leh boqolkiiba aad u yar ee luminta baakidhka. Nidaamku wuxuu taageero u leeyahay dib u gudbinta iyo waqtiyada, laakiin haddii aan wax badan lumino, waxaan heli doonnaa ku dhawaad ​​TCP, taas oo aan faa'iido lahayn. UDP kuma wadno badaha.

Waxaan haynaa kumanaan server ah, nidaamkuna waa isku mid: xirmo matooro ah ayaa lagu rakibay server kasta oo jireed. Waxay u badan yihiin hal xadhig si ay u ordaan sida ugu dhakhsaha badan iyada oo aan la xannibin, waxaana loo qaybiyaa xalal hal-stringed ah. Isla mar ahaantaana, ma hayno wax ka badan oo la isku halleyn karo oo ka badan matooradan, iyo feejignaan badan ayaa la bixiyaa kaydinta xogta joogtada ah.

Kaydinta xogta joogtada ah

Matoorada waxay qoraan binlogs. Binlog-ku waa fayl dhamaadka ah kaas oo lagu daro dhacdada isbeddelka gobolka ama xogta. Xalalka kala duwan waxaa loo yaqaan si kala duwan: log binary, WAL, AOF, laakiin mabda'a waa isku mid.

Si looga hortago in mishiinka uu dib u akhriyo dhammaan binlog-ga sanado badan marka dib loo bilaabo, matoorada ayaa qoraya sawir-qaadis - xaaladda hadda jirta. Haddii loo baahdo, marka hore way ka akhriyaan, ka dibna waxay dhameeyaan akhrinta binlog-ga. Dhammaan binlogs-yada waxay ku qoran yihiin qaab binary isku mid ah - marka loo eego nidaamka TL, si ay maamulayaashu ugu maamulaan si isku mid ah qalabkooda. Ma jirto baahi sidaas oo kale ah oo sawir-qaadis ah. Waxa jira madax guud oo tilmaamaya sawirkiisu int yahay, sixirka mishiinka, iyo jidhka aan cidna muhiim u ahayn. Tani waa dhibka matoorka duubay sawirka sawirka.

Waxaan si dhakhso ah u qeexi doonaa mabda'a hawlgalka. Waxa jira server uu matoorku ku shaqeeyo. Wuxuu furay boog cusub oo madhan oo wax lagu qoro wuxuuna qoray dhacdo loogu beddelayo.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Mar marka qaarkood, ama wuxuu go'aansadaa inuu sawir qaado laftiisa, ama wuxuu helayaa calaamad. Seerfarku waxa uu abuuraa fayl cusub, waxa uu ku qoraa xaaladiisa oo dhan, waxa uu ku dhejiyaa cabbirka binlog-ga ee hadda jira - offset - dhammaadka faylka, oo sii wata qorista si dheeraad ah. Binlog cusub lama abuurin

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Mar marka qaarkood, marka mishiinku dib u bilaabo, waxaa jiri doona labadaba binlog iyo sawir sawir oo saxanka ah. Matoorku wuxuu akhriyaa sawirka oo dhan wuxuuna kor u qaadayaa xaaladdiisa meel cayiman.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Wuxuu akhriyaa booska markaas jiray sawirka sawirka la sameeyay iyo cabbirka binlog-ga.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Wuxuu akhriyaa dhammaadka binlog-ga si uu u helo xaaladda hadda jirta oo uu sii wado qorista dhacdooyin kale. Tani waa qorshe fudud, dhammaan mishiinnadayadu waxay u shaqeeyaan si waafaqsan.

Ku celcelinta xogta

Natiijo ahaan, ku celcelinta xogta ee our bayaan ku salaysan - Waxaan ku qornaa binlog-ga wax bogag ah ma beddelo, laakiin waa kuwaas beddelo codsiyada. Aad ula mid ah waxa ka soo baxa shabakada, kaliya wax yar la bedelay.

Nidaam isku mid ah looma isticmaalo oo kaliya ku celcelinta, laakiin sidoo kale si loo abuuro kayd. Waxaan leenahay matoor - sayid qoraal ah oo wax u qora binlog-ga. Meel kasta oo kale oo ay maamulayaashu dejiyeen, binlog-gan waa la koobiyeeyay, waana taas - waxaan haynaa kayd.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Hadii loo baahdo nuqul akhrintaSi loo dhimo culayska akhriska CPU, mishiinka wax-akhriska ayaa si fudud loo bilaabay, kaas oo akhriya dhamaadka binlog-ga oo ku fulinaya amaradan gudaha.

Dib u dhaca halkan waa mid aad u yar, waxaana suurtagal ah in la ogaado inta uu le'eg yahay nuqul ka dambeeya sayidkiisa.

Qaybinta xogta ee wakiilka RPC

Sidee buu sharding u shaqeeyaa? Sidee ayuu wakiilku u fahmayaa kooxda jeexjeexa loo dirayo? Koodhku ma odhanayo: "U dir 15 shards!" - maya, tan waxaa sameeya wakiilka.

Nidaamka ugu fudud ayaa ugu horreeya - lambarka ugu horreeya ee codsiga.

get(photo100_500) => 100 % N.

Tani waxay tusaale u tahay hab-maamuuska qoraalka ee fudud, laakiin, dabcan, su'aaluhu waxay noqon karaan kuwo adag oo habaysan. Tusaalaha wuxuu qaadanayaa lambarka koowaad ee weydiinta iyo inta soo hartay marka loo qeybiyo cabbirka kutlada.

Tani waa mid faa'iido leh marka aan rabno in aan helno xogta goobta hal hay'ad. Aynu nidhaahno 100 waa isticmaale ama aqoonsi kooxeed, waxaanan rabnaa in dhammaan xogta hal hay'ad ay ku jirto hal shard si loo helo weydiimo adag.

Haddi aynaan dan ka lahayn sida codsiyada loogu faafiyo kooxda, waxa jira ikhtiyaar kale - xabashida xadhkaha oo dhan.

hash(photo100_500) => 3539886280 % N

Waxaan sidoo kale helnaa xashiishka, inta ka hartay qaybta iyo lambarka jeexjeexa.

Labadan ikhtiyaari waxay shaqeeyaan kaliya haddii aan u diyaargarowno xaqiiqda ah in marka aan kordhinno xajmiga kooxda, aan kala qaybin doono ama kordhin doono dhowr jeer. Tusaale ahaan, waxaan haysanay 16 shards, ma haysanno wax ku filan, waxaan rabnaa wax badan - waxaan si badbaado leh u heli karnaa 32 iyada oo aan la joogin. Haddii aan rabno inaan kordhinno tirooyin aan badnayn, waxaa jiri doona waqti hoos u dhac, sababtoo ah ma awoodi doono inaan si sax ah u kala qaybinno wax kasta oo aan khasaare lahayn. Doorashooyinkani waa kuwo faa'iido leh, laakiin had iyo jeer maaha.

Haddii aan u baahanahay in aan ku darno ama ka saarno tiro aan sharci ahayn oo server ah, waan isticmaalnaa Xarigga joogtada ah ee giraanta a la Ketama. Laakin isla mar ahaantaana, waxaan si buuxda u luminaa goobta xogta; waa in aan ku biirno codsiga kooxda kutlada si qayb kasta ay u soo celiso jawaabteeda yar, ka dibna ku darso jawaabaha wakiilka.

Waxaa jira codsiyo gaar ah. Waxay u egtahay sidan: Wakiilka RPC wuxuu helayaa codsiga, wuxuu go'aamiyaa kutlada la aadayo wuxuuna go'aamiyaa jeexjeexyada. Markaa waxa jira sayidyada wax-qorista, ama, haddii kooxdu leedahay taageero nuqul ah, waxay u soo dirtaa nuqul marka la dalbado. Wakiilku wuxuu sameeyaa waxaas oo dhan.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Logs

Dhowr siyaabood ayaan u qornaa diiwaanka. Midda ugu cad oo fudud waa u qor logs memcache.

ring-buffer: prefix.idx = line

Waxaa jira horgale muhiim ah - magaca log, xariiq, waxaana jira cabbirka qoraalkan - tirada xariiqyada. Waxaan ka qaadnaa lambar random ka 0 ilaa tirada khadadka laga jaray 1. Furaha memcache waa horgale ku lifaaqan lambarkan random. Waxaan keydineynaa khadka log iyo waqtiga hadda qiimaha.

Marka ay lagama maarmaan noqoto in la akhriyo qoraallada, waxaan fulinaa Multi Hel dhammaan furayaasha, oo lagu kala soocaa waqtiga, oo markaa hel log-soo-saarka wakhtiga dhabta ah. Nidaamka waxaa loo isticmaalaa marka aad u baahan tahay inaad wax ku saxdo wax soo saarka wakhtiga dhabta ah, adigoon waxba jebin, adigoon joojin ama u oggolaan gaadiidka mashiinnada kale, laakiin log this ma sii jiro muddo dheer.

Kaydinta la isku halleyn karo ee lo'da waxaan haysanaa matoor log-mashiinka. Tani waa sababta saxda ah ee loo abuuray oo si weyn loogu isticmaalo tiro aad u badan oo kooxo ah. Kooxda ugu weyn ee aan ogahay waxay kaydisaa 600 TB oo geedo geedo ah.

Matoorku aad buu u da' weyn yahay, waxaa jira kooxo horay u jiray 6-7 sano. Waxaa jira dhibaatooyin iyada ah oo aan isku dayeyno inaan xallino, tusaale ahaan, waxaan bilownay inaan si firfircoon u isticmaalno ClickHouse si aan u kaydinno diiwaannada.

Ururinta diiwaannada gudaha ClickHouse

Jaantuskani waxa uu tusinayaa sida aan ugu lugeyno matooradayada.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Waxaa jira kood ku socda gudaha gudaha RPC una sii mara RPC-proxy, oo waxay fahmeysaa meesha loo aado mishiinka. Haddii aan rabno inaan ku qorno diiwaannada ClickHouse, waxaan u baahanahay inaan bedelno laba qaybood oo nidaamkan ah:

  • Ku beddel matoorka qaar ClickHouse;
  • Beddel wakiilka RPC, kaas oo aan geli karin ClickHouse, oo leh xoogaa xal ah, iyo iyada oo loo marayo RPC.

Matoorku waa sahlan yahay - waxaan ku bedelnaa server ama koox server ah oo leh ClickHouse.

Oo si aad u tagto ClickHouse, waanu samaynay KittenHouse. Haddii aan si toos ah uga tagno KittenHouse una aadno ClickHouse, ma qabsan doonto. Xataa codsi la'aan, waxay ku kordhinaysaa isku xirka HTTP ee tiro badan oo mashiinno ah. Si uu nidaamku u shaqeeyo, server-ka leh ClickHouse wakiilka reverse local ayaa kor loo qaaday, taas oo u qoran si ay u adkeysan karto mugga isku xirka loo baahan yahay. Waxa kale oo ay kaydin kartaa xogta lafteeda si la isku halleyn karo.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Mararka qaarkood ma rabno inaan ku hirgelino nidaamka RPC xalalka aan caadiga ahayn, tusaale ahaan, nginx. Sidaa darteed, KittenHouse waxay awood u leedahay inay ka hesho diiwaannada UDP.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Haddii soo-diraha iyo qaataha diiwaanadu ay ku shaqeeyaan mashiinka isku midka ah, markaa suurtagalnimada luminta baakidhka UDP ee martida deegaanka waa mid aad u hooseeya. Sida tanaasulka u dhexeeya baahida loo qabo hirgelinta RPC ee xal dhinac saddexaad ah iyo isku halaynta, waxaan si fudud u isticmaalnaa UDP diraya. Dib ayaan ugu soo laaban doonaa qorshahan.

Kormeerka

Waxaanu haynaa laba nooc oo logus ah: kuwa ay maamulayaashu ku ururiyaan serfaradahooda iyo kuwa ay soo-saarayaashu ka soo qoreen koodka. Waxay u dhigmaan laba nooc oo cabbir: nidaamka iyo alaabta.

Qiyaasta nidaamka

Waxay ka shaqeysaa dhammaan server-yadayada netdata, Kaas oo ururiya tirakoobka una soo dira Kaarboon graphite. Sidaa darteed, ClickHouse waxa loo istcimaalayaa hab kaydin ahaan, ee looma isticmaalo tusaale ahaan Whisper. Haddii loo baahdo, waxaad si toos ah uga akhrin kartaa ClickHouse, ama isticmaal Grafana ee cabbirka, garaafyada iyo warbixinnada. Horumariyeyaal ahaan, waxaan haysanaa galaangal ku filan Netdata iyo Grafana.

Qiyaasaha alaabta

Si ku habboon, waxaan u qornay waxyaabo badan. Tusaale ahaan, waxaa jira hawlo shaqo oo caadi ah oo kuu oggolaanaya inaad ku qorto tirooyinka, qiyamka gaarka ah ee tirakoobka, kuwaas oo loo diro meel dheeraad ah.

statlogsCountEvent   ( ‘stat_name’,            $key1, $key2, …)
statlogsUniqueCount ( ‘stat_name’, $uid,    $key1, $key2, …)
statlogsValuetEvent  ( ‘stat_name’, $value, $key1, $key2, …)

$stats = statlogsStatData($params)

Ka dib, waxaan isticmaali karnaa kala-soocidda iyo kooxaynta filtarrada oo aan samayno wax kasta oo aan ka rabno tirakoobka - dhis garaafyo, habeyno Watchdogs.

Waxaan u qornaa si aad ah qiyaaso badan tirada dhacdooyinka waa 600 bilyan ilaa 1 trillion maalintii. Si kastaba ha ahaatee, waxaan rabnaa inaan sii haysanno ugu yaraan dhowr sanosi loo fahmo isbeddellada cabbirrada. Isku soo wada duuboo waa dhibaato weyn oo aynaan weli xalin. Waxaan kuu sheegi doonaa sida ay u shaqeyneysay dhowrkii sano ee la soo dhaafay.

Waxaan leenahay hawlo qoraya cabbiradan memcache gudahasi loo dhimo tirada wax gelinta. Mar muddo gaaban gudaheed ayaa gudaha laga bilaabay stats-daemon ururiyaa dhammaan diiwaannada. Marka xigta, jinnigu wuxuu ku daraa cabbirada laba lakab oo server ah qoryo-urure, kaas oo isku geynaya tirokoobyada mashiinadayada badan si lakabka ka dambeeya uusan u dhiman.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Haddii loo baahdo, waxaan si toos ah u qori karnaa log-colletors.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Laakin si toos ah wax looga qoro koodka aruuriyayaasha, ka gudubka stas-daemom, waa xal liidata oo la miisaami karo sababtoo ah waxay kordhisaa culeyska aruuriyaha. Xalku wuxuu ku habboon yahay kaliya haddii sabab qaar ka mid ah aynaan kor u qaadi karin memcache stats-daemon mashiinka, ama way burburtay oo si toos ah ayaan u tagnay.

Marka xigta, Logu-ruuriyeyaashu waxay ku daraan tirakoobka meowDB - Kani waa xog-ururintayada, kaas oo waliba kaydin kara cabbirada.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Markaa waxaan samayn karnaa xulashooyinka binary "ku dhow-SQL" ee koodhka.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Tijaabo

Xagaagii 2018, waxaanu haysanay hackathon gudaha ah, fikradda ayaa soo baxday in la isku dayo in la beddelo qaybta cas ee jaantuska wax lagu kaydin karo mitirka ClickHouse. Waxaan ku haynaa diiwaannada ClickHouse - maxaad u tijaabin weyday?

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Waxaan haysanay qorshe qoraallo ku qoray KittenHouse.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Waanu go'aansanay ku dar "* Guri" kale jaantuska, kaas oo si sax ah u heli doona cabbirada qaabka sida koodkayaga ugu qorayo UDP. Markaa kani *gurigan waxa uu u rogaa in la geliyo, sida loga, oo ay KittenHouse fahanto. Wuxuu si fiican u gaarsiin karaa diiwaanadan ClickHouse, kaasoo awood u leh inuu akhriyo.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Nidaamka leh memcache, stats-daemon iyo logs-collectors database ayaa lagu bedelay kan.

FAQ ku saabsan dhismaha iyo shaqada VKontakte

Nidaamka leh memcache, stats-daemon iyo logs-collectors database ayaa lagu bedelay kan.

  • Waxaa jira diritaanka koodka halkan, kaas oo ku qoran gudaha StatsHouse.
  • StatsHouse waxay ku qortaa cabbirada UDP, oo horeba loogu beddelay gelinnada SQL, KittenHouse ee dufcadaha.
  • KittenHouse waxay u dirtaa ClickHouse.
  • Haddii aan rabno inaan akhrino, ka dib waxaan akhrineynaa iyaga oo ka gudbaya StatsHouse - si toos ah ClickHouse anagoo adeegsanayna SQL caadiga ah.

Miyay weli tahay tijaabo, laakiin waan jecelnahay sida ay wax u dhacaan. Haddii aan hagaajino dhibaatooyinka nidaamka, markaa waxaa laga yaabaa inaan u beddelno gebi ahaanba. Shakhsi ahaan, waxaan rajeynayaa.

Qorshaha ma badbaadiso birta. Serferyo yar ayaa loo baahan yahay, stats-daemons-ka maxalliga ah iyo logs-collectors looma baahna, laakiin ClickHouse waxay u baahan tahay server ka weyn kuwa nidaamka hadda jira. Server-yo yar ayaa loo baahan yahay, laakiin waa inay noqdaan kuwo qaali ah oo ka xoog badan.

La geeyo

Marka hore, aan eegno dejinta PHP. Waxaan ku horumarineynaa gudaha git: isticmaal GitLab и TeamCity si loo geeyo. Laamaha horumarinta waxaa lagu biiraa laanta sare, laga bilaabo sayidkii si loo tijaabiyo waxay ku biiraan diyaarinta, iyo ka-soo-saarka ilaa wax-soo-saarka.

Ka hor inta aan la dirin, laanta wax soo saarka ee hadda jirta iyo tii hore ayaa la qaadaa, faylasha kala duwan ayaa loo tixgeliyaa iyaga - isbeddelada: la abuuray, la tirtiray, bedelay. Isbeddelkan waxa lagu diiwaan geliyay binlog ee mishiinka koobiyaynta gaarka ah, kaas oo si degdeg ah ugu beddeli kara isbeddellada ku dhaca dhammaan server-yadayada. Waxa halkan loo isticmaalo si toos ah uma koobiyeynayso, laakiin ku celcelinta xanta, marka mid ka mid ah server-ku u soo diro isbeddellada deriska ugu dhow, kuwa deriska, iyo wixii la mid ah. Tani waxay kuu ogolaanaysaa inaad ku cusboonaysiiso koodka tobaneeyo iyo halbeeg ilbiriqsi oo dhan markabka. Marka uu isbeddelku gaadho nuqulka deegaanka, waxa uu ku dabaqayaa balastarradan nidaamka faylka deegaanka. Dib-u-soo-celinta sidoo kale waxaa loo fuliyaa si waafaqsan nidaam isku mid ah.

Waxaan sidoo kale geynaa kPHP wax badan waxayna sidoo kale leedahay horumarkeeda git sida ku cad jaantuska sare. Tan iyo tan HTTP binary server, markaa ma soo saari karno kala duwanaansho - binary-ga sii deynta ayaa miisaankeedu yahay boqollaal MB. Sidaa darteed, waxaa jira ikhtiyaar kale halkan - nooca ayaa loo qoray binlog koobifast. Dhisme kastaa wuu kordhaa, inta lagu guda jiro dib-u-celinta sidoo kale wuu kordhiyaa. Nooca lagu soo koobay server-yada. Koobiyaasha maxalliga ahi waxay arkaan in nooc cusub uu soo galay binlog-ga, isla markaana isla ku celcelinta xanta ah waxay u qaadanayaan nuqulkii ugu dambeeyay ee binary-ga, iyaga oo aan daalin server-kayaga, laakiin si taxadar leh u faafinaya culeyska shabakadda. Maxaa xiga dib u bilaabasho qurux badan nooca cusub.

Matooradayada, kuwaas oo sidoo kale asal ahaan binaries ah, nidaamku aad buu ula mid yahay:

  • laanta sare ee git;
  • binary in .deb;
  • nooca waxa loo qoray binlog copyfast;
  • lagu soo koobay server-yada;
  • server-ku wuxuu soo saarayaa .dep cusub;
  • dpkg -i;
  • si qurux badan dib ugu soo laabashada nooc cusub.

Farqiga u dhexeeya ayaa ah in binary-keena uu ku xiran yahay kaydka .deb, iyo marka ay bamgareeyaan dpkg -i waxaa lagu dhejiyaa nidaamka. Waa maxay sababta kPHP loo geeyay sidii binary, oo matoorada loo geeyay sidii dpkg ahaan? Sidii bay ku dhacday. Way shaqeysaa - ha taaban.

Xiriiro waxtar leh:

Alexei Akulovich waa mid ka mid ah kuwa, oo qayb ka ah guddiga barnaamijka, caawiya PHP Russia May 17-keeda waxa ay noqon doontaa dhacdadii ugu waynayd ee horumariyayasha PHP waqtiyadii dhawaa. Fiiri waxa aan haysano PC qabow, waa maxay ku hadla (laba ka mid ah ayaa horumarinaya xudunta PHP!) - waxay u muuqataa wax aadan ka maqnaan karin haddii aad qorto PHP.

Source: www.habr.com

Add a comment