FAQ mo te hoahoanga me te mahi a VKontakte

Ko te hitori o te hanganga o VKontakte kei runga Wikipedia, na Pavel ano i korero. Te ahua nei kua mohio te katoa ki a ia. Mo nga mea o roto, te hoahoanga me te hanganga o te waahi kei runga HighLoad++ Pavel i korero mai ki ahau i te tau 2010. He maha nga kaitoro kua pakaru mai i tera wa, no reira ka whakahouhia e matou nga korero: ka wehea e matou, ka tangohia nga roto, ka paunatia, ka titiro ki te taputapu VK mai i te tirohanga hangarau.

FAQ mo te hoahoanga me te mahi a VKontakte

Alexey Akulovich (AterCattus) kaiwhakawhanake backend i roto i te kapa VKontakte. Ko te tuhinga o tenei purongo he whakautu ngatahi ki nga patai maha mo te whakahaerenga o te papa, nga hanganga, nga kaitoro me te taunekeneke i waenga i a raatau, engari kaua mo te whanaketanga, ara. mo te rino. Ka wehea, mo nga papaunga raraunga me nga mea kei a VK, mo te kohi pororakau me te aro turuki i te kaupapa katoa. Nga korero i raro i te tapahi.



Neke atu i te wha tau e mahi ana au i nga momo mahi katoa e pa ana ki te tuara.

  • Te tuku ake, te rokiroki, te tukatuka, te tohatoha i nga panui: te ataata, te rere ora, te ororongo, nga whakaahua, nga tuhinga.
  • Hanganga, papaaho, aroturuki kaiwhakawhanake, raarangi, keteroki rohe, CDN, kawa RPC rangatira.
  • Te whakauru ki nga ratonga o waho: panui panui, panui hononga o waho, whangai RSS.
  • Te awhina i nga hoa mahi ki nga momo patai, ko nga whakautu e hiahia ana kia ruku ki te waehere kore mohiotia.

I roto i tenei waa, he maha nga waahanga o te waahi kei a au. E hiahia ana ahau ki te whakapuaki i tenei wheako.

Te hoahoanga whanui

Ko nga mea katoa, pera i nga wa o mua, ka tiimata mai i te kaimau, i te roopu roopu ranei e whakaae ana ki nga tono.

Tūmau mua

Ka whakaaehia e te tūmau o mua nga tono ma te HTTPS, RTMP me te WSS.

HTTPS - he tono enei mo nga putanga tukutuku matua me te waea pūkoro o te pae: vk.com me m.vk.com, me etahi atu kiritaki whai mana me te kore mana o to tatou API: kiritaki waea, karere. He powhiri ta matou RTMP-nga waka mo nga haapurorotanga Ora me nga kaitoro o mua motuhake me te WSS- hononga mo Streaming API.

Mo te HTTPS me te WSS i runga i nga kaitoro he utu nginx. Mo nga panui RTMP, ina tata nei i huri matou ki ta matou ake otinga kive, engari kei tua atu i te waahi o te purongo. Mo te whakararu i te he, ka panuihia e enei kaitoro nga wahitau IP noa me te mahi i roto i nga roopu na mena ka raru tetahi o nga kaitoro, kaore e ngaro nga tono a nga kaiwhakamahi. Mo te HTTPS me te WSS, ka whakamuna enei tuunga waka ki te kawe i tetahi waahanga o te utaina PTM ki runga i a ratou ano.

Kaore matou e korero atu mo te WSS me te RTMP, engari mo nga tono HTTPS paerewa anake, e hono ana ki te kaupapa tukutuku.

Tuhinga

Kei muri o mua ko te nuinga o nga wa e noho ana nga kaitoro. Ka tukatukahia e ratou nga tono ka whakawhiwhia e te kaitoro o mua mai i nga kaihoko.

tenei nga tūmau kPHP, kei te whakahaeretia te daemon HTTP, na te mea kua wetemuna kē te HTTPS. Ko te kPHP he tūmau e rere ana tauira prefork: ka timata i te mahi matua, te tini o nga mahi a nga tamariki, ka tuku i nga turanga whakarongo ki a ratou ka whakahaere i a raatau tono. I tenei keehi, kaore nga tukanga e timata ano i waenga i ia tono mai i te kaiwhakamahi, engari me tautuhi noa i to raatau ahua ki te ahua kore-uara taketake - tono i muri i te tono, kaua ki te timata ano.

Tohatoha utaina

Ko o maatau tuara katoa ehara i te puna nui o nga miihini ka taea te whakahaere i tetahi tono. Tatou ratou wehea ki nga roopu motuhake: whānui, pūkoro, api, ataata, whakaari... Ko te raruraru i runga i te roopu miihini motuhake kaore e pa ki etahi atu. Mena he raruraru me te ataata, ko te kaiwhakamahi e whakarongo ana ki te puoro kaore e mohio mo nga raruraru. Ko tehea o muri ki te tuku i te tono ka whakatauhia e te nginx kei mua i runga i te whirihora.

Kohikohi ine me te whakataurite

Kia mohio ai tatou ki te maha o nga motuka e tika ana kia mau ki ia roopu, ko tatou kaua e whakawhirinaki ki te QPS. He rereke nga pito o muri, he rereke nga tono, he rereke te uaua o ia tono ki te tatau QPS. No reira tatou mahi matou ki te ariā o te kawenga i runga i te tūmau i te katoa - i runga i te PTM me te perf.

Kei a matou nga mano o nga kaitoro pera. Ka whakahaerehia e ia tūmau tinana he roopu kPHP hei hangarua i nga matua katoa (na te mea he miro kotahi te kPHP).

Tūmau Ihirangi

