E pei o
I se tasi aso na ou ala ai i se imeli le fiafia ona o le umi o le tolopo ma Alvin, lea na matou fuafua e faʻalauiloa i se taimi lata mai. Aemaise lava, o le tagata o tausia na oo i le 99 pasene pasene le tumau i le itulagi o le 50 ms, e sili atu i luga atu o le matou paketi o le taofiofi. O se mea e ofo ai a o ou faʻataʻitaʻiina le tautua, aemaise lava ile latency, o se faʻasea masani.
Ae ou te leʻi tuʻuina Alvin i suʻega, sa ou tamoe i le tele o faʻataʻitaʻiga ma 40k fesili i le sekone (QPS), o loʻo faʻaalia uma le taofiofi e itiiti ifo i le 10ms. Na ou sauni e taʻu atu ou te le ioe i a latou taunuuga. Ae o le toe tilotilo i le tusi, na ou matauina ai se mea fou: Ou te leʻi faʻataʻitaʻiina tonu tulaga na latou taʻua, o latou QPS e sili atu le maualalo nai lo aʻu. Na ou suʻeina i le 40k QPS, ae naʻo le 1k. Na ou tamoe i se isi suʻega, o le taimi lea ma se QPS maualalo, naʻo le faʻamalieina o latou.
Talu ai o lo'o ou faia le blog blog e uiga i lenei mea, masalo ua uma ona e iloa e sa'o a latou numera. Na ou faʻataʻitaʻiina pea laʻu tagata faʻatau, faʻatasi ai ma le iʻuga tutusa: o le maualalo o le numera o talosaga e le gata ina faʻateleina ai le taofiofia, ae faʻateleina ai le numera o talosaga ma le latency e sili atu i le 10 ms. I se isi faaupuga, afai i le 40k QPS e tusa ma le 50 talosaga i le sekone e sili atu i le 50 ms, ona i ai lea i le 1k QPS e 100 talosaga i luga aʻe o le 50 ms i sekone taʻitasi. Fa'alavelave!
Fa'aiti i lalo ole su'esu'ega
Pe a feagai ma se faʻafitauli latency i totonu o se faʻasalalauga faʻasalalau ma le tele o vaega, o le laasaga muamua o le fatuina lea o se lisi puupuu o masalosaloga. Sei o tatou eli loloto teisi i le fausaga a Alevine:
O se amataga lelei o se lisi o suiga I/O ua mae'a (valaau feso'ota'iga/su'e tisiki, ma isi). Sei o tatou taumafai e saili po o fea o i ai le tuai. E ese mai i le I/O manino ma le kalani, ua faia e Alvin se laasaga faaopoopo: na te mauaina le faleoloa o faamatalaga. Ae ui i lea, o lenei teuina o loʻo faʻaogaina i le fuifui tutusa e pei o Alvin, o le mea lea e tatau ona itiiti ifo le faʻaogaina o loʻo i ai nai lo le kalani. O lea la, o le lisi o tagata masalomia:
- Fe'au feso'ota'iga mai le kalani ia Alvin.
- Feau feso'ota'iga mai Alvin i le faleoloa fa'amaumauga.
- Su'e i luga o le tisiki i le faleoloa fa'amaumauga.
- Feso'ota'iga telefoni mai le faleteuoloa fa'amaumauga ia Alvin.
- Fe'au feso'ota'iga mai Alvin i se tagata o tausia.
Sei o tatou taumafai e kolosi nisi o manatu.
O le teuina o faʻamaumauga e leai se mea e fai i ai
O le mea muamua na ou faia o le faaliliuina lea o Alvin i se ping-ping server e le faʻaogaina talosaga. A maua se talosaga, e toe faafoi mai se tali gaogao. Afai e faʻaititia le latency, o se pusa i le Alvin poʻo faʻamaumauga fale teu oloa faʻatinoga e leai se mea e le o faʻalogoina. I le fa'ata'ita'iga muamua tatou te maua le kalafi lea:
E pei ona e vaʻaia, e leai se faʻaleleia pe a faʻaaogaina le ping-ping server. O lona uiga o le faleteuoloa faʻamatalaga e le faʻateleina le faʻagata, ma o le lisi o masalosalo e tipi i le afa:
- Fe'au feso'ota'iga mai le kalani ia Alvin.
- Fe'au feso'ota'iga mai Alvin i se tagata o tausia.
Matagofie! Ua vave ona fa'aitiitia le lisi. Sa ou manatu ua toetoe lava a ou iloaina le mafuaaga.
gRPC
O le taimi lenei e faʻafeiloaʻi ai oe i se tagata taalo fou: gRPC
lelei optimized ma faʻaaoga lautele, o loʻu taimi muamua lea na faʻaaogaina i luga o se faiga o lenei tele ma sa ou faʻamoemoe o laʻu faʻatinoga o le a le lelei - e fai atu le itiiti ifo.
avanoa gRPC
i le faaputuga na tulaʻi mai ai se fesili fou: atonu o laʻu faʻatinoga poʻo aʻu lava gRPC
fa'atupu fa'afitauli le tumau? Fa'aopoopoina se masalosalo fou i le lisi:
- E vili e le kalani le faletusi
gRPC
- fale faitautusi
gRPC
faia se feso'ota'iga telefoni ile faletusi ile tagata o tausiagRPC
luga o le server - fale faitautusi
gRPC
fa'afeso'ota'i Alvin (leai se fa'agaioiga i le tulaga o le ping-pong server)
Ina ia tuʻuina atu ia te oe se manatu pe o le a le foliga o le code, o laʻu tagata faʻatau / Alvin faʻatinoga e le ese tele mai le kalani-server.
Manatua: O le lisi o loʻo i luga e fai si faʻafaigofie ona
gRPC
e mafai ai ona fa'aogaina lau lava (fa'ata'ita'iga?) fa'ata'ita'iga filo, lea o lo'o feso'ota'i ai le fa'aputuga fa'atino.gRPC
ma le fa'atinoina o tagata. Mo le faʻafaigofie, o le a matou pipii i lenei faʻataʻitaʻiga.
O le fa'avasegaina o le a fa'aleleia mea uma
I le kolosiina o faleoloa faʻamatalaga, sa ou manatu ua toeitiiti lava a ou maeʻa: "O lea ua faigofie! Sei o tatou faʻaoga le faʻamatalaga ma suʻe poʻo fea e tupu ai le tuai." I
E fa au fa'amatalaga: fa'atasi ai ma le QPS maualuga (maualalo le latency) ma le ping-pong server ma le QPS maualalo (maualuga le latency), i le itu o le kalani ma le itu o le server. Ma na'o le tulaga, na ou ave foi se faʻataʻitaʻiga faʻamatalaga faʻapitoa. Pe a faʻatusatusa faʻamatalaga, e masani ona ou suʻeina se faʻaputuga telefoni faʻafefe. Mo se faʻataʻitaʻiga, i le itu leaga ma le maualuga o le taofiofia o loʻo i ai le tele o suiga faʻaoga (10 taimi pe sili atu). Ae i loʻu tulaga, o le numera o suiga faʻamatalaga sa toetoe lava tutusa. I lo'u fefe, e leai se mea taua iina.
Fa'aopoopo Debugging
Sa ou le fiafia. Ou te le iloa po o a isi mea faigaluega e mafai ona ou faʻaaogaina, ma o laʻu fuafuaga na sosoo ai o le toe faia lea o faʻataʻitaʻiga i suiga eseese nai lo le faʻamaonia manino o le faʻafitauli.
Ae faapefea pe afai
Mai lava i le amataga, sa ou popole e uiga i le 50ms latency patino. O se taimi tele lenei. Na ou filifili o le a ou tipi ese ni pusi mai le code seia mafai ona ou iloa tonu po o fea vaega na mafua ai lenei mea sese. Ona oʻo mai lea o se faʻataʻitaʻiga na aoga.
E pei ona masani ai, i le toe tepa i tua e foliga mai ua manino mea uma. Na ou tuʻuina le kalani i luga o le masini e tasi e pei o Alvin - ma auina atu se talosaga i localhost
. Ma o le faʻateleina o le faʻagata ua leai!
Sa i ai se mea na faaletonu i le upega tafailagi.
A'oa'oina tomai fa'ainisinia feso'ota'iga
E tatau ona ou taʻutino: o loʻu malamalama i tekinolosi fesoʻotaʻiga e mataʻutia, aemaise lava pe a mafaufau i le mea moni ou te galulue ma i latou i aso uma. Ae o le fesoʻotaʻiga na sili ona masalomia, ma sa manaʻomia ona ou aʻoaʻoina pe faʻafefea ona faʻafefe.
O le mea e laki ai, e fiafia le Initaneti ia i latou e fia aʻoaʻo. O le tu'ufa'atasiga o le ping ma le tracert na foliga mai o se amataga lelei tele e fa'asalaina ai fa'afitauli tau femalagaiga.
Muamua, na ou tatalaina
Ona ou taumafai lea
E le o laʻu code, le gRPC faʻatinoga, poʻo le fesoʻotaʻiga na mafua ai le tuai. Sa amata ona ou popole o le a ou le malamalama lava i lenei mea.
O le a le OS o loʻo tatou i ai
gRPC
fa'aoga lautele i luga ole Linux, ae fa'apitoa ile Windows. Na ou filifili e faʻataʻitaʻi se faʻataʻitaʻiga, lea na aoga: Na ou fatuina se masini komepiuta Linux, tuufaatasia Alvin mo Linux, ma faʻaaogaina.
Ma o le mea lenei na tupu: o le Linux ping-pong server e leʻi tutusa le faʻatuai e pei o se Windows host tutusa, e ui lava e leai se eseesega o le puna o faʻamatalaga. E aliali mai o le faʻafitauli o loʻo i le gRPC faʻatinoga mo Windows.
O le algorithm a Nagle
O le taimi atoa nei sa ou manatu ua ou misia se fuʻa gRPC
. O lea ua ou malamalama i le mea moni gRPC
Ua misi le fu'a a le Windows. Na ou mauaina se faletusi RPC i totonu na ou mautinoa e aoga lelei mo fuʻa uma ua seti
Toeitiiti Maea: Na amata ona ou aveese faʻatasi fuʻa faʻaopoopo seʻia oʻo ina toe foʻi mai le faʻasologa ina ia mafai ona ou iloa le mafuaʻaga. Sa ta'uleagaina
gRPC
o lenei fuʻa na faʻatulagaina i le Linux faʻatinoga mo TCP sockets, ae le o Windows. O a'u lea
iʻuga
Ole maualuga maualuga ile QPS maualalo na mafua ile OS optimization. I le toe tepa i tua, e le'i iloa e le fa'ata'ita'iga le fa'agaoioiga aua na faia i le kernel mode nai lo totonu
Ae mo le faʻataʻitaʻiga a le localhost, masalo e leʻi paʻi i le code networking ma e leʻi tamoe le algorithm a Nagle, o lea na alu ese ai le faʻafitauli ina ua oʻo atu le kalani ia Alvin e ala ile localhost.
O le isi taimi e te vaʻaia ai le faʻateleina o le faʻagata a o faʻaititia le numera o talosaga ile sekone, e tatau ona i ai le algorithm a Nagle i lau lisi o masalosaloga!
puna: www.habr.com