נתוני ליבהזמן אמת

צ'אט והתראות בזמן אמת

מפיצים הודעות לכל לקוח מחובר בזמן אמת, עם ערוצים מפוצלים לאשכולות וזרמים להיסטוריה.

פרסום, כל מנוי
1
ערוצים לאשכולות
מפוצלים
עם זרמים
+היסטוריה
צעד 1 מתוך 5
השרתים נרשמים

כל שרת WebSocket נרשם לחדרים שהמשתמשים המחוברים אליו נמצאים בהם.

סשן לדוגמהplaying
# השרתים נרשמים
hotkv> SUBSCRIBE room:42
1) "subscribe"
2) "room:42"
3) (integer) 1

הדגמה מונפשת עם פקודות HotKV אמיתיות ותשובות לדוגמה. לחצו על כל שלב כדי לעבור אליו. הפקודות והתשובות נשארות באנגלית, בדיוק כפי שמקלידים ורואים ב-HotKV.

הבעיה

חדר צ'אט או פיד התראות חי חייבים להגיע לכל משתמש מחובר בבת אחת, על פני הרבה שרתי WebSocket. סקירת מסד נתונים איטית ויקרה מדי, והשרתים צריכים דרך משותפת לספר זה לזה שמשהו קרה.

איך HotKV מטפל בזה

כל שרת WebSocket נרשם לערוצים שהמשתמשים שלו מתעניינים בהם. כשמשהו קורה, PUBLISH אחד מגיע לכל שרת רשום, שמעביר אותו למשתמשים שלו. ערוצים מפוצלים שומרים את התעבורה על הצומת שבבעלותו הערוץ באשכול, וזרם לצד כל חדר שומר את ההיסטוריה למשתמשים שמצטרפים מאוחר יותר.

צעד אחר צעד

מה קורה, פקודה אחר פקודה

  1. 01

    השרתים נרשמים

    כל שרת WebSocket נרשם לחדרים שהמשתמשים המחוברים אליו נמצאים בהם.

    SUBSCRIBE room:42
  2. 02

    Alice שולחת הודעה

    השרת שלה מפרסם פעם אחת. התשובה היא כמה מנויים קיבלו אותה.

    PUBLISH room:42 "{\"from\":\"alice\",\"text\":\"Deploy is green\"}"
  3. 03

    שומרים את ההיסטוריה

    ההודעה מתווספת גם לזרם של החדר, שמוגבל ל-1000 ההודעות האחרונות.

    XADD room:42:history MAXLEN ~ 1000 * from alice text "Deploy is green"
  4. 04

    Bob מתחבר מחדש מאוחר יותר

    הוא קורא את 50 ההודעות האחרונות מהזרם, ואז עובר לשידור חי בערוץ.

    XREVRANGE room:42:history + - COUNT 50
  5. 05

    ערוצים מפוצלים באשכול

    במצב אשכול, SPUBLISH שומר את ההודעה על הצומת שבבעלותו הערוץ.

    SPUBLISH room:{42}:typing "alice"
איפה זה מתאים

תרחישים מהעולם האמיתי

צ'אט צוות וצ'אט תמיכה

הודעות מופצות לכל שרת שמחזיק חיבור של חבר, והזרם נותן לבאים החדשים את ההיסטוריה.

התראות חיות

עדכוני הזמנות, אזכורים והתראות נדחפים לדפדפן ברגע שהם קורים.

אפליקציות שיתופיות

מיקומי סמן ומחווני הקלדה משודרים בערוצים קצרי חיים.

מובנה

מה מקבלים

הפצה

פרסום אחד מגיע לכל מנוי.

PUBLISHSUBSCRIBE

מנויי תבניות

נרשמים ל-room:* כדי לקבל כל חדר.

PSUBSCRIBE

Pub/sub מפוצל

ערוצים נשארים על הצומת שבבעלותו הם באשכול.

SPUBLISHSSUBSCRIBE

היסטוריה

מזווגים ערוץ עם זרם מוגבל להודעות שמשתמשים החמיצו.

XADDXREVRANGE

שאלות נפוצות

האם הודעות pub/sub נשמרות?

לא. Pub/sub מוסר למי שרשום באותו רגע. משתמשים בזרם לצד הערוץ אם משתמשים צריכים היסטוריה.

האם זה עובד באשכול?

כן. משתמשים ב-pub/sub מפוצל (SPUBLISH, SSUBSCRIBE) כך שתעבורת כל ערוץ נשארת על הצומת שבבעלותו הוא.

האם אפשר לקבל התראה כשמפתחות משתנים?

כן. התראות מרחב מפתחות מפרסמות אירועים על שינויי מפתחות. ראו בתיעוד את התראות מרחב המפתחות.

שימושים קשורים

נסו על עומס העבודה שלכם

HotKV מדבר את פרוטוקול Redis, ולכן אפשר להפנות אליו לקוח קיים ולהריץ את אותן פקודות.