Ko te CS, ko te Kaiwhakahaere Ihirangi ranei he rokiroki. Ko te CS he tūmau e pupuri ana i nga konae me te whakahaere ano i nga konae kua tukuake me nga momo mahi tukutahi papamuri katoa e tukuna ana e te pae tukutuku matua ki a ia.

Kei a matou nga mano tini o nga tūmau tinana e penapena ana i nga konae. He pai nga kaiwhakamahi ki te tuku ake i nga konae, a he pai ki a matou te penapena me te tiri. Ko etahi o enei tuunga kua katia e nga pu/pp motuhake.

pu/pp

Mena ka whakatuwherahia e koe te ripa whatunga ki VK, ka kite koe i te pu/pp.

FAQ mo te hoahoanga me te mahi a VKontakte

He aha te pu/pp? Mena ka kati tatou i tetahi tūmau i muri i tetahi, ka rua nga whiringa mo te tuku me te tango i tetahi konae ki te tūmau kua katia: tika i roto i http://cs100500.userapi.com/path ranei mā te tūmau takawaenga - http://pu.vk.com/c100500/path.

Ko Pu te ingoa o mua mo te tuku whakaahua, ko te pp he takawaenga whakaahua. Arā, ko tetahi tūmau mo te tuku whakaahua, ko tetahi mo te tuku. Inaianei ehara nga whakaahua anake ka utaina, engari kua mau tonu te ingoa.

Ko enei tūmau whakamutua nga waahi HTTPSki te tango i te pikaunga pūtukatuka i te rokiroki. I tua atu, i te mea ka tukatukahia nga konae kaiwhakamahi ki runga i enei tuunga, ko te iti ake o nga korero tairongo e rongoa ana i runga i enei miihini, ka pai ake. Hei tauira, nga taviri whakamunatanga HTTPS.

I te mea kua katia nga miihini e etahi atu miihini, ka taea e maatau te kore e hoatu ki a raatau nga IP o waho "ma", a hoatu "hina". I tenei ara i penapenahia e matou i runga i te puna IP me te oati ki te tiaki i nga miihini mai i te uru ki waho - karekau he IP hei uru atu ki roto.

Te kaha ki runga i nga IP tiritahi. I runga i te ahua o te he, he rite tonu te mahi o te kaupapa - he maha nga kaiwhakarato tinana he IP tinana noa, a ko nga taputapu kei mua i a raatau ka whiriwhiri ki hea ka tukuna te tono. Ka korero ahau mo etahi atu whiringa i muri mai.

Ko te kaupapa tautohetohe ko tera i tenei keehi he iti ake nga hononga a te kiritaki. Mena he rite tonu te IP mo nga miihini maha - me te kaihautu kotahi: pu.vk.com, pp.vk.com ranei, he rohe to te kaitirotiro kiritaki ki te maha o nga tono tukutahi ki tetahi kaihautu. Engari i te wa o te HTTP/2 puta noa, ka whakapono ahau kua kore tenei e tino whai kiko.

Ko te tino kino o te kaupapa ko te tika papua nga waka katoa, ka haere ki te rokiroki, ma tetahi atu tūmau. I te mea ka pupuhi matou i nga waka i roto i nga miihini, kaore e taea e matou te pupuhi i nga waka taumaha, hei tauira, ataata, ma te whakamahi i te kaupapa ano. Ka tukuna tika - he hononga hono motuhake mo nga rokiroki motuhake mo te ataata. Ka tukuna e matou nga ihirangi mama ake ma te takawaenga.

Kare i roa i mua ka whiwhi matou i te putanga pai ake o te takawaenga. Inaianei ka korerotia e ahau ki a koe he pehea te rereke o nga mea noa me te aha e tika ai tenei.

Sun

I te marama o Hepetema 2017, Oracle, nana i hoko a Sun, i pana te tini o nga kaimahi o te Sun. Ka taea e matou te kii i tenei wa kua mutu te kamupene. I te wa e whiriwhiri ana i tetahi ingoa mo te punaha hou, i whakatau a matou kaiwhakahaere ki te whakanui i te maharatanga o tenei kamupene me te whakaingoa i te punaha hou ko Sun. I roto ia tatou ka karanga noa tatou ia ia "ra".

FAQ mo te hoahoanga me te mahi a VKontakte

pp etahi raruraru. Kotahi IP mo ia roopu - keteroki koretake. He maha nga kaiwhakarato tinana e tiritiri ana i tetahi wahitau IP noa, a kaore he huarahi hei whakahaere ko wai te tūmau ka haere te tono. Na reira, ki te haere mai nga kaiwhakamahi rereke mo te konae kotahi, mena he keteroki kei runga i enei tuunga, ka mutu te konae ki roto i te keteroki o ia tūmau. He kaupapa tino koretake tenei, engari kaore e taea te mahi.

No reira - e kore e taea e matou te wehewehe i nga ihirangi, no te mea kaore e taea e matou te kowhiri i tetahi tūmau motuhake mo tenei roopu - he IP noa to ratou. Mo etahi take o roto kei a matou ano kare i taea te whakauru i aua tumau ki nga rohe. I tu ratou i St. Petersburg anake.

Na te ra, i hurihia e matou te punaha whiriwhiri. Inaianei kei a tatou ararere anycast: ararere hihiri, anycast, daemon taki-whaiaro. Kei ia tūmau tana ake IP, engari he kupengaroto noa. Kua whirihorahia nga mea katoa ki te rahua tetahi o nga tūmau, ka horahia aunoatia te waka puta noa i era atu tūmau o te roopu kotahi. Inaianei ka taea te kowhiri i tetahi tūmau motuhake, kaore he keteroki nui, me te pono kaore i pa.

