เป้าหมายของเราคือการส่งข้อความทุกข้อความที่ส่งโดยใช้ FCM เสมอ อย่างไรก็ตาม การส่งข้อความ ทุกข้อความอาจส่งผลให้ประสบการณ์ของผู้ใช้โดยรวมไม่ดี ในกรณีอื่นๆ เราจำเป็นต้องกำหนดขอบเขตเพื่อให้มั่นใจว่า FCM จะให้บริการที่ปรับขนาดได้สำหรับผู้ส่งทุกราย ประเภทของขีดจำกัดและโควต้าที่อธิบายไว้ใน ส่วนนี้ช่วยให้เราสร้างสมดุลระหว่างปัจจัยสำคัญเหล่านี้ได้
การควบคุมข้อความดาวน์สตรีม
HTTP v1 API ได้เปิดตัวโควต้าต่อโปรเจ็กต์ต่อนาทีสำหรับการรับส่งข้อความดาวน์สตรีม โควต้าเริ่มต้นที่ 600,000 ข้อความต่อนาทีครอบคลุมนักพัฒนาแอปมากกว่า 99% FCM ขณะเดียวกันก็ปกป้องความเสถียรของระบบและ ลดผลกระทบของโปรเจ็กต์ที่มีการใช้งานสูง
รูปแบบการเข้าชมที่เพิ่มขึ้นอย่างรวดเร็วอาจ ทำให้เกิดข้อผิดพลาดเกี่ยวกับโควต้าที่เกิน ในกรณีที่ใช้โควต้าเกิน ระบบจะแสดงรหัสสถานะ HTTP 429 (QUOTA_EXCEEDED) จนกว่าจะมีการเติมโควต้าในนาทีถัดไป ระบบอาจส่งการตอบกลับ 429 ในกรณีที่มีการโอเวอร์โหลดด้วย ดังนั้นเราขอแนะนำให้คุณจัดการการตอบกลับ 429 ตามคำแนะนำที่เผยแพร่
ข้อควรทราบ
- โควต้าดาวน์สตรีมจะวัดข้อความ ไม่ใช่คำขอ
- ระบบจะนับข้อผิดพลาดของไคลเอ็นต์ (รหัสสถานะ HTTP 400-499) (ยกเว้น 429)
- โควต้าเป็นต่อนาที แต่เวลาเหล่านี้ไม่ได้อิงตามนาฬิกา
โควต้าการตรวจสอบ
คุณดูโควต้า การใช้งาน และข้อผิดพลาดได้ใน Google Cloud Console โดยทำดังนี้
- ไปที่คอนโซล Google Cloud
- เลือก API และบริการ
- เลือก Firebase Cloud Messaging API จากรายการตาราง
- เลือกโควต้าและขีดจำกัดของระบบ
หมายเหตุ: กราฟเหล่านี้ไม่ได้สอดคล้องกับเวลาที่แน่นอนของนาทีโควต้า ซึ่งหมายความว่า อาจมีการแสดงข้อผิดพลาด 429 แม้ว่าการเข้าชมจะดูเหมือนอยู่ภายใต้โควต้า
ขอเพิ่มโควต้า
ก่อนขอเพิ่มโควต้า โปรดตรวจสอบสิ่งต่อไปนี้
- การใช้งานของคุณมักจะ ≥ 80% ของโควต้าเป็นเวลาอย่างน้อย 5 นาทีติดต่อกัน ต่อวัน
- คุณมีอัตราข้อผิดพลาดของไคลเอ็นต์น้อยกว่า 5% โดยเฉพาะในช่วงที่มีการเข้าชมสูงสุด
- คุณปฏิบัติตามแนวทางปฏิบัติแนะนำสำหรับการส่งข้อความจำนวนมาก
หากมีคุณสมบัติตรงตามเกณฑ์เหล่านี้ คุณจะส่งคำขอเพิ่มโควต้าได้สูงสุด +25% และ FCM จะพยายามอย่างเต็มที่เพื่อดำเนินการตามคำขอ (ไม่มีการรับประกันว่าจะเพิ่มโควต้าได้)
หากต้องการโควต้าการรับส่งข้อความดาวน์สตรีมเพิ่มเติมเนื่องจากการเปิดตัวที่กำลังจะมีขึ้นหรือกิจกรรมชั่วคราว โปรดขอโควต้าล่วงหน้าอย่างน้อย 15 วันเพื่อให้มีเวลาเพียงพอในการจัดการคำขอ สำหรับคำขอขนาดใหญ่ (>18 ล้านข้อความต่อนาที) จะต้องแจ้งล่วงหน้าอย่างน้อย 30 วัน การเปิดตัวและคำขอสำหรับกิจกรรมพิเศษยังคงเป็นไปตามข้อกำหนดของอัตราข้อผิดพลาดของไคลเอ็นต์และแนวทางปฏิบัติแนะนำ
โปรดดูคำถามที่พบบ่อยเกี่ยวกับโควต้า FCM ด้วย
ขีดจำกัดข้อความหัวข้อ
อัตราการเพิ่มหรือนำการสมัครใช้บริการหัวข้อออกจะจำกัดไว้ที่ 3,000 QPS ต่อโปรเจ็กต์
ดูอัตราการส่งข้อความได้ที่การควบคุมปริมาณการส่งข้อความ
การควบคุมการกระจาย
การส่งต่อข้อความคือกระบวนการส่งข้อความไปยังอุปกรณ์หลายเครื่อง เช่น เมื่อคุณกำหนดเป้าหมายไปยังหัวข้อและกลุ่ม หรือเมื่อคุณใช้เครื่องมือแต่งข้อความแจ้ง เพื่อกำหนดเป้าหมายไปยังกลุ่มเป้าหมายหรือกลุ่มผู้ใช้
การส่งต่อข้อความไม่ได้เกิดขึ้นทันที ดังนั้นบางครั้งคุณอาจมีการส่งต่อหลายรายการที่กำลังดำเนินการพร้อมกัน เราจำกัดจำนวนการส่งต่อข้อความพร้อมกันต่อโปรเจ็กต์ไว้ที่ 1,000 รายการ หลังจากนั้น เราอาจปฏิเสธคำขอ Fanout เพิ่มเติม หรือเลื่อนการ Fanout คำขอจนกว่า Fanout บางรายการที่กำลังดำเนินการอยู่จะเสร็จสมบูรณ์
อัตรา Fanout ที่ทำได้จริงจะได้รับผลกระทบจากจำนวนโปรเจ็กต์ ที่ขอ Fanout พร้อมกัน อัตราการกระจายข้อมูล 10,000 QPS สำหรับโปรเจ็กต์แต่ละโปรเจ็กต์ไม่ใช่เรื่องแปลก แต่ตัวเลขดังกล่าวไม่ได้รับประกันและเป็นผลมาจากโหลดทั้งหมดในระบบ โปรดทราบว่าความจุ Fanout ที่พร้อมใช้งานจะแบ่งออกเป็นโปรเจ็กต์ต่างๆ ไม่ใช่คำขอ Fanout ดังนั้น หากโปรเจ็กต์มี Fanout 2 รายการที่กำลังดำเนินการอยู่ แต่ละ Fanout จะเห็นอัตรา Fanout ที่ใช้ได้เพียงครึ่งเดียวเท่านั้น วิธีที่แนะนำในการเพิ่มความเร็วในการกระจายข้อมูลให้ได้สูงสุดคือการกระจายข้อมูลที่ใช้งานอยู่ครั้งละ 1 รายการเท่านั้น
การควบคุมข้อความแบบยุบได้
ตามที่อธิบายไว้ในข้อความที่ย่อได้ ข้อความที่ย่อได้คือการแจ้งเตือนที่ไม่มีเนื้อหาซึ่งออกแบบมาให้ย่อซ้อนกัน ในกรณีที่นักพัฒนาแอปส่งข้อความเดียวกันไปยังแอปบ่อยเกินไป เราจะหน่วงเวลา (จำกัด) ข้อความเพื่อลดผลกระทบต่อแบตเตอรี่ของผู้ใช้
ตัวอย่างเช่น หากคุณส่งคำขอซิงค์อีเมลใหม่จำนวนมากไปยังอุปกรณ์เครื่องเดียว เราอาจชะลอคำขอซิงค์อีเมลครั้งถัดไปสัก 2-3 นาที เพื่อให้อุปกรณ์ซิงค์ในอัตราเฉลี่ยที่ต่ำลงได้ การจำกัดนี้ดำเนินการอย่างเคร่งครัดเพื่อ จำกัดผลกระทบต่อแบตเตอรี่ที่ผู้ใช้ได้รับ
หากกรณีการใช้งานของคุณต้องใช้รูปแบบการส่งแบบ Burst สูง ข้อความแบบไม่ยุบอาจเป็นตัวเลือกที่เหมาะสม สำหรับข้อความดังกล่าว โปรดตรวจสอบว่าได้รวม เนื้อหาในข้อความดังกล่าวเพื่อลดการใช้แบตเตอรี่
เราจำกัดข้อความที่ยุบได้ไว้ที่ 20 ข้อความต่อแอปต่ออุปกรณ์ โดยจะเติมข้อความให้ 1 ข้อความทุกๆ 3 นาที
อัตราการส่งข้อความสูงสุดไปยังอุปกรณ์เครื่องเดียว
สำหรับ Android คุณจะส่งข้อความได้สูงสุด 240 ข้อความต่อนาทีและ 5,000 ข้อความต่อชั่วโมงไปยังอุปกรณ์เครื่องเดียว เกณฑ์ที่สูงนี้มีไว้เพื่อรองรับการเข้าชมที่เพิ่มขึ้นในระยะสั้น เช่น เมื่อผู้ใช้โต้ตอบกันอย่างรวดเร็วผ่านแชท ขีดจำกัดนี้จะป้องกันไม่ให้ตรรกะการส่งข้อความทำให้แบตเตอรี่ในอุปกรณ์หมดโดยไม่ตั้งใจ
สำหรับ iOS เราจะแสดงข้อผิดพลาดเมื่ออัตราเกินขีดจำกัดของ APNs