הסבר על חיוב במסד נתונים בזמן אמת

החיובים ב-Firebase הם על הנתונים שאתם מאחסנים במסד הנתונים שלכם ובכל הרשתות היוצאות בשכבת הסשנים (שכבה 5) של מודל OSI. החיוב על האחסון הוא 5$ לכל GB לחודש, מוערך מדי יום. החיוב לא מושפע מהמיקום של מסד הנתונים. תנועה יוצאת כוללת תקורת חיבור והצפנה מכל הפעולות במסד הנתונים והנתונים שהורדו דרך קריאות של מסד נתונים. גם קריאות וגם כתיבות במסדי נתונים יכולות להוביל לעלויות חיבור בחשבונית. הכול תנועה אל מסד הנתונים וממנו, כולל פעולות שנדחו על ידי האבטחה מוביל לעלויות ניתנות לחיוב.

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

  • הורדת נתונים: כאשר לקוחות מקבלים נתונים ממסד הנתונים שלכם, Firebase חיובים בגין הנתונים שהורדתם. בדרך כלל, מקור הנתונים הזה עלויות רוחב פס, אבל הן לא הגורם היחיד בחשבון.
  • תקורת פרוטוקול: תנועה נוספת בין השרת ללקוחות הם הכרחיים כדי ליצור ולתחזק ביקור. בהתאם למודל , שהתנועה הזו עשויה לכלול את הנתונים הבאים: זמן אמת של מסד הנתונים בזמן אמת ב-Firebase תקורת פרוטוקול, תקורת WebSocket ותקורה של כותרות HTTP. בכל פעם נוצר חיבור, התקורה הזו, בשילוב עם כל הצפנת SSL תקורה, תורמות לעלויות החיבור. זהו רוחב פס לא גדול לבקשה אחת, אבל הוא יכול להוות חלק משמעותי בחשבונית אם עומסי העבודה שלכם קטנים או אם אתם יוצרים חיבורים קצרים ותדירים.
  • תקורה של הצפנת SSL: יש עלות שמשויכת ל-SSL התקורה של ההצפנה שנדרשת לחיבורים מאובטחים. בממוצע, העלות הזו הוא בערך 3.5KB ללחיצת היד הראשונית, וכעשרות בייטים לכותרות של רשומות TLS בכל הודעה יוצאת. ברוב האפליקציות, האפשרות הזו באחוז קטן מהחיוב. עם זאת, אם במקרה הספציפי שלכם נדרשים הרבה לחיצות יד של SSL, הזמן הזה יכול לגדול. לדוגמה, מכשירים שלא תומכים בכרטיסים לסשנים של TLS עשוי לדרוש מספר רב של לחיצות יד של חיבור SSL.
  • נתוני מסוף Firebase: בדרך כלל הנתונים האלה לא משמעותיים החלק מתוך העלויות של Realtime Database, חיובי Firebase על נתונים שאתה קורא כותבים מהמסוף של Firebase.

הערכת השימוש שחויב

כדי לראות את חיבורי Realtime Database הנוכחיים ואת צריכת הנתונים שלך, יש לבדוק שימוש במסוף Firebase. אפשר לבדוק את השימוש במהלך תקופת החיובים הנוכחית, ב-30 הימים האחרונים או ב-24 השעות האחרונות.

מערכת Firebase מציגה נתוני שימוש לגבי המדדים הבאים:

  • חיבורים: מספר החיבורים בו-זמנית שנפתחים כרגע בזמן אמת למסד הנתונים. הנתונים האלה כוללים את החיבורים הבאים בזמן אמת: WebSocket,‏ Long Polling ואירועים שנשלחים מהשרת ב-HTML. כן לא לכלול בקשות RESTful.
  • אחסון: כמה נתונים מאוחסנים במסד הנתונים שלכם. הנתונים האלה לא כוללים אירוח ב-Firebase או נתונים שמאוחסנים דרך מוצרים אחרים של Firebase.
  • הורדות: כל הבייטים שהורדו ממסד הנתונים, כולל פרוטוקול ועל תקורת ההצפנה.
  • עומס: בתרשים הזה מוצגת נתוני השימוש במסד הנתונים, עיבוד הבקשות, במהלך מרווח זמן של דקה אחת. יכול להיות שיהיו בעיות בביצועים כשמסד הנתונים מתקרב ל-100%.

