Lisi o Mataupu[Natia][Fa'aali]
WhatsApp o se polokalame feʻau faʻasalalau e mafai ai e tagata faʻaoga ona fefaʻasoaaʻi feʻau ma le tasi.
Na e mafaufau i le auala e galue ai WhatsApp?
O a manatu faavae o lo'o fa'avaeina ai lona fausiaina ma lona fa'agaioiga?
O lenei tusiga o le a alu i luga o faʻavae o WhatsApp mamanu faiga.
O le a matou faʻaogaina foʻi le fausaga lautele a WhatsApp, lea e mafai ona faʻaogaina e fausia ai soʻo se ituaiga o polokalame talatalanoaga.
O lea, e aunoa ma se toe faʻalavelave, seʻi o tatou vaʻavaʻai i le mamanu o le polokalama a WhatsApp!
1. Manaoga Autu
WhatsApp o se tekinolosi maualuga scalable lea e faʻaaogaina e le tele o tagata i le lalolagi atoa. O le i'uga, e tatau ona fa'atulaga lelei ina ia toetoe lava fa'alagolago i taimi uma ma galue.
O se taunuuga, e taua tele le fuafuaina o manaoga taua o le faiga.
O mea aupito maualalo ia mo le avefeau WhatsApp:
- Mafai ona faafaigofieina fegalegaleaiga taitoatasi.
- O le fa'ailoaina o fe'au ma le va'aiga mulimuli e mafai uma lava (Auina, Tu'uina, ma Faitau).
- Fa'ataga fa'amatalaga fa'ailo ma fa'asalalauga (ata/vitio).
Se'i o tatou su'esu'e po o le a le tele o le gafatia e mana'omia e la tatou auaunaga talafeagai.
2. Fa'atatauina le Gafatia
O la matou fa'amoemoe o le fausia lea o se fa'avae e mafai ona fa'atautaia le tele o feoaiga. Fa'apea e 10 piliona SMS e lafo i le aso. E iai a matou:
- O aso uma, 10 piliona SMS e auina atu e le tasi piliona tagata.
- I le maualuga o feoaiga (i le sekone), 700,000 tagata sa toaaga (6X averesi)
- A'o fa'aoga maualuga, e 40 miliona fe'au e fa'asalalauina ile sekone.
- Ole averesi ole umi ole fe'au e 160 mataitusi: 10B * 160 = 1.6TB o fa'amaumauga e gaosia i aso uma.
- Ave le sefulu tausaga o le auaunaga e fai ma faʻataʻitaʻiga: 10 * 1.6B * 365 PB
- O le talosaga atoa o le a faia i microservices, o ia mea taʻitasi o le a faʻatinoina se galuega faʻapitoa. Fa'apea o le lafoina o se fe'au e mana'omia le 20 milliseconds ma e 100 feso'ota'iga fa'atasi ile server. O le iʻuga, o le numera faʻamoemoeina o faʻamatalaga talatalanoa e manaʻomia = (chat messages per second Latency)/ concurrent connections per server = 40M * 20ms / 100 = 8000 servers.
3. Tulaga maualuluga fausaga
O lenei faiga e fausia i luga o auaunaga autu e lua. Au'aunaga talatalanoa ma 'au'aunaga fe'avea'i, mo se fa'ata'ita'iga. O le 'au'aunaga talatalanoa e fa'atautaia uma fe'avea'i e fa'atupuina e fe'au i luga ole laiga a tagata fa'aoga. I le taimi lava e tasi, o le auaunaga le tumau e faʻatautaia fefaʻatauaiga pe a tuusao le tagata faʻaoga.
Afai o loʻo i luga ole laiga le tagata faʻaoga, o le auʻaunaga talatalanoa e nafa ma le tuʻuina atu o feʻau.
O le a faʻamaonia pe o loʻo i luga ole laiga pe leai le tagata e mauaina le feʻau; afai o loʻo i luga ole laiga le tagata e mauaina, o le a tuʻuina atu e lenei auaunaga le feʻau vave; afai e le o i luga o le initaneti le tagata e mauaina, o le a auina atu e le au'aunaga fe'avea'i le fe'au ia i latou pe a toe fo'i mai i luga ole laiga.
Ole 'au'aunaga fe'avea'i e tu'u ese se nofoaga e teu ai mo le fa'amauina o fa'amatalaga avanoa mo se taimi se'ia toe fa'afeso'ota'i le tagata e lē faaaogāina le initaneti.
Fausiaina o API Tulaga Maualuga
O lenei 'au'aunaga e lua tulaga maualuga API o lo'o galue mo le lafoina ma le faitauina o fe'au. E mafai ona faʻatinoina le faiga e faʻaaoga ai le REST architecture.
Parata mo le auina atu o fe'au
O lenei API o le a faʻaaogaina e faʻasalalau feʻau i le va o tagata e toʻalua.
Parata o talanoaga
Ole API lea e fa'aoga e fa'aali ai talatalanoaga filo. Mafaufau i le mea muamua lea e te vaʻaia pe a e tatalaina WhatsApp. E na'o matou fia maua ni nai fe'au mo le tagata fa'aoga i se fesili API e tasi. Ina ia taulimaina lenei mea, e manaʻomia le offset ma le numera o feʻau.
O a galuega a foliga e pei o le va'aiga mulimuli, fa'ailoga tasi, ma fa'ailoga fa'alua?
O le sao taua i le fa'atinoina o nei 'au'aunaga o le 'au'aunaga fa'ailoa. O nei vaega na atiae talu ai o lenei auaunaga o loʻo faʻaauau pea ona gaosia ma faʻamaonia tali faʻamaonia.
- Nofofua kosi: A o'o atu se fe'au mai le Fa'aoga A i le Tagata Fa'aoga B, e tu'uina atu e le 'au'aunaga se fa'ailoga se tasi e fa'ailoa mai ai ua tu'uina atu le fe'au.
- Fa'ailoga fa'alua: A maeʻa ona tuʻuina atu le feʻau a le server i le User B e ala i le fesoʻotaʻiga talafeagai, o le a faʻaalia e le User B le mauaina o le feʻau i le server. O le a tu'uina atu e le 'au'aunaga le User A ma se isi fa'aaliga. O le i'uga, o le a aliali mai se fa'ailoga fa'alua.
- Tiki lanumoana: O le a tuʻuina atu e le tagata faʻaoga B se isi faʻamatalaga i le 'auʻaunaga pe a uma ona siaki le feʻau. O le a auina atu e le server le User A se fe'au fa'afetai fa'aopoopo. O le a aliali mai se fa'ailoga lanu moana i luga o le lau a le Tagata A'oga pe a uma.
- Mulimuli vaaia: O le fatu fatu e nafa atoa ma le vaega mulimuli na vaaia. E ta'i 5 sekone uma, e tu'u atu ai le tātā o le fatu i le 'au'aunaga, lea e fa'amaumau ai le tulaga mulimuli na va'aia e tagata ta'ito'atasi i totonu o se laulau e faigofie ona maua e so'o se isi tagata fa'aoga.
4. Fuafuaina o vaega autu
Fesootaiga patino
Ose vaega mana'omia o le 'au'aunaga Chat. E mafai e se tagata fa'aoga ona lafo atu fe'au i se isi tagata fa'aoga e fa'aoga ai lenei auaunaga. Se'i o tatou va'ai pe fa'apefea ona galue lenei mea:
Fa'apea e mana'o Jay e talanoa ma Aayush. E feso'ota'i Jay i se 'au'aunaga talatalanoa lea na te mauaina ai le fe'au. Ua maua e Jay le fa'amaoniga mai le 'au'aunaga talatalanoa na lafo atu le fe'au. O loʻo talosagaina nei e le 'auʻaunaga talatalanoaga faʻamatalaga mai le faleoloa o faʻamatalaga e uiga i le faʻasalalauga faʻasalalau lea e fesoʻotaʻi ai Aayush. O le 'au'aunaga talatalanoaga a Jay o lo'o tu'uina atu nei le fe'au i le 'au'aunaga talatalanoa a Aayush, ma e maua e Aayush le fe'au e ala i se masini tulei. Ua tu'uina atu nei e Aayush se fa'aaliga i le 'au'aunaga talatalanoaga a Jay, lea e logoina ai Jay ua tu'uina atu le fe'au. Afai e toe faitau e Aayush le feʻau, o se taʻutinoga fou na faitauina le feʻau na tuʻuina atu ia Jay.
Tulaga o Gaoioiga a Tagata Fa'aaoga
O le taimi mulimuli na toaga ai se tagata o se vaega masani o avefeau vave.
O se faiga mo le faatumauina o se sootaga i le va o le kalani ma le server o loʻo faʻaalia i lenei ata. Sa fa'aogaina soketi i luga ole laiga e fa'atūina ai se feso'ota'iga lua i le va o le server ma le kalani. O nei feso'ota'iga e auina atu ai fatu fatu, lea e fa'aaogaina e mata'ituina ai le tulaga o gaioiga a le tagata fa'aoga.
Fa'alilolilo I'uga-i-I'u
O le fa'ailoga fa'ai'u i le pito ose vaega taua e fa'amautinoa ai e na'o tagata fa'aoga talatalanoa e mafai ona faitau ia feso'ota'iga. O se ki fa'alaua'itele e fa'asoa i tagata uma o lo'o a'afia i le feso'ota'iga ma e taua tele i le fa'atumauina o fa'ailoga Fa'ai'uga. Fa'apea e to'alua tagata fa'aoga i luga o le alalaupapa, Jay, ma Aayush, e feso'ota'i le tasi i le isi.
O Jay o lo'o i ai le ki fa'alaua'itele a Aayush, ma o Aayush o lo'o iai le ki fa'alaua'itele a Jay fa'apea fo'i ma a latou ki fa'apitoa e le fa'asoa. O le i'uga, ina ua fa'asalalau e Jay le fe'au, na te fa'aigoaina i le ki fa'alaua'itele a Aayush, lea e na'o le ki patino a Aayush e mafai ona fa'avasega.
E fa'apena fo'i, na'o Jay o le a mafai ona fa'aliliuina le feso'ota'iga a Aayush. O le iʻuga, naʻo Jay ma Aaysuh o le a mafai ona vaʻai i fesoʻotaʻiga a le tasi ma le isi, ma o le server o le a naʻo le galue o se faitotoa i le faagasologa atoa.
5. Fa'amau
So'o se faiga e fa'aletonu. Ina ia pulea le tele o feoaiga, o le auaunaga e tatau ona tumau le faagaoioia ma le fa'apalepale i mea sese i taimi uma e aloese ai mai fa'alavelave. Talu ai o la matou tautua e fa'alagolago atoa i Chat ma Transient servers, e tatau ona matou foia uma fa'afitauli e tula'i mai i la latou fa'agaioiga.
Le manuia o le Chat Server: O le fatu lea o la tatou faiga. A'o fa'aoga i luga ole laiga, e nafa ma le puleaina ma le tu'uina atu o fe'au. O se taunuuga, o lenei faiga o loʻo faʻatumauina sootaga ma ona tagata faʻaoga.
O se taunuuga, afai e le manuia lenei auaunaga, o le a pagatia le fausaga atoa. E lua auala i le puleaina o le toilalo o le server chat server. O le tasi auala o le fesuia'i lea o feso'ota'iga TCP i se isi 'au'aunaga, a'o le isi o le fa'ataga o tagata fa'aoga e amata feso'ota'iga otometi pe a leiloa se feso'ota'iga.
Le manuia o le teuina mo sina taimi: O le isi vaega e ono fa'aletonu e ono fa'aleagaina ai le auaunaga atoa o le teuina mo sina taimi. O fe'au o lo'o aga'i atu i tagata fa'aoga tuimotu e leiloa pe a le manuia lenei tautua.
E mafai ona tatou puipuia le leiloa o le fe'au e ala i le toe faia o le teuina o tagata ta'itasi. O le i'uga, e mafai ona fa'aaogaina le fa'atusa e fa'agasolo ai galuega i so'o se taimi e toe fo'i mai ai le tagata fa'aoga i luga ole laiga. Afai e mafai ona maua le 'au'aunaga muamua, e tu'u fa'atasi uma le ulua'i fa'apea ma fa'atusa o le teuina fa'asao a le tagata fa'aoga i se faleoloa e tasi.
6. Fa'atonu auala
Latalia: Ina ia tu'uina atu se fa'alelei ma fa'aleleia atili le poto masani o tagata o tausia, o le 'au'aunaga avefe'au e tatau ona i ai i le taimi moni. O le i'uga, e tatau ona fa'aitiitia le fa'aletonu e ala i le fa'asaoina o se vaega o fa'amaumauga e masani ona maua. E mafai ona matou faʻaogaina le tulaga o tagata faʻaoga ma talanoaga talu ai nei i le mafaufau e faʻaaoga ai se faʻasalalauga faʻasalalau pei o Redis.
avanoa: Matou te manaʻomia la matou auaunaga ia avanoa i le tele o taimi. E tatau ona fa'apalepale a tatou faiga masei, o lea e mafai ai ona tatou teuina ni kopi o fe'au fe'avea'i ina ia vave ona toe maua mai so'o se fe'au e leiloa mai ona kopi. O se taunuuga, e le mafai ona lamatia le avanoa o le faiga.
iʻuga
O lo'o lagolagoina nei e le matou polokalama na'o ni nai mea e mafai, ae e faigofie ona fa'alauteleina e fa'aopoopo ai talanoaga fa'avae e tufa ai fe'au i le tele o tagata. E mafai fo'i ona e tu'uina atu avanoa e vala'au ai i vitiō ma telefoni. O lenei faiga e mafai foi ona atiaʻe ina ia mafai ai e tagata faʻaoga ona faʻasalalau faʻafouga tulaga poʻo tala ma faitau le tasi i le isi.
Na ou galue malosi e tuʻuina atu ia te oe se faʻamatalaga maualuga maualuga o le WhatsApp system design. Ou te faʻamoemoe na e fiafia i ai ma o le a faʻaaogaina lelei.
Tuua se tali