Tautoko taumaha. Inaianei ka taea e taatau ki te whakauru i nga miihini o te mana rereke ka hiahiatia, me te mea he raru mo te wa poto, whakarereke i nga taumaha o nga "ra" mahi ki te whakaiti i te kawenga ki runga, kia "okia" ka timata ano te mahi.

Tirihia ma te id ihirangi. He mea rorirori e pa ana ki te tiritiri: ko te nuinga o nga wa ka tihorea e matou nga ihirangi kia haere nga kaiwhakamahi rereke ki te konae kotahi ma te "ra" kotahi kia whai keteroki noa.

I whakarewahia e matou te tono "Clover". He patapatai ipurangi tenei i roto i te haapurororaa ora, ka patai te kaihautu i nga patai me te whakautu a nga kaiwhakamahi i roto i te waa tuuturu, ma te whiriwhiri i nga whiringa. Kei te taupānga he korerorero ka taea e nga kaiwhakamahi te korerorero. Ka taea te hono atu ki te haapurororaa neke atu i te 100 mano tangata. Ka tuhi katoa ratou i nga karere ka tukuna ki nga kaiuru katoa, ka tae mai he avatar me te karere. Mena 100 mano nga tangata ka haere mai mo te avatar kotahi i te "ra", katahi ka huri i muri i te kapua.

Kia kaha ki te tu atu i nga pakaru o nga tono mo te konae ano, mo etahi momo ihirangi ka huri tatou ki te kaupapa poauau e horahia ana nga konae puta noa i nga "ra" e waatea ana i te rohe.

Ra mai i roto

Takawaenga whakamuri i runga i te nginx, keteroki i roto i te RAM, i runga ranei i nga kōpae Optane/NVMe tere. Tauira: http://sun4-2.userapi.com/c100500/path — he hononga ki te “ra”, kei roto i te rohe tuawha, te roopu tūmau tuarua. Ka kati i te konae ara, kei runga i te tūmau 100500.

cover

Ka taapirihia e matou tetahi atu pona ki ta matou kaupapa hoahoanga - te taiao keteroki.

FAQ mo te hoahoanga me te mahi a VKontakte

Kei raro ko te hoahoa tahora keteroki rohe, e 20 pea o ratou. Koinei nga waahi kei reira nga keteroki me nga "ra", ka taea te huna i nga waka i roto ia ratou.

FAQ mo te hoahoanga me te mahi a VKontakte

He keteroki tenei o nga ihirangi rongorau; karekau he raraunga kaiwhakamahi kei te rongoa i konei - he puoro, ataata, whakaahua anake.

Ki te whakatau i te rohe o te kaiwhakamahi, matou ka kohia e matou nga tohu whatunga BGP i panuitia ki nga rohe. I roto i te take o te takahuri, me wetewete ano tatou i te patengi raraunga geoip ki te kore e kitea e tatou te IP ma nga tohu. Ka whakatauhia e matou te rohe ma te IP o te kaiwhakamahi. I roto i te waehere, ka taea e tatou te titiro ki tetahi, neke atu ranei nga rohe o te kaiwhakamahi - nga tohu e tino tata ana ia ki te matawhenua.

Ka pēhea te mahi i te reira?

Ka tatauhia e matou te rongonui o nga konae ma te rohe. He maha o te keteroki rohe kei reira te kaiwhakamahi, me tetahi tohu konae - ka tangohia e matou tenei takirua ka piki ake te whakatauranga ki ia tangohanga.

I te wa ano, ko nga rewera - nga ratonga i roto i nga rohe - mai i tera wa ki tera wa ka haere mai ki te API ka kii: "Ko ahau he keteroki penei, homai he rarangi o nga konae rongonui o taku rohe kaore ano i runga i ahau. ” Ka tukuna e te API te maha o nga konae kua tohua ma te whakatauranga, ka tangohia e te daemon, ka haria ki nga rohe me te tuku i nga konae mai i reira. Koinei te rereketanga nui i waenga i te pu/pp me te Ra mai i nga keteroki: ka tukuna tonutia e ratou te konae, ahakoa karekau tenei konae i roto i te keteroki, ka tango tuatahi te keteroki i te konae ki a ia ano, katahi ka timata te whakahoki.

I tenei keehi ka whiwhi tatou ihirangi tata ki nga kaiwhakamahi me te horahanga i te kawenga whatunga. Hei tauira, mai i te keteroki Moscow anake ka tohatohahia e matou neke atu i te 1 Tbit/s i nga haora teitei.

Engari he raruraru - Ko nga tūmau keteroki ehara i te rapa. Mo nga ihirangi tino rongonui, i etahi wa kaore i te nui te whatunga mo te tūmau motuhake. He 40-50 Gbit/s o tatou tūmau keteroki, engari he ihirangi kei te aukati i taua hongere. Kei te anga whakamua matou ki te whakatinana rokiroki neke atu i te kotahi kape o nga konae rongonui i te rohe. Ko taku tumanako ka whakatinanahia e tatou hei te mutunga o te tau.

I titiro matou ki te hoahoanga whanui.

  • Nga tūmau o mua e whakaae ana ki nga tono.
  • Ka whakamuri i nga tono tono.
  • Rokiroki e katia ana e nga momo takawaenga e rua.
  • Keteroki rohe.

He aha te ngaro o tenei hoahoa? Ko te tikanga, ko nga papaa raraunga kei roto i a maatau te penapena raraunga.

Raraunga raraunga, miihini ranei

Ka kiia e matou ehara i te papaunga raraunga, engari nga miihini - Miihini, na te mea karekau he papaaarangi i roto i te tikanga e whakaaetia ana.

