Table of Contents[Kache][Montre]
WhatsApp se yon pwogram messagerie sosyal ki pèmèt itilizatè yo fè echanj mesaj youn ak lòt.
Èske w te janm konsidere kòman WhatsApp fonksyone?
Ki konsèp ki soutni kreyasyon ak operasyon li yo?
Atik sa a pral pase sou baz WhatsApp konsepsyon sistèm.
Nou pral tou ale nan achitekti jeneral WhatsApp la, ki ka itilize yo bati nenpòt kalite lojisyèl chat.
Donk, san plis, ann gade sou konsepsyon sistèm WhatsApp la!
1. Kondisyon kle yo
WhatsApp se yon teknoloji trè évolutive ki itilize pa anpil moun toupatou nan mond lan. Kòm yon rezilta, li ta dwe byen fèt yo dwe nòmalman toujou serye ak fonksyone.
Kòm yon rezilta, detèmine bezwen kritik sistèm nan se kritik.
Men kondisyon minimòm pou WhatsApp messenger la:
- Kapab fasilite entèraksyon youn-a-yon sèl.
- Rekonesans mesaj ak dènye wè yo tou de posib (Voye, Livre, ak Li).
- Pèmèt chifreman fen-a-fen ak sipò medya (imaj/videyo).
Ann chèche konnen ki kantite kapasite sèvis nesesè nou an mande.
2. Estimasyon Kapasite
Objektif nou se kreye yon platfòm ki kapab jere yon gwo kantite trafik. Sipoze ke 10 milya SMS yo voye chak jou. Nou gen:
- Chak jou, yon milya moun voye 10 milya SMS.
- Nan trafik pik (pa segonn), 700,000 moun te aktif (6X mwayèn)
- Pandan itilizasyon maksimòm, 40 milyon mesaj yo transmèt pa segonn.
- Longè mwayèn yon mesaj se 160 karaktè: 10B * 160 = 1.6TB done yo pwodwi chak jou.
- Pran dis ane sèvis kòm egzanp: 10 * 1.6B * 365 PB
- Tout aplikasyon an pral fèt ak mikwosèvis, chak nan yo pral egzekite yon travay espesyalize. Asime ke voye yon mesaj pran 20 milisgond e ke gen 100 koneksyon konkouran pou chak sèvè. Kòm yon rezilta, kantite sèvè chat yo prevwa nesesè = (mesaj chat pou chak segonn Latansi)/ koneksyon konkouran pou chak sèvè = 40M * 20ms / 100 = 8000 sèvè.
3. Achitekti wo nivo
Sistèm sa a bati sou de sèvis debaz. Sèvis chat ak sèvis tranzitwa, pou egzanp. Sèvis chat la okipe tout trafik ki te pwodwi pa mesaj sou entènèt itilizatè yo. Ansanm, sèvis tanporè a okipe trafik lè itilizatè a offline.
Si itilizatè a se sou entènèt, sèvis chat la se an chaj nan livrezon mesaj.
Li pral verifye si moun k ap resevwa mesaj la sou entènèt oswa ou pa; si moun k ap resevwa a se sou entènèt, sèvis sa a pral delivre mesaj la imedyatman; si moun k ap resevwa a pa sou entènèt, sèvis tranzitwa a ap voye mesaj la ba yo lè yo retounen sou entènèt.
Sèvis tranzitwa a kenbe yon zòn depo separe pou kenbe done tanporèman aksesib jiskaske itilizatè offline a rekonekte.
Konsepsyon API wo nivo
Sèvis sa a gen de API wo nivo fonksyone pou voye ak li mesaj. Sistèm nan ka aplike lè l sèvi avèk achitekti REST la.
Paramèt pou voye mesaj
API sa a pral itilize pou transmèt mesaj ant de itilizatè.
Paramèt konvèsasyon
Yo itilize API sa a pou montre ti chat. Konsidere sa a premye bagay ou wè lè ou louvri WhatsApp. Nou ta vle sèlman jwenn kèk mesaj pou yon sèl itilizatè nan yon sèl rechèch API. Pou okipe sa a, yo bezwen paramèt konpanse ak konte mesaj.
Ki fonksyon karakteristik tankou dènye wè, yon sèl tik, ak doub tik?
Wòl enpòtan nan deplwaman sèvis sa yo se sèvis rekonesans. Karakteristik sa yo te devlope depi sèvis sa a kontinye jenere ak verifye repons rekonesans yo.
- Single tik: Lè yon mesaj soti nan Itilizatè A rive nan Itilizatè B, sèvè a voye yon sèl tik pou rekonèt ke mesaj la te transmèt.
- Double tik: Apre yo fin voye mesaj sèvè a bay Itilizatè B atravè koneksyon apwopriye a, Itilizatè B a pral rekonèt li resevwa mesaj la bay sèvè a. Lè sa a, sèvè a pral bay itilizatè A yon lòt rekonesans. Kòm yon rezilta, yon tik kopi ap parèt.
- Tik ble: Itilizatè B ap voye yon lòt rekonesans bay sèvè a apre yo fin tcheke mesaj la. Lè sa a, sèvè a pral voye itilizatè A yon lòt mesaj rekonesans. Yon tik ble ap parèt sou ekran itilizatè A apre sa.
- Dènye wè: Mekanis batman kè a se antyèman responsab pou dènye karakteristik wè a. Chak 5 segonn, yon batman transmèt nan sèvè a, ki kenbe tras nan dènye estati itilizatè yo wè nan yon tablo ki ka fasilman jwenn aksè pa nenpòt lòt itilizatè.
4. Designing karakteristik kle
Entèraksyon pèsonalize
Sa a se yon pati nesesè nan sèvis la Chat. Yon itilizatè kapab tou senpleman voye mesaj bay yon lòt itilizatè lè l sèvi avèk sèvis sa a. Ann gade ki jan sa a fonksyone:
Sipoze Jay vle kominike ak Aayush. Jay se lye nan yon sèvè chat ak ki li resevwa mesaj la. Jay resevwa konfimasyon nan men sèvè chat la ke mesaj la te voye. Sèvè chat la kounye a ap mande enfòmasyon nan magazen done sou sèvè chat ak Aayush konekte. Sèvè chat Jay a kounye a transmèt mesaj la nan sèvè chat Aayush a, epi Aayush resevwa mesaj la atravè yon mekanis pouse. Aayush kounye a voye yon rekonesans bay sèvè chat Jay la, ki fè Jay konnen mesaj la te delivre. Si Aayush li mesaj la ankò, yon nouvo rekonesans ke mesaj la te li te delivre bay Jay.
Estati Aktivite Itilizatè yo
Dènye fwa yon moun te aktif se yon karakteristik regilye nan mesaje enstantane.
Yon sistèm pou kenbe yon koneksyon ant kliyan an ak sèvè a montre nan dyagram sa a. Sit entènèt yo te itilize pou etabli yon koneksyon bidireksyon ant sèvè a ak kliyan an. Koneksyon sa yo voye batman kè, ki itilize pou kontwole sitiyasyon aktivite itilizatè a.
Konfidansyalite fen-a-fen
Fen-a-fen chifreman se yon karakteristik kle ki asire ke sèlman itilizatè yo konvèsasyon ka li kominikasyon yo. Yon kle piblik pataje pami tout itilizatè ki enplike nan kominikasyon an epi li enpòtan anpil pou kenbe chifreman Fen-a-Fen. Sipoze ke gen de itilizatè sou chanèl la, Jay, ak Aayush, ki kominike youn ak lòt.
Jay gen kle piblik Aayush a, ak Aayush gen kle piblik Jay ak kle prive yo ki pa pataje. Kòm yon rezilta, lè Jay transmèt mesaj la, li ankripte li ak kle piblik Aayush a, ki ka sèlman dekode ak kle prive Aayush a.
Menm jan an tou, Jay pral sèlman kapab dekode kominikasyon Aayush a. Kòm yon rezilta, sèlman Jay ak Aaysuh yo pral kapab wè kominikasyon youn ak lòt, epi sèvè a pral jis fonksyone kòm yon pòtay nan tout pwosesis la.
5. Bouchon
Chak sistèm gen tandans fè fonksyone byen. Pou jere yon gwo volim trafik konsa, sèvis la dwe rete operasyonèl ak toleran fay tout tan pou evite kou boutèy. Paske sèvis nou an depann totalman sou sèvè Chat ak Transient, nou dwe rezoud tout pwoblèm ki rive nan operasyon yo.
Echèk sèvè chat la: Sa a se kè sistèm nou an. Lè itilizatè yo sou entènèt, li responsab pou jere ak livrezon mesaj yo. Kòm yon rezilta, sistèm sa a kenbe lyen ak itilizatè li yo.
Kòm yon rezilta, si sèvis sa a echwe, achitekti a tout antye ap soufri. Gen de apwòch pou jere echèk sèvè chat la. Yon metòd se chanje koneksyon TCP nan yon lòt sèvè, pandan y ap yon lòt se pèmèt itilizatè yo kòmanse koneksyon otomatikman nan ka yon pèt koneksyon.
Echèk nan Depo pasajè: Yon lòt eleman ki gen tandans fè echèk ki ta ka evantyèlman domaje tout sèvis la se depo pasajè. Mesaj nan wout pou itilizatè offline yo pèdi si sèvis sa a echwe.
Nou ka anpeche pèt mesaj lè nou replike depo tanporè chak itilizatè. Kòm yon rezilta, kopi a ka travay pou trete fonksyon yo chak fwa itilizatè a retounen sou entènèt. Si sèvè orijinal la vin aksesib, tou de ka orijinal ak kopi depo tranzitwa itilizatè a yo konbine nan yon sèl magazen.
6. teknik optimisation
Latans: Pou bay yon eksperyans kliyan san pwoblèm ak amelyore, sèvis mesaje a dwe an tan reyèl. Kòm yon rezilta, latansi yo dwe redwi pa kachèt yon pati nan done yo souvan jwenn aksè. Nou ka mete estati aktivite itilizatè yo ak konvèsasyon resan yo nan memwa lè l sèvi avèk yon kachèt distribye tankou Redis.
Disponibilite: Nou bezwen sèvis nou yo disponib majorite tan an. Sistèm nou an dwe toleran fòt, kidonk nou ka kenbe plizyè kopi mesaj tranzitwa pou nenpòt mesaj ki pèdi yo ka byen vit refè nan kopi li yo. Kòm yon rezilta, disponiblite sistèm lan pa ka mete an danje.
konklizyon
Kounye a sistèm nou an sipòte sèlman kèk kapasite, men nou ka fasilman elaji li pou ajoute gwoup chat pou distribye mesaj bay plizyè moun. Ou kapab tou bay videyo ak kapasite apèl nan telefòn. Sistèm sa a ka devlope tou pou itilizatè yo ka pibliye mizajou estati oswa naratif epi li youn ak lòt.
Mwen te travay di pou ba ou yon apèsi wo nivo sou konsepsyon sistèm WhatsApp la. Mwen espere ou te renmen li epi ou pral sèvi ak li byen.
Kite yon Reply