סקירה כללית על פרסום הודעות

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

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

מידע על נושאים

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

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

‫Pub/Sub תומך בשני סוגים של נושאים: נושא רגיל ונושא ייבוא.

מאפיינים של נושא

כשיוצרים או מעדכנים נושא, אפשר לציין את מאפייני הנושא.

מידע נוסף על מאפייני הנושא זמין במאמר מאפיינים של נושא.

מידע על ייבוא נושאים

נושא ייבוא מאפשר ל-Pub/Sub להטמיע נתונים בסטרימינג ממקור אחר ולפעול כאפליקציית המפרסם ששולחת את הנתונים לנושא. אפשר להפעיל את ההטמעה בנושא באמצעות המסוף, Google Cloud CLI, קריאות ל-REST או ספריות הלקוח. במסגרת ניהול נושא הייבוא,Cloud de Confiance by S3NS מספק מעקב ושינוי קנה מידה של צינור ההזנה.

אם לא משתמשים בנושא ייבוא, צריך שירות נוסף כדי להעביר נתוני סטרימינג אל Pub/Sub ממקור נתונים. השירות הנוסף הזה שולף נתונים מהמקור המקורי ומפרסם אותם ב-Pub/Sub. שירות נוסף יכול להיות מנוע סטרימינג כמו Apache Spark או שירות שנכתב בהתאמה אישית. בנוסף, צריך להגדיר, לפרוס, להריץ, לשנות את קנה המידה ולנטר את השירות הזה.

בהמשך מופיע מידע חשוב לגבי נושאי ייבוא:

  • בדומה לנושא רגיל, עדיין אפשר לפרסם באופן ידני בנושא מיובא.

  • אפשר לצרף רק מקור אחד של נתונים נכנסים לנושא ייבוא.

מומלץ לייבא נושאים לנתונים שמוזרמים. אם אתם שוקלים להשתמש בטעינת נתונים באצווה ל-BigQuery במקום בטעינת נתונים בסטרימינג, אתם יכולים לנסות את שירות העברת הנתונים ל-BigQuery. אם רוצים להטמיע נתונים ב-Cloud Storage, כדאי להשתמש ב-Storage Transfer Service‏ (STS).

‫Pub/Sub תומך במקורות הבאים לייבוא נושאים:

שכפול נתונים בנושא

נושא Pub/Sub משתמש בשלושה אזורים לאחסון נתונים. השירות תומך ברפליקציה סינכרונית לשני אזורים לפחות, וברפליקציה בשיטת best-effort לאזור שלישי נוסף. הרפליקציה של Pub/Sub מתבצעת באזור אחד בלבד.

מידע על הודעות

הודעה ב-Pub/Sub היא הנתונים שמועברים דרך השירות.

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

  • נתוני ההודעה: זהו התוכן העיקרי של ההודעה, ויכול להיות כל טקסט או נתונים בינאריים. הוא מייצג את המידע בפועל שרוצים להעביר בין בעלי תוכן דיגיטלי לבין מנויים. אם אתם משתמשים ישירות ב-API בארכיטקטורת REST, נתוני ההודעה צריכים להיות בקידוד Base64. אפשר לראות דוגמה בכרטיסייה REST בקטע פרסום הודעות.

  • מפתח הזמנה: מזהה אופציונלי שמייצג את הישות שעבורה צריך להזמין את ההודעות. ההודעות עם אותו מפתח הזמנה אמורות להישלח למנוי בסדר שבו הן פורסמו. מפתח הזמנה נדרש רק אם רוצים שההודעות יימסרו לפי הסדר. מידע נוסף על הזמנת מפתחות זמין במאמר הזמנת הודעות.

  • מאפיינים: אלה צמדי מפתח/ערך אופציונליים שמספקים הקשר ומידע נוספים על ההודעה. אפשר להשתמש בהם כדי לנתב, לסנן או להעשיר את תוכן ההודעה. לדוגמה, אפשר להוסיף מאפיינים כמו חותמות זמן או מזהי עסקאות. מידע נוסף על מאפיינים שמשמשים לפרסום הודעות זמין במאמר בנושא שימוש במאפיינים לפרסום הודעה.

שירות Pub/Sub מוסיף את השדות הבאים להודעה:

  • מזהה הודעה ייחודי לנושא
  • חותמת זמן של קבלת ההודעה בשירות Pub/Sub

כשמפרסמים הודעות באמצעות ספריות לקוח של Pub/Sub, צריך לספק את ההודעה data כמערך בייטים, כמו Buffer ב-Node.js. אם הנתונים הם מחרוזת, קודם צריך לקודד אותם לבייטים, למשל באמצעות קידוד UTF-8, לפני שמעבירים אותם לספריית הלקוח.

אם אתם משתמשים ישירות ב-API בארכיטקטורת REST, נתוני ההודעה צריכים להיות בקידוד Base64 ולהישלח כמחרוזת.

בדוגמה הבאה מוצג ייצוג של הודעה ב-JSON שנשלחה על ידי לקוח:

{
  "data": "VGhpcyBpcyB0aGUgY29yZSBtZXNzYWdlIGNvbnRlbnQu",
  "attributes": {
    "category": "notification",
    "user_id": "12345",
    "priority": "medium"
  },
  "orderingKey": "12345"
}

כשמינוי מקבל את ההודעה, היא כוללת את הערכים messageId ו-publishTime, שנוספו על ידי שירות Pub/Sub:

{
  "data": "VGhpcyBpcyB0aGUgY29yZSBtZXNzYWdlIGNvbnRlbnQu",
  "attributes": {
    "category": "notification",
    "user_id": "12345",
    "priority": "medium"
  },
  "messageId": "19443130675731448",
  "publishTime": "2026-05-04T23:15:19.863Z",
  "orderingKey": "12345"
  }
}

תהליך עבודה של פרסום הודעה

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

  1. יוצרים הודעה שמכילה את הנתונים.
  2. בוחרים מאפייני פרסום אופציונליים.
  3. שליחת בקשה לשרת Pub/Sub לפרסום ההודעה בנושא ספציפי.
  4. שירות Pub/Sub מקבל את ההודעה ומעבד אותה באופן הבא:

    • ההודעה נשמרת להפצה.

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

    • מערכת Pub/Sub מזהה את המינויים של האפליקציות הרשומות שמתאימים לנושא של ההודעה, ושולחת עותק של ההודעה לכל אחת מהן.

ב-Pub/Sub יש אפשרות של לפחות מסירה אחת של הודעות וסדר מסירה כמיטב היכולת למנויים קיימים.

מידע נוסף על מערכת Pub/Sub זמין במאמר סקירה כללית של שירות Pub/Sub.

מידע נוסף על אופן הפעולה של Pub/Sub

המאמרים הבאים

Apache Kafka®‎ הוא סימן מסחרי רשום של The Apache Software Foundation או של השותפים העצמאיים שלה בארצות הברית או במדינות אחרות.