FAQ mo te hoahoanga me te mahi a VKontakte

He mehua tika tenei. I puta mai tenei na te mea i te tau 2008-2009, i te wa i kaha te tipu o te rongonui a VK, i mahi katoa te kaupapa ki runga MySQL me Memcache a he raruraru. I pai a MySQL ki te tukinga me te whakakino i nga konae, ka mutu ka kore e ora ake, ka heke haere te mahi a Memcache me te whakaara ano.

Te ahua nei ko te kaupapa e rongonui haere ana he rokiroki totika, e kino ana nga raraunga, me te keteroki, ka puhoi. I roto i enei ahuatanga, he uaua ki te whakawhanake i tetahi kaupapa tipu. I whakatauhia kia ngana ki te tuhi ano i nga mea tino nui i arohia e te kaupapa ki runga i a tatou ake paihikara.

I angitu te otinga. I whai waahi ki te mahi i tenei, me te tino hiahia, na te mea kaore ano etahi atu tikanga mo te whakatauine i tera wa. Karekau he paihere o nga papaaarangi, kaore ano a NoSQL i te noho, ko MySQL anake, Memcache, PostrgreSQL - koira.

Mahi ao. Ko te whanaketanga i arahina e to maatau roopu kaiwhakawhanake C me nga mea katoa i mahia i runga i te riterite. Ahakoa te miihini, he rite tonu te ahua o te whakatakotoranga konae i tuhia ki te kopae, he rite nga tawhā whakarewatanga, he rite tonu te mahi o nga tohu, me te rite tonu te ahua o nga ahuatanga o te taha me nga raru. Na te tipu o nga miihini, he pai mo nga kaiwhakahaere ki te whakahaere i te punaha - kaore he zoo e tika ana kia tiakina, me ako ano me pehea te whakahaere i ia putunga raraunga tuatoru hou, na reira i tere ai te whakanui ake i to raatau nama.

Nga momo miihini

He maha nga miihini i tuhia e te roopu. Anei etahi o enei: hoa, tohu, ahua, ipdb, reta, rarangi, rangitaki, memcached, meowdb, rongo, nostradamus, whakaahua, rārangipāpāho, pmemcached, sandbox, rapu, rokiroki, pai, mahi, ...

Mo ia mahi e hiahia ana ki te hanganga raraunga motuhake, ki te tukatuka ranei i nga tono atypical, ka tuhia e te roopu C he miihini hou. He aha te kore.

He miihini motuhake taatau memcached, he rite tonu ki te mea noa, engari me te paihere o nga mea pai, kaore e puhoi. Ehara i te ClickHouse, engari ka mahi ano. Kei te waatea motuhake pmecached Ko Memcached tonu, ka taea hoki te penapena i nga raraunga i runga i te kopae, i tua atu, ka uru ki roto i te RAM, kia kore ai e ngaro nga raraunga ka timata ano. He maha nga miihini mo nga mahi takitahi: rarangi, rarangi, huinga - nga mea katoa e hiahiatia ana e taatau kaupapa.

Huihuinga

Mai i te tirohanga waehere, karekau he take ki te whakaaro mo nga miihini me nga papaunga raraunga hei tukanga, hinonga, tauira ranei. Ka mahi motuhake te waehere me nga tautau, me nga roopu miihini - kotahi momo mo ia tautau. Me kii he kahui memcached - he roopu miihini noa.

Ko te waehere me mohio ki te waahi tinana, te rahi, te maha ranei o nga kaitoro. Ka haere ia ki te roopu ma te whakamahi i tetahi tohu tohu.

Mo tenei mahi, me taapiri e koe tetahi atu hinonga kei waenganui i te waehere me nga miihini - takawaenga.

RPC takawaenga

Takawaenga pahi tūhonohono, e tata ana te waahi katoa e rere ana. I te wa ano kei a matou karekau he kitenga ratonga — hei utu, he whirihora mo tenei takawaenga, e mohio ana ki te waahi o nga tautau katoa me nga maramara katoa o tenei kahui. Koinei te mahi a nga kaiwhakahaere.

Karekau he whakaaro nui a nga kaihōtaka ki te nui, ki hea me te utu - ka haere noa ki te roopu. Ma tenei ka taea e taatau te maha. Ina whiwhi tono, ka tukuna e te takawaenga te tono, me te mohio kei hea - mana ano tenei e whakatau.

FAQ mo te hoahoanga me te mahi a VKontakte

I tenei keehi, ko te takawaenga he waahi whakamarumaru ki te kore ratonga. Mena ka puhoi, ka pakaru ranei etahi miihini, ka mohio te takawaenga ki tenei ka whakautu tika ki te taha o te kiritaki. Ma tenei ka taea e koe te tango i te waahi - kaore te waehere e tatari mo te miihini ki te whakautu, engari e mohio ana kaore i te mahi me te hiahia kia rereke te ahua. Me whakarite te waehere mo te kore e mahi tonu nga papaunga raraunga.

Nga whakatinanatanga motuhake

I etahi wa ka hiahia tonu matou ki te whai i etahi momo otinga kore-paerewa hei miihini. I taua wa ano, i whakatauhia kia kaua e whakamahi i a maatau rpc-takawaenga kua oti te hanga, he mea hanga motuhake mo a maatau miihini, engari me hanga he takawaenga motuhake mo te mahi.

Mo MySQL, kei a matou tonu i konei, i reira, ka whakamahi matou i te db-proxy, me te ClickHouse - Kittenhouse.

He penei te mahi. He tūmau, kei te whakahaere i te kPHP, Haere, Python - i roto i te nuinga, tetahi waehere ka taea te whakamahi i to tatou kawa RPC. Ka haere te waehere ki runga i te takawaenga RPC - kei ia tūmau kei reira te waehere e whakahaere ana i tana takawaenga rohe. I runga i te tono, ka mohio te takawaenga ki hea ka haere.

