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

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

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

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

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

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

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

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

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

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

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

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

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

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

השלבים הבאים