Okuqukethwe[Fihla][Bonisa]
I-WhatsApp iwuhlelo lokuthumela imiyalezo emphakathini oluvumela abasebenzisi ukuthi bathumelelane imiyalezo bodwa.
Uke wacabanga ukuthi i-WhatsApp isebenza kanjani?
Yimiphi imiqondo esekela ukudalwa nokusebenza kwayo?
Lesi sihloko sizodlula izisekelo ze-WhatsApp umklamo wesistimu.
Sizophinde sidlule ku-WhatsApp architecture evamile, engasetshenziswa ukwakha noma yiluphi uhlobo lwesofthiwe yengxoxo.
Ngakho-ke, ngaphandle kokuchitha isikhathi, ake sibheke ukwakheka kohlelo lwe-WhatsApp!
1. Izidingo Eziyinhloko
I-WhatsApp iwubuchwepheshe obungakala kakhulu obusetshenziswa abantu abaningi emhlabeni jikelele. Ngenxa yalokho, kufanele yakhelwe kahle ukuze ihlale ithembekile futhi isebenze.
Ngenxa yalokho, ukunquma izidingo ezibalulekile zohlelo kubalulekile.
Lezi yizidingo ezincane zesithunywa se-WhatsApp:
- Iyakwazi ukusiza ukusebenzisana komuntu ngamunye.
- Ukuvunywa komlayezo nokugcina ukubonakala kokubili kuyenzeka (Kuthunyelwe, Kuthunyelwe, Futhi Kufundiwe).
- Vumela ukubethela ngasemaphethelweni kanye nosekelo lwemidiya (izithombe/amavidiyo).
Ake sithole ukuthi isevisi yethu edingekayo idinga umthamo ongakanani.
2. Ukulinganisa Amandla
Inhloso yethu ukwakha inkundla ekwazi ukuphatha inani elikhulu lethrafikhi. Cabanga ukuthi kuthunyelwa ama-SMS ayizigidi eziyizinkulungwane eziyi-10 ngosuku. Sine:
- Nsuku zonke, izigidigidi eziyi-10 zama-SMS zithunyelwa ngabantu abayizigidi eziyinkulungwane.
- Ngethrafikhi ephezulu (ngesekhondi), abantu abangu-700,000 bebesebenza (isilinganiso esingu-6X)
- Ngesikhathi sokusetshenziswa okuphezulu, imilayezo eyizigidi ezingu-40 idluliswa ngomzuzwana.
- Ubude obumaphakathi bomlayezo yizinhlamvu eziyi-160: 10B * 160 = 1.6TB yedatha yenziwa nsuku zonke.
- Thatha iminyaka eyishumi yenkonzo njengesibonelo: 10 * 1.6B * 365 PB
- Lonke uhlelo lokusebenza luzokwakhiwa ngama-microservices, ngalinye elizokwenza umsebenzi okhethekile. Cabanga ukuthi ukuthumela umlayezo kuthatha 20 millisecond nokuthi kukhona 100 ukuxhumana ngesikhathi esisodwa iseva ngayinye. Ngenxa yalokho, inani elilindelekile lamaseva ezingxoxo elidingekayo = (imiyalezo yengxoxo ngesekhondi Ukubambezeleka)/ ukuxhumana okuhambisanayo ngeseva ngayinye = 40M * 20ms / 100 = 8000 amaseva.
3. Izakhiwo ezisezingeni eliphezulu
Lolu hlelo lwakhiwe phezu kwezinsizakalo ezimbili ezibalulekile. Isevisi yengxoxo nesevisi yesikhashana, isibonelo. Isevisi yengxoxo iphethe yonke ithrafikhi ekhiqizwa imilayezo ye-inthanethi yabasebenzisi. Ngesikhathi esifanayo, isevisi yesikhashana isingatha ithrafikhi uma umsebenzisi engaxhunyiwe ku-inthanethi.
Uma umsebenzisi eku-inthanethi, isevisi yengxoxo iphethe ukuletha imilayezo.
Izoqinisekisa ukuthi umamukeli womlayezo uku-inthanethi noma cha; uma umamukeli eku-inthanethi, le sevisi izoletha umlayezo ngokushesha; uma umamukeli engekho ku-inthanethi, isevisi yesikhashana izothumela umlayezo kubo lapho bebuyela ku-inthanethi.
Isevisi yesikhashana igcina indawo yokugcina ehlukile yokugcina idatha efinyeleleka okwesikhashana kuze kube yilapho umsebenzisi ongaxhunyiwe ku-inthanethi exhuma kabusha.
Ukudizayina ama-API ezinga eliphezulu
Le sevisi inama-API amabili asezingeni eliphezulu okuthumela nokufunda imilayezo. Uhlelo lungasetshenziswa kusetshenziswa i-REST architecture.
Amapharamitha okuthumela imilayezo
Le API izosetshenziselwa ukudlulisa imilayezo phakathi kwabasebenzisi ababili.
Imingcele yengxoxo
Le API isetshenziselwa ukubonisa izingxoxo ezinochungechunge. Cabanga ngalokhu into yokuqala oyibonayo lapho uvula i-WhatsApp. Singathanda kuphela ukuthola imilayezo embalwa yomsebenzisi oyedwa embuzweni owodwa we-API. Ukusingatha lokhu, imingcele ye-offset neyokubala imilayezo iyadingeka.
Yimiphi imisebenzi yezici ezifana nokugcina ukubonakala, ukumaka okukodwa, kanye nokumaka kabili?
Iqhaza elibalulekile ekusatshalalisweni kwalezi zinsizakalo yinkonzo yokwazisa. Lezi zici zathuthukiswa njengoba le sevisi iqhubeka nokukhiqiza nokuqinisekisa izimpendulo zokuvuma.
- Umaka owodwa: Uma umlayezo ovela kuMsebenzisi A ufika kuMsebenzisi B, iseva ithumela umaka owodwa ivuma ukuthi umlayezo udlulisiwe.
- Thikha kabili: Ngemva kokuthi umlayezo weseva usuthunyelwe kuMsebenzisi B ngoxhumo olufanele, Umsebenzisi B uzovuma ukuthi utholwe umlayezo kuseva. Iseva izobe isinikeza Umsebenzisi A ngokunye ukuvuma. Njengomphumela, kuzovela umaka oyimpinda.
- i-bluetick: Umsebenzisi B uzothumela okunye ukuvuma kuseva ngemva kokuhlola umlayezo. Iseva izobe isithumela uMsebenzisi A umlayezo owengeziwe wokuvuma. Umakhi oluhlaza uzovela esikrinini somsebenzisi A ngemva kwalokho.
- Ugcine ukubonakala: Umshini wokushaya kwenhliziyo unesibopho ngokuphelele esicini esigcine ukubonakala. Njalo ngemizuzwana emi-5, ukushaya kwenhliziyo kudluliselwa kuseva, elandelela isimo sokugcina somsebenzisi ngamunye kuthebula elingafinyelelwa kalula yinoma yimuphi omunye umsebenzisi.
4. Ukuklama izici ezibalulekile
Ukusebenzisana komuntu siqu
Lena ingxenye edingekayo yesevisi ye-Chat. Umsebenzisi angavele athumele imilayezo komunye umsebenzisi esebenzisa le sevisi. Ake sibheke ukuthi lokhu kusebenza kanjani:
Cabanga ukuthi u-Jay ufuna ukuxhumana no-Aayush. U-Jay uxhunywe kuseva yengxoxo athola ngayo umlayezo. U-Jay uthola isiqinisekiso esivela kwiseva yengxoxo ukuthi umlayezo uthunyelwe. Iseva yengxoxo manje icela ulwazi esitolo sedatha mayelana neseva yengxoxo lapho i-Aayush ixhumeke khona. Iseva yengxoxo ka-Jay manje idlulisela umlayezo kuseva yengxoxo ka-Aayush, futhi u-Aayush uthola umlayezo ngomshini wokuphusha. U-Aayush manje uthumela ukuvuma kuseva yengxoxo ka-Jay, eyazisa u-Jay ukuthi umlayezo ulethiwe. Uma u-Aayush efunda umlayezo futhi, ukuvuma okusha kokuthi umlayezo ufundiwe kwathunyelwa kuJay.
Isimo Somsebenzi Womsebenzisi
Isikhathi sokugcina lapho umuntu esebenza kuyisici esivamile sezithunywa ezisheshayo.
Isistimu yokugcina ukuxhumana phakathi kweklayenti neseva iboniswa kulo mdwebo. Amasokhethi ewebhu asetshenziswe ukuze kusungulwe uxhumano lwe-bidirectional phakathi kweseva neklayenti. Lokhu kuxhumana kuthumela ukushaya kwenhliziyo, okusetshenziselwa ukuqapha isimo somsebenzisi.
Ubumfihlo bokuphela ukuya ekupheleni
Ukubethela ngasemaphethelweni kuyisici esibalulekile esiqinisekisa ukuthi abasebenzisi abaxoxayo kuphela abangakwazi ukufunda ukuxhumana. Ukhiye osesidlangalaleni wabiwa phakathi kwabo bonke abasebenzisi abathintekayo ekuxhumaneni futhi ubalulekile ekulondolozeni ukubethela kokuphela ukuya ekupheleni. Cabanga ukuthi kukhona abasebenzisi ababili esiteshini, uJay, no-Aayush, abaxhumana bodwa.
U-Jay unokhiye wasesidlangalaleni ka-Aayush, futhi u-Aayush unokhiye wasesidlangalaleni ka-Jay kanye nokhiye wabo oyimfihlo ongabelwe. Ngenxa yalokho, lapho u-Jay edlulisela umlayezo, uwubhala ngemfihlo ngokhiye wasesidlangalaleni we-Aayush, ongaqoshwa kuphela ngokhiye oyimfihlo we-Aayush.
Ngokufanayo, u-Jay uzokwazi kuphela ukunquma ukuxhumana kuka-Aayush. Ngenxa yalokho, u-Jay no-Aaysuh kuphela abazokwazi ukubona ukuxhumana komunye nomunye, futhi iseva izovele isebenze njengesango kuyo yonke inqubo.
5. Amabhodlela
Wonke amasistimu ajwayele ukungasebenzi kahle. Ukuze ulawule umthamo omkhulu kangaka wethrafikhi, isevisi kufanele ihlale isebenza futhi ingawabekezeli amaphutha ngaso sonke isikhathi ukuze kugwenywe izinkinga. Ngenxa yokuthi isevisi yethu incike ngokuphelele kumaseva e-Chat and Transient, kufanele sixazulule zonke izinkinga ezivela ekusebenzeni kwawo.
Ukuhluleka Kweseva Yengxoxo: Lena inhliziyo yesistimu yethu. Uma abasebenzisi baku-inthanethi, banesibopho sokuphatha nokuletha imilayezo. Ngenxa yalokho, lolu hlelo lugcina izixhumanisi nabasebenzisi balo.
Ngenxa yalokho, uma le sevisi ihluleka, yonke i-architecture izohlupheka. Kunezindlela ezimbili zokuphatha ukwehluleka kweseva yengxoxo. Enye indlela ukushintsha ukuxhumana kwe-TCP kwenye iseva, kanti enye iwukuvumela abasebenzisi ukuthi baqale ukuxhumana ngokuzenzakalela uma kwenzeka kulahleka uxhumano.
Ukuhluleka Kwesitoreji Sesikhashana: Enye ingxenye ethambekele ekwehlulekeni engagcina ilimaze yonke isevisi isitoreji sesikhashana. Imilayezo esendleleni eya kubasebenzisi abangaxhunyiwe ku-inthanethi iyalahleka uma le sevisi yehluleka.
Singanqanda ukulahleka komlayezo ngokuphindaphinda isitoreji sesikhashana somsebenzisi ngamunye. Njengomphumela, i-replica ingasetshenziswa ukucubungula imisebenzi noma nini lapho umsebenzisi ebuyela ku-inthanethi. Uma iseva yoqobo ifinyeleleka, kokubili izenzakalo zangempela nezifanayo zesitoreji esidlulayo somsebenzisi zihlanganiswa zibe isitolo esisodwa.
6. Amasu okuthuthukisa
I-Latency: Ukuze ulethe umuzwa weklayenti ongenazihibe futhi othuthukisiwe, isevisi yesigijimi kufanele ibe yesikhathi sangempela. Ngenxa yalokho, ukubambezeleka kufanele kwehliswe ngokugcina ingxenye yedatha evame ukufinyelelwa. Singagcina inqolobane yesimo somsebenzisi kanye nezingxoxo zakamuva ekhanda sisebenzisa inqolobane esabalalisiwe njengeRedis.
Ukutholakala: Sidinga ukuthi inkonzo yethu itholakale isikhathi esiningi. Isistimu yethu kufanele ikwazi ukubekezelela amaphutha, ngaleyo ndlela singakwazi ukugcina amakhophi amaningana emilayezo edlulayo ukuze noma yimuphi umlayezo olahlekile utholakale ngokushesha kuzimpinda zawo. Ngenxa yalokho, ukutholakala kwesistimu ngeke kube sengozini.
Isiphetho
Isistimu yethu manje isekela amakhono ambalwa kuphela, kodwa singayikhulisa kalula ukuze sengeze izingxoxo zeqembu ukuze sisabalalise imilayezo kubantu abambalwa. Ungakwazi futhi ukuhlinzeka ngamakhono wekholi yevidiyo nefoni. Lolu hlelo lungaphinda luthuthukiswe ngendlela yokuthi abasebenzisi bakwazi ukushicilela izibuyekezo zesimo noma ukulandisa futhi bafundane.
Ngisebenze kanzima ukukunikeza umbono wezinga eliphezulu womklamo wohlelo lwe-WhatsApp. Ngethemba ukuthi ukujabulele futhi uzokusebenzisa kahle.
shiya impendulo