FAQ mo te hoahoanga me te mahi a VKontakte

Mena ka hiahia tetahi miihini ki te haere ki tetahi atu, ahakoa he hoa tata, ka haere ma te takawaenga, na te mea kei roto pea te hoa tata ki tetahi atu pokapū raraunga. Kaua te miihini e whakawhirinaki ki te mohio ki te waahi o tetahi mea ke atu i a ia ano - koinei ta matou otinga paerewa. Engari o te akoranga he rereke :)

He tauira mo te kaupapa TL e ai ki nga miihini katoa e mahi ana.

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;

He kawa-rua tenei, ko te mea tino tata protobuf. Ko te aronuinga e whakaatu ana i nga apure kowhiria, nga momo uaua - nga toronga o nga awhi i roto, me nga patai. Ka mahi nga mea katoa i runga i tenei kawa.

RPC mo TL mo TCP/UDP… UDP?

Kei a matou he kawa RPC mo te whakahaere i nga tono miihini kei runga ake o te kaupapa TL. Ka mahi katoa tenei ma te hononga TCP/UDP. He maamaa te TCP, engari he aha te take me UDP maha?

Ka awhina a UDP karohia te raru o te maha o nga hononga i waenga i nga kaitoro. Mēnā he takawaenga RPC ia tūmau, ā, i te nuinga o te wā, ka taea te haere ki tētahi pūkaha, katahi ka tekau mano nga hononga TCP mo ia tūmau. He kawenga, engari he koretake. Mo te UDP karekau tenei raruraru.

Karekau he ruru ringa TCP nui. He raruraru angamaheni tenei: ka whakarewahia he miihini hou, he tūmau hou ranei, he maha nga hononga TCP i te wa kotahi. Mo nga tono iti iti, hei tauira, UDP utunga, nga korero katoa i waenga i te waehere me te miihini e rua ngā pākete UDP: ka rere tetahi ki tetahi huarahi, ko te tuarua ki tetahi. Kotahi te haerenga a tawhio noa - a ka whiwhi te waehere i te whakautu mai i te miihini kaore he ruru-a-ringa.

Ae, ka mahi noa me te paheketanga iti rawa o te ngaronga o te kete. Kei te kawa te tautoko mo te tuku ano me te waahi, engari ki te ngaro te nui, ka tata ki te TCP, kaore he hua. Kaore matou e peia UDP puta noa i nga moana.

He mano tini o nga tuumau penei, he rite tonu te kaupapa: kua whakauruhia he kete miihini ki runga i ia tūmau tinana. Ko te nuinga he miro-kotahi kia tere te tere me te kore e aukati, ka tihorea hei otinga miro kotahi. I te wa ano, kaore he mea pono ake i enei miihini, a he nui te aro ki te rokiroki raraunga tohe.

Te rokiroki raraunga pumau

Ka tuhia e nga miihini nga binlogs. Ko te binlog he konae kei te mutunga ka taapirihia he takahanga mo te huringa o te ahua me te raraunga. I roto i nga otinga rereke ka kiia he rereke: rangitaki rua, Wal, AOF, engari he rite tonu te kaupapa.

Hei aukati i te miihini ki te panui ano i te binlog katoa mo nga tau maha ka timata ano, ka tuhi nga miihini whakaahua - te ahua o naianei. Mena e tika ana, ka panui i te tuatahi, ka mutu te panui mai i te binlog. Ko nga binlogs katoa ka tuhia ki te ahua rua - e ai ki te kaupapa TL, kia taea ai e nga kaiwhakahaere te whakahaere i a raatau me o raatau taputapu. Kaore he hiahia pera mo nga whakaahua. He pane whaanui e tohu ana ko wai te whakaahua he int, he makutu o te miihini, he aha te tinana kaore he mea nui ki tetahi. He raru tenei mo te miihini nana i tuhi te whakaahua.

Ka tere taku whakaahua i te kaupapa o te mahi. He tūmau kei reira te miihini e rere ana. Ka whakatuwherahia e ia he binlog hou mo te tuhi me te tuhi i tetahi huihuinga hei whakarereke.

FAQ mo te hoahoanga me te mahi a VKontakte

I tetahi wa, ka whakatau ia ki te tango i tetahi whakaahua ake, ka whiwhi tohu ranei ia. Ka hangaia e te tūmau he kōnae hōu, ka tuhi i tōna āhua katoa ki roto, ka tāpiri i te rahi o te binlog o nāianei - kua whakawāteahia - ki te mutunga o te kōnae, me te tuhi haere tonu. Kaore i hangaia he binlog hou.

FAQ mo te hoahoanga me te mahi a VKontakte

I etahi wa, ka timata ano te miihini, ka puta he binlog me tetahi whakaahua kei runga i te kōpae. Ka panuihia e te miihini te whakaahua katoa ka whakaarahia tona ahua i tetahi waahi.

FAQ mo te hoahoanga me te mahi a VKontakte

Ka panui i te tuunga i te wa i hangaia ai te whakaahua me te rahi o te binlog.

FAQ mo te hoahoanga me te mahi a VKontakte

Ka panuihia te mutunga o te binlog ki te tiki i te ahuatanga o naianei me te tuhi tonu i etahi atu kaupapa. He kaupapa ngawari tenei; kei te mahi a maatau miihini katoa.

Tukurua Raraunga

Ko te mutunga, ko te tukuruatanga raraunga i roto i to maatau i runga i te korero — tuhituhi matou i roto i te binlog e kore tetahi huringa whārangi, engari ara huringa tono. He rite tonu ki nga mea ka puta mai i runga i te whatunga, paku noa te whakarereke.

