הודעות בנושאים

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

נקודות חשובות לגבי העברת הודעות לפי נושאים:

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

מכסות ומגבלות

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

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

הגבלת קצב הבקשות של מינויים

הקצב של הוספה או הסרה של מינויים לנושאים מוגבל ל-3,000 QPS לכל פרויקט.

תדירות המינויים החדשים מוגבלת לכל פרויקט. אם תשלחו יותר מדי בקשות להרשמה בפרק זמן קצר, השרתים של FCM יחזירו את התגובה 429 RESOURCE_EXHAUSTED ("QUOTA_EXCEEDED"). צריך לנסות שוב עם השהיה מעריכית לפני ניסיון חוזר (exponential backoff).

ויסות נתונים (throttle) של Fanout

הפצת הודעות היא תהליך של שליחת הודעה למספר מכשירים, למשל כשמטרגטים נושאים וקבוצות, או כשמשתמשים בניסוח מסרים (Notifications Composer) כדי לטרגט קהלי יעד או פלחי משתמשים.

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

שיעור הפיצול בפועל שניתן להשיג מושפע ממספר הפרויקטים שמבקשים פיצולים בו-זמנית. קצב פיזור של 10,000‎ QPS לפרויקט בודד הוא לא דבר נדיר, אבל המספר הזה לא מובטח והוא תוצאה של העומס הכולל על המערכת. חשוב לציין שהקיבולת הזמינה של ה-fanout מחולקת בין הפרויקטים ולא בין בקשות ה-fanout. לכן, אם בפרויקט יש שתי פעולות fanout בתהליך, כל אחת מהן תראה רק חצי מקצב ה-fanout הזמין. כדי למקסם את מהירות ההפצה, מומלץ להפעיל רק הפצה אחת בכל פעם.

השלבים הבאים