טיש פון קאָנטענץ[באַהאַלטן][ווייַזן]
ווהאַצאַפּפּ איז אַ געזעלשאַפטלעך מעסידזשינג פּראָגראַם וואָס אַלאַוז ניצערס צו וועקסל אַרטיקלען מיט איינער דעם אנדערן.
האָבן איר אלץ באַטראַכטן ווי ווהאַצאַפּפּ אַרבעט?
וואָס זענען די קאַנסעפּס וואָס אַנדערפּיין זייַן שאַפונג און אָפּעראַציע?
דער אַרטיקל וועט גיין איבער די באַסיקס פון ווהאַצאַפּפּ סיסטעם פּלאַן.
מיר וועלן אויך דורכגיין די אַלגעמיינע אַרקאַטעקטשער פון WhatsApp, וואָס קענען זיין גענוצט צו בויען קיין שמועס ווייכווארג.
אַזוי, אָן ווייַטער אַדישאַן, לאָזן אונדז קוק אין די סיסטעם פּלאַן פון WhatsApp!
1. שליסל רעקווירעמענץ
ווהאַצאַפּפּ איז אַ העכסט סקאַלאַבלע טעכנאָלאָגיע וואָס איז געניצט דורך פילע מענטשן איבער די וועלט. ווי אַ רעזולטאַט, עס זאָל זיין געזונט-דיזיינד צו זיין כמעט שטענדיק פאַרלאָזלעך און פאַנגקשאַנינג.
ווי אַ רעזולטאַט, באַשטימען די קריטיש באדערפענישן פון די סיסטעם איז קריטיש.
דאָס זענען די מינימום רעקווירעמענץ פֿאַר די ווהאַצאַפּפּ שליח:
- ביכולת צו פאַסילאַטייט איינער-צו-איין ינטעראַקשאַנז.
- אָנזאָג דערקענטעניש און לעצט געזען זענען ביידע מעגלעך (געשיקט, דעליווערעד און לייענען).
- לאָזן סוף-צו-סוף ענקריפּשאַן און מעדיע שטיצן (בילדער / ווידיאס).
זאל ס געפינען אויס ווי פיל קאַפּאַציטעט אונדזער נייטיק דינסט ריקווייערז.
2. עסטימאַטינג קאַפּאַסיטי
אונדזער אָביעקטיוו איז צו שאַפֿן אַ פּלאַטפאָרמע וואָס איז ביכולת צו האַנדלען מיט אַ גרויס סומע פון פאַרקער. יבערנעמען אַז 10 ביליאָן SMS זענען געשיקט פּער טאָג. מיר האבן:
- יעדער טאָג, 10 ביליאָן SMS זענען געשיקט דורך איין ביליאָן מענטשן.
- אין שפּיץ פאַרקער (פּער סעקונדע), 700,000 מענטשן זענען אַקטיוו (6 קס דורכשניטלעך)
- בעשאַס שפּיץ באַניץ, 40 מיליאָן אַרטיקלען זענען טראַנסמיטטעד פּער סעקונדע.
- די דורכשניטלעך לענג פון אַ אָנזאָג איז 160 אותיות: 10 ב * 160 = 1.6 טב פון דאַטן איז דזשענערייטאַד יעדער טאָג.
- נעמען צען יאָר פון דינסט ווי אַ בייַשפּיל: 10 * 1.6 ב * 365 פּב
- די גאנצע אַפּלאַקיישאַן וועט זיין קאַמפּרייזד פון מיקראָ באַדינונגס, יעדער פון וואָס וועט ויספירן אַ ספּעשאַלייזד אַרבעט. יבערנעמען אַז שיקט אַ אָנזאָג נעמט 20 מיליסעקאַנדז און אַז עס זענען 100 קאַנקעראַנט קאַנעקשאַנז פּער סערווער. ווי אַ רעזולטאַט, די אַנטיסאַפּייטיד נומער פון שמועס סערווערס פארלאנגט = (שמועס אַרטיקלען פּער סעקונדע לייטאַנסי) / קאַנקעראַנט קאַנעקשאַנז פּער סערווער = 40M * 20ms / 100 = 8000 סערווערס.
3. הויך-מדרגה אַרקאַטעקטשער
דער סיסטעם איז געבויט אויף צוויי האַרץ באַדינונגס. שמועסן דינסט און טראַנזיטאָרי דינסט, פֿאַר בייַשפּיל. די שמועס סערוויס כאַנדאַלז אַלע די פאַרקער דזשענערייטאַד דורך יוזערז 'אָנליין אַרטיקלען. סיימאַלטייניאַסלי, די צייַטווייַליק דינסט כאַנדאַלז פאַרקער ווען דער באַניצער איז אָפפלינע.
אויב דער באַניצער איז אָנליין, די שמועס דינסט איז אין באַשולדיקונג פון דיליווערינג אַרטיקלען.
עס וועט באַשטעטיקן צי דער אָנזאָג ס באַקומער איז אָנליין אָדער נישט; אויב דער באַקומער איז אָנליין, די דינסט וועט צושטעלן די אָנזאָג מיד; אויב דער באַקומער איז נישט אָנליין, די טראַנזיטאָרי דינסט וועט שיקן דעם אָנזאָג צו זיי ווען זיי צוריקקומען אָנליין.
די טראַנזיטאָרי דינסט האלט אַ באַזונדער סטאָרידזש געגנט פֿאַר בעכעסקעם טעמפּערעראַלי צוטריטלעך דאַטן ביז דער אָפפלינע באַניצער ריקאַנעקץ.
דיזיינינג הויך-לעוועל אַפּיס
דער דינסט האט צוויי הויך-מדרגה פאַנגקשאַנינג אַפּיס פֿאַר שיקט און לייענען אַרטיקלען. די סיסטעם קענען זיין ימפּלאַמענאַד מיט די REST אַרקאַטעקטשער.
פּאַראַמעטערס פֿאַר שיקט אַרטיקלען
דער אַפּי וועט זיין געניצט צו אַריבערפירן אַרטיקלען צווישן צוויי ניצערס.
פּאַראַמעטערס פון שמועס
דעם אַפּי איז געניצט צו ווייַזן טרעדיד טשאַץ. באַטראַכטן דעם דער ערשטער זאַך איר זען ווען איר עפֿענען ווהאַצאַפּפּ. מיר וואָלט נאָר וועלן צו באַקומען אַ ביסל אַרטיקלען פֿאַר איין באַניצער אין אַ איין אַפּי אָנפֿרעג. צו שעפּן דעם, די פאָטאָ און אָנזאָג ציילן פּאַראַמעטערס זענען דארף.
וואָס זענען די פאַנגקשאַנז פון פֿעיִקייטן ווי לעצטע געזען, איין טיקען און טאָפּל טיקען?
די וויכטיק ראָלע אין די דיפּלוימאַנט פון די סערוויסעס איז די דערקענטעניש דינסט. די פֿעיִקייטן זענען דעוועלאָפּעד זינט דעם דינסט האלט צו דזשענערייט און באַשטעטיקן דערקענטעניש ענטפֿערס.
- איין טיקען: ווען אַ אָנזאָג פון באַניצער א ריטשאַז באַניצער ב, דער סערווער סענדז אַ איין טיקען אַקנאַלידזשינג אַז דער אָנזאָג איז טראַנסמיטטעד.
- טאָפּל טיקען: נאָך די סערווער ס אָנזאָג איז געשיקט צו באַניצער ב דורך די געהעריק קשר, באַניצער ב וועט באַשטעטיקן קאַבאָלע פון די אָנזאָג צו די סערווער. דער סערווער וועט דעריבער צושטעלן באַניצער א מיט אן אנדער דערקענטעניש. ווי אַ רעזולטאַט, אַ דופּליקאַט טיקען וועט דערשייַנען.
- בלוי טיקען: באַניצער ב וועט שיקן אן אנדער דערקענטעניש צו די סערווער נאָך קאָנטראָלירונג די אָנזאָג. דער סערווער וועט דערנאָך שיקן באַניצער א אַן נאָך דערקענטעניש אָנזאָג. א בלוי טיקען וועט דערשייַנען אויף באַניצער א ס פאַרשטעלן נאָך דעם.
- לעצט געזען: די כאַרטביט מעקאַניזאַם איז גאָר פאַראַנטוואָרטלעך פֿאַר די לעצטע געזען שטריך. יעדער 5 סעקונדעס, אַ כאַרטביט איז טראַנסמיטטעד צו די סערווער, וואָס האַלטן שפּור פון יעדער באַניצער ס לעצט געזען סטאַטוס אין אַ טיש וואָס קענען זיין גרינג אַקסעסט דורך קיין אנדערע באַניצער.
4. דיזיינינג שליסל פֿעיִקייטן
פערזענליכען ינטעראַקשאַן
דאָס איז אַ נייטיק טייל פון די טשאַט סערוויס. א באַניצער קענען פשוט שיקן אַרטיקלען צו אן אנדער באַניצער ניצן דעם דינסט. לאָמיר זען ווי דאָס אַרבעט:
יבערנעמען Jay וויל צו יבערגעבן מיט Aayush. Jay איז לינגקט צו אַ שמועס סערווער מיט וואָס ער נעמט דעם אָנזאָג. Jay באקומט באַשטעטיקונג פון די שמועס סערווער אַז דער אָנזאָג איז געשיקט. דער שמועס סערווער איז איצט ריקוועסטינג אינפֿאָרמאַציע פון די דאַטן קראָם וועגן די שמועס סערווער צו וואָס Aayush איז קאָננעקטעד. Jay ס שמועס סערווער איצט טראַנסמיטט די אָנזאָג צו Aayush ס שמועס סערווער, און Aayush נעמט דעם אָנזאָג דורך אַ שטופּ מעקאַניזאַם. Aayush שיקט איצט אַ דערקענטעניש צו Jay ס שמועס סערווער, וואָס נאָוטאַפייז Jay אַז דער אָנזאָג איז איבערגעגעבן. אויב Aayush לייענען דעם אָנזאָג ווידער, אַ פריש באַשטעטיקונג אַז דער אָנזאָג איז געווען לייענען איז געווען איבערגעגעבן צו Jay.
סטאַטוס פון באַניצער אַקטיוויטעט
די לעצטע מאָל אַ מענטש איז געווען אַקטיוו איז אַ רעגולער שטריך פון רעגע שליחים.
א סיסטעם פֿאַר מיינטיינינג אַ קשר צווישן דעם קליענט און די סערווער איז דיפּיקטיד אין דעם דיאַגראַמע. וועב סאַקאַץ זענען געניצט צו פאַרלייגן אַ ביידירעקטיאָנאַל קשר צווישן די סערווער און דעם קליענט. די קאַנעקשאַנז שיקן העאַרטבעאַץ, וואָס זענען געניצט צו מאָניטאָר די באַניצער 'ס טעטיקייט סטאַטוס.
סוף-צו-סוף פּריוואַטקייט
סוף-צו-סוף ענקריפּשאַן איז אַ שליסל שטריך וואָס ינשורז אַז בלויז די קאַנווערסינג ניצערס קענען לייענען די קאָמוניקאַציע. א ציבור שליסל איז שערד צווישן אַלע יוזערז ינוואַלווד אין די קאָמוניקאַציע און איז קריטיש צו האַלטן סוף-צו-סוף ענקריפּשאַן. יבערנעמען אַז עס זענען צוויי יוזערז אויף דעם קאַנאַל, Jay און Aayush, וואָס יבערגעבן מיט יעדער אנדערער.
Jay האט Aayush ס ציבור שליסל, און Aayush האט Jay ס ציבור שליסל און זייער ניט-שערד פּריוואַט שליסל. ווי אַ רעזולטאַט, ווען Jay טראַנסמיטט די אָנזאָג, ער ינקריפּט עס מיט Aayush ס ציבור שליסל, וואָס קענען זיין דעקאָדעד בלויז מיט Aayush ס פּריוואַט שליסל.
סימילאַרלי, Jay וועט נאָר קענען צו דעקאָדע די קאָמוניקאַציע פון Aayush. ווי אַ רעזולטאַט, בלויז Jay און Aaysuh קענען זען יעדער אנדערע ס קאָמוניקאַציע, און דער סערווער וועט נאָר פונקציאָנירן ווי אַ גייטוויי אין די גאנצע פּראָצעס.
5. באַטאַלנעקס
יעדער סיסטעם איז פּראָנע צו מאַלפאַנגקשאַן. צו פירן אַזאַ אַ גרויס באַנד פון פאַרקער, די סערוויס מוזן שטענדיק זיין אַפּעריישאַנאַל און שולד-טאָלעראַנט צו ויסמיידן באַטאַלנעקס. ווייַל אונדזער דינסט איז גאָר רילייאַנט אויף שמועסן און טראַנסיענט סערווערס, מיר מוזן סאָלווע אַלע די ישוז וואָס שטייען פֿון זייער אָפּעראַציע.
דורכפאַל פון די שמועסן סערווירער: דאָס איז די האַרץ פון אונדזער סיסטעם. ווען יוזערז זענען אָנליין, עס איז פאַראַנטוואָרטלעך פֿאַר אָנפירונג און דעליווערינג אַרטיקלען. ווי אַ רעזולטאַט, דעם סיסטעם האלט פֿאַרבינדונגען מיט זייַן ניצערס.
ווי אַ רעזולטאַט, אויב די דינסט פיילז, די גאנצע אַרקאַטעקטשער וועט לייַדן. עס זענען צוויי אַפּראָוטשיז צו פירן די דורכפאַל פון די שמועס סערווער. איין אופֿן איז צו יבעררוק טקפּ קאַנעקשאַנז צו אן אנדער סערווער, בשעת אן אנדער איינער איז צו לאָזן ניצערס צו אָנהייבן קאַנעקשאַנז אויטאָמאַטיש אין די געשעעניש פון אַ קשר אָנווער.
דורכפאַל פון טראַנסיענט סטאָרידזש: אן אנדער קאָמפּאָנענט פּראָנע צו דורכפאַל וואָס קען יווענטשאַוואַלי שעדיקן די גאנצע דינסט איז טראַנזשאַנט סטאָרידזש. אַרטיקלען אויף מאַרשרוט צו אָפפלינע יוזערז זענען פאַרפאַלן אויב די סערוויס פיילז.
מיר קענען פאַרמייַדן אָנזאָג אָנווער דורך רעפּליקייטינג די צייטווייליגע סטאָרידזש פון יעדער באַניצער. ווי אַ רעזולטאַט, די רעפּליקע קענען זיין געוויינט צו פּראָצעס די פאַנגקשאַנז ווען דער באַניצער קערט אָנליין. אויב דער אָריגינעל סערווער ווערט צוטריטלעך, ביידע די אָריגינעל און רעפּליקע ינסטאַנסיז פון די באַניצער 'ס טראַנזאַטאָרי סטאָרידזש זענען קאַמביינד אין אַ איין קראָם.
6. אָפּטימיזאַטיאָן טעקניקס
לאַטענסי: צו צושטעלן אַ סימלאַס און ימפּרוווד קליענט דערפאַרונג, די מעסינדזשער דינסט מוזן זיין פאַקטיש-צייט. ווי אַ רעזולטאַט, לייטאַנסי מוזן זיין רידוסט דורך קאַטשינג טייל פון די אָפט אַקסעסט דאַטן. מיר קענען קאַש באַניצער טעטיקייט סטאַטוס און לעצטע שמועסן אין זכּרון ניצן אַ פונאנדערגעטיילט קאַש ווי Redis.
אַוואַילאַביליטי: מיר דאַרפֿן אונדזער דינסט צו זיין בנימצא רובֿ פון די צייט. אונדזער סיסטעם מוזן זיין שולד-טאָלעראַנט, אַזוי מיר קענען האַלטן עטלעכע עקזעמפלארן פון טראַנספּערטיישאַן אַרטיקלען אַזוי אַז קיין אָנזאָג וואָס איז פאַרפאַלן קענען זיין געשווינד ריקאַווערד פון די דופּליקאַטן. ווי אַ רעזולטאַט, די אַוויילאַבילאַטי פון די סיסטעם קענען ניט זיין סאַקאָנע.
סאָף
אונדזער סיסטעם איצט שטיצט בלויז אַ ביסל קייפּאַבילאַטיז, אָבער מיר קענען לייכט יקספּאַנד עס צו לייגן גרופּע טשאַץ צו פאַרשפּרייטן אַרטיקלען צו עטלעכע מענטשן. איר קענען אויך צושטעלן ווידעא און טעלעפאָן רופן קייפּאַבילאַטיז. דער סיסטעם קענען אויך זיין דעוועלאָפּעד אַזוי אַז יוזערז קענען אַרויסגעבן סטאַטוס דערהייַנטיקונגען אָדער דערציילונגען און לייענען יעדער אנדערער.
איך געארבעט שווער צו צושטעלן איר אַ הויך-מדרגה איבערבליק פון די ווהאַצאַפּפּ סיסטעם פּלאַן. איך האף אז איר האט הנאה פון עס און וועט נוצן עס גוט.
לאָזן אַ ענטפֿערן