Ko te kaupapa ano e whakamahia ana ehara i te mea mo te tukurua anake, engari ano hoki ki te hanga pūrua. He miihini ta matou - he tohunga tuhi e tuhi ana ki te binlog. I tetahi atu waahi i whakaturia ai e nga kaiwhakahaere, ka kapehia tenei binlog, a koinei - he taapiri ta matou.

FAQ mo te hoahoanga me te mahi a VKontakte

Ki te hiahiatia tauira panuiHei whakaiti i te kawenga panui PTM, ka whakarewahia noa te miihini panui, ka panui i te mutunga o te binlog me te whakahaere i enei whakahau ki te rohe.

He iti rawa te takamuri i konei, ka taea te mohio he aha te roa o te tauira i muri i te rangatira.

Te tiritiri raraunga i roto i te takawaenga RPC

Me pehea te mahi tiritiri? Me pehea te mohio o te takawaenga ko tehea te kahui mapu hei tuku atu? Kaore te waehere e kii ana: "Tukua mo te 15 maramara!" - kao, na te takawaenga tenei e mahi.

Ko te kaupapa ngawari ko te tuatahi — te nama tuatahi i roto i te tono.

get(photo100_500) => 100 % N.

He tauira tenei mo te kawa kuputuhi memcached ngawari, engari, ko te tikanga, he uaua, he hanganga hoki nga patai. Ka tangohia e te tauira te tau tuatahi i roto i te patai me te toenga ina wehea ki te rahi o te tautau.

Ka whai hua tenei ina hiahia tatou ki te whai waahi raraunga o te hinonga kotahi. Me kii ko 100 he kaiwhakamahi, he ID roopu ranei, a ko te hiahia kia noho nga raraunga katoa o te hinonga kotahi ki te mahanga kotahi mo nga patai uaua.

Mena kaore matou e aro ki te hora o nga tono puta noa i te roopu, tera ano tetahi atu whiringa - hashing te maramara katoa.

hash(photo100_500) => 3539886280 % N

Ka whiwhi hoki tatou i te hash, te toenga o te wehenga me te tau marara.

Ko enei waahanga e rua ka mahi anake mena kua rite tatou mo te mea ka whakanuia e tatou te rahi o te kohinga, ka wehewehea, ka piki ake ranei i te maha o nga wa. Hei tauira, he 16 nga maramara, kaore i te nui, kei te pirangi taatau - ka taea e taatau te tiki 32 me te kore he waahi. Mena kei te pirangi taatau ki te whakanui ake i te maha, ka heke te wa, na te mea kaore e taea e taatau te wehe tika i nga mea katoa kaore he ngaro. He pai enei whiringa, engari kaore i nga wa katoa.

Mena ka hiahia taatau ki te taapiri, ki te tango ranei i te maha o nga tūmau, ka whakamahia e matou Hashing rite tonu i runga i te mowhiti a la Ketama. Engari i te wa ano, ka ngaro katoa te waahi o nga raraunga; me hanumi te tono ki te tautau kia whakahokia mai e ia waahanga tana ake whakautu iti, katahi ka hanumi nga whakautu ki te takawaenga.

He tono tino-motuhake. Ko te ahua tenei: Ka whiwhi te takawaenga RPC i te tono, ka whakatau ko tehea kahui ka haere me te whakatau i te maramara. Na tera ano etahi tohunga tuhi, mena he tautoko tauira te tautau, ka tukuna atu ki tetahi tauira ina tono. Ka mahia e te takawaenga enei mea katoa.

FAQ mo te hoahoanga me te mahi a VKontakte

Rangitaki

He maha nga huarahi ka tuhia e matou nga raarangi. Ko te mea tino marama me te ngawari tuhi rangitaki ki memcache.

ring-buffer: prefix.idx = line

He tohu matua - te ingoa o te poro, he raina, kei reira te rahi o tenei poro - te maha o nga rarangi. Ka tangohia he tau matapōkere mai i te 0 ki te maha o ngā rārangi haunga te 1. Ko te kī i roto i te memcache he prefix kua honoa ki tenei tau matapōkere. Ka tiakina e matou te raina raarangi me te waa o naianei ki te uara.

I te wa e tika ana ki te panui i nga raarangi, ka mahia e matou Tiki Maha nga taviri katoa, ka tohua ma te waa, ka whiwhi i te raarangi whakaputa i roto i te waa tuuturu. Ka whakamahia te kaupapa ina hiahia koe ki te patuiro i tetahi mea i roto i te hanga i roto i te waa tuuturu, me te kore e pakaru tetahi mea, me te kore e mutu, te tuku ranei i nga waka ki etahi atu miihini, engari kaore e roa tenei raarangi.

Mo te rokiroki pono o nga rakau kei a matou he miihini rakau-engine. Koinei te take i hangaia ai, ka whakamahia nuitia i roto i te maha o nga tautau. Ko te kohinga nui rawa atu e mohio ana ahau mo nga toa 600 TB o nga poro rakau kua kapi.

He tawhito rawa te miihini, he tautau kua 6-7 tau. He raruraru kei a matou e ngana ana ki te whakaoti, hei tauira, i timata matou ki te whakamahi kaha i te ClickHouse ki te penapena i nga rakau.

Kohikohi rangitaki i ClickHouse

Ko tenei hoahoa e whakaatu ana me pehea te haere ki roto i a maatau miihini.

FAQ mo te hoahoanga me te mahi a VKontakte

