גרויס-וואָג אָנליין אַפּלאַקיישאַנז האָבן קומען אַ לאַנג וועג אין די פריערדיקע צוויי דעקאַדעס. די ינאָווויישאַנז האָבן אָלטערד אונדזער פּערסעפּשאַנז פון ווייכווארג אַנטוויקלונג. פאַסעבאָאָק, ינסטאַגראַם און טוויטטער, פֿאַר בייַשפּיל, זענען אַלע סקאַלאַבלע פּלאַטפאָרמס.
די סיסטעמען מוזן זיין געבויט צו פירן מאַסיוו וואַליומז פון פאַרקער און דאַטן זינט ביליאַנז פון מענטשן נוצן זיי אין דער זעלביקער צייט איבער די וועלט. דאָס איז ווען סיסטעם פּלאַן גייט אריין אינעם בילד.
דער פּראָצעס פון גרינדן די אַרקאַטעקטשער, ינטערפייסיז און דאַטן פֿאַר אַ סיסטעם וואָס טרעפן זיכער קרייטיריאַ איז באקאנט ווי סיסטעם פּלאַן. דורך קאָוכיסיוו און עפעקטיוו סיסטעמען, סיסטעם פּלאַן סאַטיספייז די פאדערונגען פון דיין געשעפט אָדער אָרגאַניזאַציע.
אַמאָל דיין פירמע אָדער אָרגאַניזאַציע האט באשלאסן זייַן קרייטיריאַ, איר קענען אָנהייבן ינקאָרפּערייט זיי אין אַ גשמיות סיסטעם פּלאַן וואָס טרעפן די פאָדערונג פון דיין קאָנסומערס.
צי איר קלייַבן צו גיין מיט בעספּאָקע אַנטוויקלונג, געשעפט סאַלושאַנז אָדער אַ קאָמבינאַציע פון די צוויי, ווי איר פּלאַן דיין סיסטעם וועט באַשליסן ווי איר בויען עס.
מיר וועלן נעמען אַ דיטיילד קוק אין די סיסטעם פּלאַן פון די Twitter טיימליין אין דעם פּאָסטן, גאַנץ מיט אַ טוטאָריאַל. לאמיר אנהייבען.
שריט 1: אַוטליין נוצן פאַל & קאַנסטריינץ
ניצן פאַל
- א באַניצער ופּלאָאַדס אַ טוועעט.
- די סערוויס סענדז שטופּן נאָוטאַפאַקיישאַנז און ימיילז צו אנהענגערס פון טוועעץ.
- דער באַניצער 'ס טיימליין איז וויוד (אַקטיוויטעט פון דער באַניצער)
- דער באַניצער קוקט אין די היים טיימליין (אַקטיוויטעט פון מענטשן וואָס דער באַניצער איז נאָך)
- טערמינען זענען געזוכט דורך דער באַניצער.
- די דינסט איז טאַקע צוטריטלעך.
אויס פון פאַרנעם
- טוועעץ זענען געשיקט צו די Twitter Firehose און אנדערע סטרימז ניצן דעם דינסט.
- די סערוויס רימוווז טוועעץ באזירט אויף די וויזאַביליטי סעטטינגס פון די באַניצער.
- אויב דער באַניצער איז נישט אויך נאָכפאָלגן דעם מענטש צו זיין געענטפערט, באַהאַלטן די ענטפער.
- אָבסערווירן די 'באַהאַלטן רעטוועעץ' אָפּציע.
- אַנאַליטיקס
קאַנסטריינץ & אַסאַמפּשאַנז
שטאַט אַסאַמפּשאַנז
- דער פאַרקער איז נישט גלייך צעשפּרייט.
- עס זאָל זיין פּשוט צו שיקן אַ טוועעט.
- אויב איר האָבן מיליאַנז פון אנהענגערס, שיקן אַ טוועעט צו אַלע דיין אנהענגערס זאָל זיין שנעל.
- עס זענען 100 מיליאָן אַקטיוו ניצערס.
- 15 ביליאָן טוועעץ יעדער חודש אָדער 500 מיליאָן טוועעץ יעדער טאָג
- יעדער טוועעט האט אַ דורכשניטלעך פון 10 עקספּרעס.
- יעדער טאָג, פאַנאָוט דיליווערז 5 ביליאָן טוועעץ.
- Fanout דיליווערז 150 ביליאָן טוועעץ יעדער חודש.
- 250 ביליאָן כוידעשלעך לייענען ריקוועס
- 10 ביליאָן כוידעשלעך אָנפֿרעגן
טיימליין
- די טיימליין זאָל זיין גרינג צו נאַוויגירן.
- טוויטטער איז מער וועגן לייענען ווי שרייבן.
- אָפּטימיזירן פֿאַר שנעל טוועעט לייענען
- טוועעט קאַנסאַמשאַן איז צייט-קאַנסומינג.
זוכן
- דער זוכן פּראָצעס זאָל זיין שנעל.
- עס ס צייט-קאַנסומינג צו זוכן.
רעכענען באַניץ
גרייס פון יעדער טוועעט:
- 8 ביטעס טוועעט שייַן
- 32 ביטעס באַניצער שייַן
- 140 ביטעס פון טעקסט
- מידיאַ - דורכשניטלעך פון 10 קב
- גאַנץ: ~10 קב
יעדער חודש, 150 טב פון פריש טוועעט אינהאַלט איז דזשענערייטאַד.
- * 500 מיליאָן טוועעץ יעדער טאָג * 30 טעג פּער חודש * 10 קב פּער טוועעט
- אין דריי יאָר, עס איז געווען 5.4 פּב פון פריש טוועעט אינהאַלט.
עס זענען 100,000 לייענען ריקוועס יעדער רגע.
- * (400 ריקוועס פּער סעקונדע / 1 ביליאָן ריקוועס פּער חודש) 250 ביליאָן לייענען ריקוועס יעדער חודש
עס זענען 6,000 טוועעץ יעדער רגע.
- * (400 ריקוועס פּער סעקונדע / 1 ביליאָן ריקוועס פּער חודש) 15 ביליאָן טוועעץ יעדער חודש
אויף פאַנאַוט, 60 טויזנט טוועעץ זענען געשיקט יעדער רגע.
- Fanout דיליווערז 150 ביליאָן טוועעץ יעדער חודש * (400 ריקוועס פּער סעקונדע / 1 ביליאָן ריקוועס פּער חודש).
4,000 ריקוועס פֿאַר אינפֿאָרמאַציע יעדער רגע
- * (400 ריקוועס פּער סעקונדע / 1 ביליאָן ריקוועס פּער חודש) 10 ביליאָן אָנפֿרעגן יעדער חודש
עטלעכע נוציק קאַנווערזשאַן
- יעדער חודש, 2.5 מיליאָן סעקונדעס פאָרן.
- 2.5 מיליאָן ריקוועס פּער חודש ביי 1 בקשה פּער סעקונדע
- 100 מיליאָן ריקוועס פּער חודש x 40 ריקוועס פּער סעקונדע
- 1 ביליאָן ריקוועס פּער חודש = 400 ריקוועס פּער סעקונדע
שריט 2: הויך-מדרגה דיאַגראַמע
טרעטן 3: דערקלערן האַרץ קאַמפּאָונאַנץ
מיר קען ראַטעווען די באַניצער 'ס אייגענע טוועעץ צו באַפעלקערן די באַניצער טיימליין (אַקטיוויטעט פון די באַניצער) אין אַ ריליישאַנאַל דאַטאַבייס אויב זיי פאָרלייגן אַ טוועעט. עס איז מער שווער צו צושטעלן טוועעץ און אַנטוויקלען די היים טיימליין (אַקטיוויטעט פון מענטשן וואָס דער באַניצער גייט).
א טיפּיש ריליישאַנאַל דאַטאַבייס וואָלט זיין אָוווערוועלמד דורך פאַננינג טוועעץ צו אַלע אנהענגערס (60 טויזנט טוועעץ איבערגעגעבן יעדער רגע). מיר וועלן מיסטאָמע וועלן צו גיין מיט אַ שנעל-שרייַבן דאַטן סטאָרידזש ווי אַ NoSQL דאַטאַבייס אָדער זכּרון קאַש.
לייענען 1 מב סאַקווענטשאַלי פון זיקאָרן נעמט בעערעך 250 מיקראָסעקאָנדס, אָבער לייענען פון ססד נעמט 4 מאל ווי לאַנג, און לייענען פון דיסק נעמט 80 מאל אַזוי לאַנג.
אַ אָבדזשעקט סטאָר קענען זיין געוויינט צו קראָם דאַטן אַזאַ ווי בילדער און ווידיאס.
- דער וועב סערווער, וואָס איז אַקטינג ווי אַ פאַרקערט פּראַקסי, נעמט אַ טוועעט פון דעם קליענט.
- די בעטן איז געשיקט צו די שרייב אַפּי סערווער דורך די וועב סערווער.
- די שרייב אַפּי סאַוועס די טוועעט צו אַ SQL דאַטאַבייס אין די טיימליין פון דער באַניצער.
די Fan-Out סערוויס איז קאָנטאַקטעד דורך די Write API, און עס פּערפאָרמז די פאלגענדע טאַסקס.
- געפינט די באַניצער 'ס אנהענגערס אין די זכּרון קאַש דורך אָנפֿרעג די באַניצער גראַפיק סערוויס.
- אויף אַ זכּרון קאַש, די טוועעט איז געראטעוועט אין דער היים טיימליין פון די באַניצער 'ס אנהענגערס.
- 1,000 אנהענגערס = 1,000 לוקאַפּס און ינסערץ = אָ (ען) אָפּעראַציע.
- די טוועעט איז געראטעוועט אין די זוכן אינדעקס סערוויס פֿאַר שנעל זוכן.
- די אָבדזשעקט סטאָר איז געניצט צו קראָם מידיאַ.
- סענדז שטופּ אַלערץ צו אנהענגערס דורך די נאָטיפיקאַטיאָן סערוויס.
- צו שיקן אַלערץ ייסינגקראַנאַסלי, עס ניצט אַ ריי.
מיר קענען נוצן אַ געבוירן Redis רשימה מיט די פאלגענדע סטרוקטור אויב אונדזער זכּרון קאַש איז Redis:
דער באַניצער 'ס היים טיימליין וואָלט זיין דערהייַנטיקט מיט די נייַע טוועעט, וואָס וואָלט זיין סטאָרד אין די זכּרון קאַש. מיר וועלן נוצן די פאלגענדע ציבור REST API:
דער באַניצער טיימליין איז וויוד דורך דער באַניצער.
- דער וועב סערווירער באקומט אַ באַניצער טיימליין בעטן פון דעם קליענט.
- די בעטן איז געשיקט צו די לייענען אַפּי סערווער דורך די וועב סערווער.
- די לייענען אַפּי קוויריז די SQL דאַטאַבאַסע פֿאַר די באַניצער צייט.
די REST API וואָלט אַרבעט ענלעך צו די היים טיימליין, מיט די ויסנעם אַז אַלע טוועעץ וואָלט זיין פֿון די באַניצער אלא ווי די מענטשן זיי נאָכפאָלגן.
א באנוצער זוכט טערמינען:
- דער וועב סערווער באקומט אַ זוכן בעטן פון דעם קליענט.
- די בעטן איז געשיקט צו די זוך אַפּי סערווער דורך די וועב סערווער.
שריט 4: טוויטטער טיימליין
טיימליין שאַפונג איז אַ שווער אַרבעט. א טיימליין דזשענערייטינג סערווער וואָס לינקס צו די וועב אָדער אַפּלאַקיישאַן סערווערס איז פארלאנגט.
יעדער מאָל ווען אַ באַניצער לאָגס אין, די טיימליין סערוויס האלט די לעצטע טוועעץ פון די יוזערז אין די אנהענגערס טיש און דערהייַנטיקט אָדער דערהייַנטיקונגען די טיימליין פון דער באַניצער.
מיר טאָן ניט ינסטרומענט קיין סאָרט פון ראַנגקינג סיסטעם דאָ; אַנשטאָט, מיר יבערנעמען אַז די שפּיץ 5 טוועעץ פון די באַניצער 'ס אנהענגערס זענען דערלאנגט אין די טיימליין אין סדר פון שאַפונג צייט. מיר קענען האַלטן אַ 50-טוועעט דערפרישן קאַטאָף. מיר נאָך האַלטן רעפרעשינג אָדער קאַנסטראַקטינג אַ טיימליין נאָך דער שוועל איז ריטשט ביז דער באַניצער דערפרישיז די בלאַט.
קאַנסערנז מיט הויך לייטאַנסי און פאָרשטעלונג וועט קומען פון לעבן באַניצער קאָרמען שאַפונג. אַנשטאָט, קריייטינג אַן אָפפלינע טייַך וואָס קענען זיין דערלאנגט טייקעף איז דער בעסטער וועג צו פֿאַרבעסערן פאָרשטעלונג. לויפן דעדאַקייטאַד טיימליין סערווערס וואָס פּינג די אַפּלאַקיישאַן סערווער אויף אַ רעגולער יקער צו דערפרישן די קאָרמען באזירט אויף די צייט עס איז געווען באשאפן.
די ראַנג אַלגערידאַם זאָל נעמען אין באַטראַכטונג קריטיש סיגנאַלז און צושטעלן וואָג צו גאַראַנטירן אַז אַ באַניצער 'ס טיימליין איז נישט דאַמאַנייטאַד דורך מאַטעריאַל פון איינער אָדער מער פון די אַקאַונץ זיי נאָכפאָלגן.
מער גענוי, מיר קענען קלייַבן פֿעיִקייטן שייַכות צו די שייכות פון קיין פיטער נומער, אַזאַ ווי די נומער פון לייקס, באַמערקונגען, שאַרעס און דערהייַנטיקן צייט. יעדער פון די קרייטיריאַ זאָל זיין געוויינט צו אָפּשאַצן די טוועעט, און דער ריי זאָל זיין געוויינט צו ווייַזן טוועעץ אויף די טיימליין.
זאָל מיר קעסיידער פלינק יוזערז ווען נייַ אינהאַלט פֿאַר זייער נעווספעעד איז בארעכטיגט? יוזערז קענען געפֿינען עס וווילטויק צו זיין אַלערטיד ווען נייַע דאַטן זענען בארעכטיגט. אויף רירעוודיק דעוויסעס, אָבער, ווען דאַטן נוצן איז גאַנץ טייַער, עס קען וויסט באַנדווידט.
ווי אַ רעזולטאַט, מיר קענען אַפּט נישט צו שטופּן דאַטן צו רירעוודיק דעוויסעס און אַנשטאָט לאָזן יוזערז צו "ציען צו דערפרישן" פֿאַר נייַע פּאָוסטינגז.
שריט 5: סקיילינג פּלאַן
א פּאָטענציעל באַטאַלנעק איז די Fanout סערוויס. טוויטטער יוזערז מיט מיליאַנז פון אנהענגערס וועט האָבן צו וואַרטן עטלעכע מינוט פֿאַר זייער טוועעץ צו ראָולד אויס. דאָס קען פאַרשאַפן אַ ראַסע מיט ענטפֿערס צו די טוועעט, וואָס מיר קען ויסמיידן דורך ריאָרדערינג די טוועעץ אין די דינסט צייט.
מיר קענען אויך פאַרמייַדן די פאַרשפּרייטן פון טוועעץ פון מענטשן מיט אַ גרויס נומער פון אנהענגערס. אַנשטאָט, מיר קענען זוכן פֿאַר טוועעץ פון העכסט-געפאָלגט מענטשן, ויסשטימען די זוך רעזולטאַטן מיט דער באַניצער 'ס היים טיימליין רעזולטאַטן, און דאַן ריאָרדער די טוועעץ אין דינען צייט.
נאָך ימפּרווומאַנץ אַרייַננעמען:
- האַלטן בלויז אַ ביסל הונדערט טוועעץ אין די זכּרון קאַש פֿאַר יעדער היים טיימליין.
- אין די זכּרון קאַש, בלויז אַקטיוו ניצערס 'היים טיימליין אינפֿאָרמאַציע איז געראטעוועט.
- מיר קענען רעקאָנסטרוירן די קראַנאַלאַדזשי פון די SQL דאַטאַבאַסע אויב אַ באַניצער איז נישט אַקטיוו אין די פריערדיקע 30 טעג.
- צו געפֿינען אויס ווער דער באַניצער איז, נוצן די באַניצער גראַפיק סערוויס.
- לייג די טוועעץ צו די זכּרון קאַש דורך ריטריווינג זיי פֿון די SQL דאַטאַבאַסע.
- די טוועעט אינפֿאָרמאַציע סערוויס קענען בלויז שפּאָרן טוועעץ פֿאַר אַ חודש.
- אין דער באַניצער אינפֿאָרמאַציע סערוויס, בלויז אַקטיוו ניצערס זענען געראטעוועט.
- צו האַלטן לייטאַנסי נידעריק, דער זוך קנויל וואָלט רובֿ מסתּמא דאַרפֿן צו האַלטן די טוועעץ אין זכּרון.
סאָף
כאָטש טוויטטער איז אַ גרויס אָרגאַניזאַציע, עס האט אַ בעסער פארשטאנד פון סיסטעם פּלאַן. איך האָב געטאָן מיין בעסטער צו צושטעלן איר אַ הויך-מדרגה איבערבליק פון די Twitter טיימליין.
איך האָפֿן אַז איר האָט באקומען נוציק אינפֿאָרמאַציע און איר קענען נוצן עס צו גוט.
לאָזן אַ ענטפֿערן