การรับส่งข้อความตามหัวข้อของ FCM ช่วยให้คุณส่งข้อความไปยังอุปกรณ์หลายเครื่องที่เลือกรับหัวข้อหนึ่งๆ ได้ คุณเขียนข้อความหัวข้อได้ตามต้องการ และ FCM จะจัดการการกำหนดเส้นทางและส่งข้อความไปยังอุปกรณ์ที่เหมาะสมได้อย่างน่าเชื่อถือ
ประเด็นสำคัญเกี่ยวกับการรับส่งข้อความตามหัวข้อ
- เหมาะที่สุดสำหรับข้อมูลที่เปิดเผยต่อสาธารณะ เช่น การแจ้งเตือนสภาพอากาศ
- ข้อความหัวข้อได้รับการเพิ่มประสิทธิภาพเพื่ออัตราการส่งข้อมูล ไม่ใช่เวลาในการตอบสนอง หากต้องการส่งข้อความไปยังอุปกรณ์เครื่องเดียวหรือกลุ่มเล็กๆ อย่างรวดเร็วและปลอดภัย ให้กำหนดเป้าหมายข้อความไปยังโทเค็นการลงทะเบียนแทนหัวข้อ
โควต้าและขีดจำกัด
การรับส่งข้อความตามหัวข้อรองรับการสมัครใช้บริการแบบไม่จำกัดสำหรับแต่ละหัวข้อ อย่างไรก็ตาม FCM จะบังคับใช้ขีดจำกัดในด้านต่อไปนี้
- อินสแตนซ์แอป 1 รายการสามารถสมัครรับหัวข้อได้ไม่เกิน 2,000 หัวข้อ
- หากคุณใช้การสมัครใช้บริการแอปแบบกลุ่มเพื่อสมัครใช้บริการอินสแตนซ์แอปที่ต้องสมัครใช้บริการ คำขอแต่ละรายการจะจำกัดอินสแตนซ์แอปที่ต้องสมัครใช้บริการไว้ที่ 1, 000 รายการ
การควบคุมปริมาณการสมัครใช้บริการ
อัตราการเพิ่มหรือนำการสมัครใช้บริการหัวข้อออกจะจำกัดอยู่ที่ 3,000 QPS ต่อโปรเจ็กต์
ความถี่ของการสมัครใช้บริการใหม่จะมีการจำกัดอัตราต่อโปรเจ็กต์ หากคุณส่งคำขอการสมัครใช้บริการมากเกินไปในช่วงเวลาสั้นๆ เซิร์ฟเวอร์ FCM จะตอบกลับด้วยการตอบกลับ 429 RESOURCE_EXHAUSTED ("QUOTA_EXCEEDED") ลองอีกครั้งโดยใช้ Exponential Backoff
การควบคุมการกระจายข้อมูล
การกระจายข้อความคือกระบวนการส่งข้อความไปยังอุปกรณ์หลายเครื่อง เช่น เมื่อคุณกำหนดเป้าหมายหัวข้อและกลุ่ม หรือเมื่อใช้ Notifications Composer เพื่อกำหนดเป้าหมายกลุ่มเป้าหมายหรือกลุ่มผู้ใช้
การกระจายข้อความไม่ได้เกิดขึ้นทันที ดังนั้นในบางครั้งคุณจึงมีการกระจายข้อความหลายรายการพร้อมกัน เราจำกัดจำนวนการกระจายข้อความพร้อมกันต่อโปรเจ็กต์ไว้ที่ 1,000 รายการ หลังจากนั้น เราอาจปฏิเสธคำขอ Fanout เพิ่มเติมหรือเลื่อนการ Fanout ของคำขอออกไปจนกว่าการ Fanout บางรายการที่ดำเนินการอยู่จะเสร็จสมบูรณ์
อัตรา Fanout จริงที่ทำได้จะขึ้นอยู่กับจำนวนโปรเจ็กต์ที่ขอ Fanout พร้อมกัน อัตราการกระจาย 10,000 QPS สำหรับโปรเจ็กต์เดียวไม่ใช่เรื่องแปลก แต่ตัวเลขดังกล่าวไม่ใช่การรับประกันและเป็นผลมาจากภาระงานทั้งหมดในระบบ โปรดทราบว่าความจุ Fanout ที่ใช้ได้จะแบ่งตามโปรเจ็กต์ ไม่ใช่ตามคำขอ Fanout ดังนั้น หากโปรเจ็กต์มี Fanout 2 รายการที่กำลังดำเนินการอยู่ Fanout แต่ละรายการจะเห็นอัตรา Fanout ที่ใช้ได้เพียงครึ่งเดียว วิธีที่แนะนำในการเพิ่มความเร็วในการกระจายข้อมูลให้สูงสุดคือการกระจายข้อมูลที่ใช้งานอยู่ครั้งละ 1 รายการเท่านั้น
ขั้นตอนถัดไป
- ดูวิธีจัดการการสมัครใช้บริการหัวข้อโดยใช้ Admin SDK หรือจากแอปไคลเอ็นต์
- ดูวิธีส่งข้อความไปยังหัวข้อโดยใช้ Admin SDK หรือ FCM v1 HTTP API