He waehere ka haere i te rohe ma te RPC ki te RPC-takawaenga, a ka mohio ki te waahi ka haere ki te miihini. Mena kei te hiahia matou ki te tuhi i nga raarangi ki ClickHouse, me whakarereke e rua nga waahanga o tenei kaupapa:

  • whakakapi etahi miihini ki te ClickHouse;
  • whakakapi i te takawaenga RPC, kaore e taea te uru atu ki te ClickHouse, me etahi otinga ka taea, me te RPC.

He maamaa te miihini - ka whakakapihia e maatau ki te kaitoi, ki te kahui kaitoro ranei me ClickHouse.

A ki te haere ki ClickHouse, i mahi matou Whare Kitten. Mena ka haere tika mai i KittenHouse ki ClickHouse, kaore e taea. Ahakoa kaore he tono, ka taapirihia mai i nga hononga HTTP o te tini miihini. Mo te kaupapa ki te mahi, i runga i te tūmau me ClickHouse ka whakaarahia te takawaenga whakamuri o te rohe, he mea tuhi kia taea ai e ia te tu atu ki nga pukapuka e hiahiatia ana o nga hononga. Ka taea hoki e ia te tarai i nga raraunga i roto i a ia ano he tino pono.

FAQ mo te hoahoanga me te mahi a VKontakte

I etahi wa kaore matou e hiahia ki te whakatinana i te kaupapa RPC i roto i nga otinga kore-paerewa, hei tauira, i roto i te nginx. Na reira, kei a KittenHouse te kaha ki te tango i nga raarangi ma te UDP.

FAQ mo te hoahoanga me te mahi a VKontakte

Mena kei te mahi te kaituku me te kaiwhiwhi o nga raarangi i runga i te miihini kotahi, he iti rawa te tupono ka ngaro tetahi kete UDP i roto i te kaihautu rohe. Hei whakararu i waenga i te hiahia ki te whakatinana i te RPC i roto i te otinga tuatoru me te pono, ka whakamahi noa matou i te tuku UDP. Ka hoki ano tatou ki tenei kaupapa a muri ake nei.

Aroturuki

E rua a matou momo rangitaki: ko era i kohia e nga kaiwhakahaere i runga i o raatau tūmau me era i tuhia e nga kaihanga mai i te waehere. He rite ki nga momo inenga e rua: pūnaha me te hua.

Inenga pūnaha

Ka mahi i runga i o maatau tūmau katoa netdata, ka kohi tatauranga ka tukuna atu ki Wao Kawhata. Na reira, ka whakamahia a ClickHouse hei punaha rokiroki, kaua ko Whisper, hei tauira. Mena e tika ana, ka taea e koe te panui tika mai i te ClickHouse, te whakamahi ranei Karepe mo nga ine, kauwhata me nga purongo. Hei kaiwhakawhanake, he nui to maatau uru ki a Netdata me Grafana.

Inenga hua

Mo te pai, he maha nga mea kua tuhia e matou. Hei tauira, he huinga mahi noa e taea ai e koe te tuhi i nga Kaute, UniqueCounts uara ki nga tatauranga, ka tukuna atu ki tetahi waahi.

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

$stats = statlogsStatData($params)

I muri mai, ka taea e tatou te whakamahi i nga whiriwhiringa wehewehe me te whakarōpū me te mahi i nga mea katoa e hiahia ana tatou mai i nga tatauranga - hanga kauwhata, whirihora i nga Kaitiaki.

Ka tino tuhi matou maha nga inenga ko te maha o nga huihuinga mai i te 600 piriona ki te 1 trillion ia ra. Heoi, e hiahia ana matou ki te pupuri i a raatau i te iti rawa o nga tau e ruakia mohio ki nga ia i roto i nga inenga. Ko te whakakotahi katoa he raru nui kaore ano kia whakatauhia. Ka korerotia e ahau ki a koe te ahua o te mahi mo nga tau kua hipa.

Kei a matou nga mahi hei tuhi i enei inenga ki memcache rohehei whakaiti i te maha o nga whakaurunga. Kotahi i roto i te wa poto ka whakarewahia i te rohe tatauranga-daemon kohikohi rekoata katoa. I muri mai, ka hanumi te rewera i nga inenga ki nga paparanga e rua o nga tūmau nga kaikohikohi rakau, e whakahiato ana i nga tatauranga mai i te paihere o a tatou miihini kia kore ai e mate te paparanga kei muri.

FAQ mo te hoahoanga me te mahi a VKontakte

Mena e tika ana, ka taea e matou te tuhi tika ki nga kaikohikohi rakau.

FAQ mo te hoahoanga me te mahi a VKontakte

Engari ko te tuhi tika mai i te waehere ki nga kaikohi, ma te maataki i te stas-daemom, he otinga tino kore e taea te tauine na te mea ka piki ake te kawenga ki te kaikohi. He pai te otinga mena he take kaore e taea e matou te whakaara i te memcache stats-daemon ki runga i te miihini, ka tuki ranei ka haere tika matou.

Whai muri, ka hanumi nga kaikohikohi rakau i nga tatauranga ki roto meowDB - koinei to maatau paparangi raraunga, ka taea hoki te penapena inenga.

FAQ mo te hoahoanga me te mahi a VKontakte

Na ka taea e tatou te hanga i nga whiringa rua "tata-SQL" mai i te waehere.

FAQ mo te hoahoanga me te mahi a VKontakte

Whakamātau

I te raumati o te tau 2018, he hackathon o roto i a matou, a ka puta te whakaaro ki te ngana ki te whakakapi i te waahanga whero o te hoahoa ki tetahi mea ka taea te penapena ine i ClickHouse. He rangitaki kei a ClickHouse - he aha e kore ai e whakamatau?

FAQ mo te hoahoanga me te mahi a VKontakte

