כדי לפרסם הודעה באמצעות Pub/Sub, אפליקציה לשליחת הודעות יוצרת הודעות ושולחת אותן לנושא.
במאמר הזה נסביר על תהליך הפרסום, כולל המושגים "נושאים" ו"הודעות".
מידע על נושאים
נושא ב-Pub/Sub הוא משאב עם שם שמייצג פיד של הודעות. כשבעל תוכן דיגיטלי שולח הודעה, היא מטרגטת נושא ספציפי. שירות Pub/Sub משתמש בשם הנושא הזה כדי לנתב את ההודעה לכל המינויים שמצורפים לנושא. אם יש כמה מנויים למינוי, רק מנוי אחד במינוי מקבל את ההודעה.
בעלי התוכן הדיגיטלי לא צריכים לדעת כמה מנויים יש. הם מתמקדים בנושא, ומבטיחים הפרדה בין שליחת ההודעות לבין קבלת ההודעות.
ב-Pub/Sub יש שני סוגים של נושאים: נושא רגיל ונושא ייבוא.
מאפיינים של נושא
כשיוצרים או מעדכנים נושא, אפשר לציין את המאפיינים שלו.
מידע נוסף על מאפייני הנושא זמין במאמר מאפיינים של נושא.
מידע על נושאי ייבוא
נושא ייבוא מאפשר ל-Pub/Sub להטמיע נתונים בסטרימינג ממקור אחר, ולפעול כאפליקציית בעל התוכן הדיגיטלי ששולחת את הנתונים לנושא. אפשר להפעיל הטמעת נתונים בנושא באמצעות המסוף, Google Cloud CLI, קריאות REST או ספריות הלקוח. כחלק מניהול נושא הייבוא,Google Cloud מספק מעקב ושינוי קנה מידה של צינור עיבוד הנתונים להטמעה.
בלי נושא ייבוא, כדי להעביר נתוני סטרימינג ל-Pub/Sub ממקור נתונים צריך שירות נוסף. השירות הנוסף הזה שולף נתונים מהמקור המקורי ומפרסם אותם ב-Pub/Sub. השירות הנוסף יכול להיות מנוע סטרימינג כמו Apache Spark או שירות בהתאמה אישית. אתם גם צריכים להגדיר, לפרוס, להריץ, לשנות את קנה המידה ולעקוב אחרי השירות הזה.
ברשימה הבאה מפורט מידע חשוב על נושאי הייבוא:
בדומה לנושא רגיל, עדיין אפשר לפרסם באופן ידני בנושא ייבוא.
אפשר לצרף רק מקור הטמעה אחד לנושא ייבוא.
מומלץ לייבא נושאים לנתוני סטרימינג. אם אתם שוקלים להטמיע נתונים באצווה ב-BigQuery במקום להטמיע נתונים בסטרימינג, אתם יכולים לנסות את שירות העברת הנתונים ל-BigQuery. אם אתם רוצים להטמיע נתונים ב-Cloud Storage, Storage Transfer Service (STS) הוא אפשרות טובה.
אפשר לייבא נושאים ל-Pub/Sub מהמקורות הבאים:
שכפול נתונים בנושא
נושא Pub/Sub משתמש בשלושה אזורים כדי לאחסן נתונים. השירות תומך ברפליקציה סינכרונית לשני אזורים לפחות, וברפליקציה כמיטב היכולת לאזור שלישי נוסף. הרפליקציה של 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, אפליקציית המפרסם יוצרת הודעות ושולחת אותן לנושא.
- יוצרים הודעה שמכילה את הנתונים.
- בוחרים מאפייני פרסום אופציונליים.
- שליחת בקשה לשרת Pub/Sub כדי לפרסם את ההודעה בנושא מסוים.
שירות Pub/Sub מקבל את ההודעה ומעבד אותה באופן הבא:
ההודעה נשמרת להפצה.
ההודעה משוכפלת בכמה אזורים כדי להבטיח עמידות וזמינות גבוהה.
Pub/Sub מזהה את האפליקציות הרשומות עם מינויים שתואמים לנושא של ההודעה, ושולח עותק של ההודעה לכל אחת מהן.
בזכות השימוש ב-Pub/Sub תישלח הודעה אחת לפחות לכל התראה, וההודעות יגיעו בסדר הנכון כמיטב היכולת.
סקירה כללית על הארכיטקטורה של Pub/Sub