אופטימיזציה של השימוש

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

  • שימוש בערכות ה-SDK המותאמות: ככל האפשר, יש להשתמש בערכות ה-SDK שמתאימות בפלטפורמה של האפליקציה, במקום ב-API ל-REST. ערכות ה-SDK נשארות פתוחות חיבורים, וכך להפחית את העלויות של הצפנת SSL שבדרך כלל נגבות API בארכיטקטורת REST.
  • בדיקת באגים: אם עלויות רוחב הפס גבוהות באופן בלתי צפוי, צריך לוודא שהאפליקציה לא מסנכרנת יותר נתונים או מסנכרנת בתדירות גבוהה יותר ממה שהתכוונתם. כדי לזהות בעיות, השתמשו בכלי הפרופילר כדי למדוד את פעולות הקריאה ולהפעיל רישום ביומן של ניפוי באגים Android, Object-C, ואינטרנט ערכות SDK. כדי לוודא, יש לבדוק את תהליכי הרקע והסנכרון באפליקציה הכול פועל כמצופה.
  • הפחתת חיבורים: אם אפשר, כדאי לנסות לשפר את החיבור רוחב פס. בקשות REST קטנות בתדירות גבוהה יכולות להיות יקרות יותר מבקשה אחת, חיבור רציף באמצעות ה-SDK המקורי. אם בכל זאת משתמשים ב-API ל-REST, מומלץ להשתמש ב-true-alive של HTTP אירועים שנשלחו מהשרת, שיכול להפחית את העלויות כתוצאה מלחיצת יד של SSL.
  • שימוש בכרטיסים לסשנים של TLS: לאחר המשך השימוש, הפחתת העלויות התקורה של הצפנת SSL חיבורים על ידי הנפקה כרטיסים לסשנים של TLS. האפשרות הזו שימושית במיוחד אם אתם צריכים חיבורים מאובטחים ותדירים למסד הנתונים.
  • שאילתות לאינדקס: הוספת הנתונים לאינדקס מפחית את רוחב הפס הכולל שמשמש לשאילתות, וזה היתרון הכפול להפחית את העלויות ולשפר את ביצועי מסד הנתונים. משתמשים ב כלי לניתוח פרופילים כדי למצוא שאילתות שלא נוספו לאינדקס מסד הנתונים.
  • אופטימיזציה של המאזינים: הוספת שאילתות כדי להגביל את נתוני ההאזנה פעולות מחזירות נתונים באמצעות פונקציות מאזינים שמורידים רק עדכונים לנתונים – לדוגמה, on() במקום once(). בנוסף, מציבים את המאזינים בתור למטה ככל האפשר כדי להגביל את כמות הנתונים שהם מסנכרנים.
  • הפחתת עלויות האחסון: הפעלת משימות ניקוי תקופתיות וצמצום כפילויות במסד הנתונים.
  • שימוש בכללים: מניעת פעולות לא מורשות שעלולות להיות יקרות במסד הנתונים. לדוגמה, שימוש ב-Firebase Realtime Database Security Rules יכול למנוע תרחיש שבו משתמש זדוני מוריד שוב ושוב את כל מסד הנתונים. מידע נוסף על באמצעות כללים למסד נתונים בזמן אמת ב-Firebase.

תוכנית האופטימיזציה הטובה ביותר לאפליקציה תלויה בתרחיש השימוש הספציפי שלכם. זו רשימה חלקית של שיטות מומלצות, אבל אפשר למצוא בה עצות וטיפים נוספים מהמומחים של Firebase ערוץ איטי או ב-Stack Overflow.