He kaupapa ta matou i tuhi rakau ma KittenHouse.

FAQ mo te hoahoanga me te mahi a VKontakte

I whakatau matou tāpirihia tētahi atu “*Whare” ki te hoahoa, ka whiwhi tika i nga inenga i roto i te whakatakotoranga ka tuhia e to maatau waehere ma te UDP. Na tenei *Whare ka huri hei whakauru, penei i nga rakau, e mohio ana a KittenHouse. Ka taea e ia te tuku tika i enei raarangi ki ClickHouse, me kaha ki te panui.

FAQ mo te hoahoanga me te mahi a VKontakte

Ko te kaupapa me te memcache, stats-daemon me te raarangi-kohikohi papaa raraunga ka whakakapihia ki tenei.

FAQ mo te hoahoanga me te mahi a VKontakte

Ko te kaupapa me te memcache, stats-daemon me te raarangi-kohikohi papaa raraunga ka whakakapihia ki tenei.

  • He tukunga mai i te waehere i konei, ka tuhia i te takiwa ki StatsHouse.
  • Ka tuhia e StatsHouse nga inenga UDP, kua hurihia ki roto i nga whakauru SQL, ki KittenHouse i roto i nga roopu.
  • Ka tukuna e KittenHouse ki a ClickHouse.
  • Mena kei te pirangi matou ki te panui, ka panuihia e matou ma te takahi i nga StatsHouse - mai i te ClickHouse ma te whakamahi i te SQL auau.

Kei te noho tonu whakamātau, engari he pai ki a matou te ahuatanga. Mena ka whakatikahia e tatou nga raru o te kaupapa, tera pea ka huri katoa tatou ki tera. Ko ahau, ko taku tumanako.

Ko te kaupapa e kore e whakaora i te rino. He iti ake nga kaitoro e hiahiatia ana, kaore e hiahiatia nga tatauranga-daemon me nga kaikohi-rakau, engari ka hiahia a ClickHouse kia nui ake i era i te kaupapa o naianei. He iti ake nga kaitoro e hiahiatia ana, engari me nui ake te utu me te kaha ake.

Hoatuhia

Tuatahi, me titiro tatou ki te whakatakotoranga PHP. Kei te whanake tatou i roto git: whakamahi GitLab и TeamCity mo te whakatakotoranga. Ka hanumihia nga peka whanaketanga ki roto i te peka matua, mai i te rangatira mo te whakamatautau ka hanumihia ki roto i te waahi, mai i te tuunga ki te mahi.

I mua i te tukunga, ka tangohia te peka whakangao o naianei me te mea o mua, ka whakaarohia nga konae rereke i roto i a raatau - huringa: hanga, mukua, whakarereke. Ko tenei huringa ka tuhia ki te binlog o te miihini kape tere motuhake, ka taea te whakahoki tere i nga huringa ki o taatau waka rererangi katoa. Ko te mea e whakamahia ana i konei ehara i te kape tika, engari tukurua korero, ka tukuna e tetahi tūmau nga huringa ki ona hoa tata, ki o raatau hoa tata, me era atu. Ma tenei ka taea e koe te whakahou i te waehere i roto i nga tekau me nga waeine o nga hēkona puta noa i te waaawa katoa. Ka tae atu te huringa ki te tauira o te rohe, ka pa atu ki enei papanga ki ona pūnaha kōnae rohe. Ka mahia ano te hurihanga i runga i te kaupapa ano.

He nui hoki ta matou tuku kPHP, kei a ia ano te whanaketanga git e ai ki te hoahoa i runga ake nei. Mai i tenei Ruarua tūmau HTTP, ka kore e taea e matou te whakaputa rereke - he rau MB te taumaha o te putanga rua. No reira, he whiringa ano kei konei - kua tuhia te putanga ki binlog copyfast. Ma ia hanga ka piki ake, i te wa o te hurihuri ka piki ano. Putanga kua tāruatia ki ngā tūmau. Ka kite nga copyfasts o te rohe kua uru mai he putanga hou ki te binlog, a na taua korero kohukohu ano ka tangohia e ratou te putanga hou o te pukapuka-rua ma ratou ake, kaore e ngenge i to maatau rangatira rangatira, engari ka ata horahia te uta ki runga i te whatunga. Ko nga mea e whai ake nei whakarewatanga ataahua mo te putanga hou.

Mo a maatau miihini, he tino takirua ano hoki, he tino rite te kaupapa:

  • peka matua git;
  • rua i roto Tuhinga;
  • kua tuhia te putanga ki te binlog copyfast;
  • kua tāruatia ki ngā tūmau;
  • ka toia e te tūmau he .dep hou;
  • dpkg -i;
  • te whakarewatanga ataahua ki te putanga hou.

Ko te rereketanga ko ta maatau takirua kei roto i nga purongo Tuhinga, a i te wa e pupuhi ana ratou dpkg -i ka whakanohoia ki runga i te punaha. He aha te take i tukuna ai te kPHP hei taarua, ka tukuna nga miihini hei dpkg? I penei te tupu. Ka mahi - kaua e pa atu.

Hononga whaihua:

Ko Alexey Akulovich tetahi o te hunga, hei waahanga o te Komiti Kaupapa, ka awhina PHP Ruhia hei te 17 o Haratua ka noho hei huihuinga nui rawa atu mo nga kaihanga PHP i nga wa tata nei. Titiro he PC hauhautanga kei a tatou, he aha kaikōrero (e rua o ratou kei te whakawhanake i te PHP matua!) - te ahua o tetahi mea kaore koe e ngaro mena ka tuhi koe i te PHP.

Source: will.com

Tāpiri i te kōrero