Pesan topik FCM dapat digunakan untuk mengirim pesan ke beberapa perangkat yang mengikuti topik tertentu. Anda cukup menulis pesan topik sesuai kebutuhan dan FCM akan secara andal menangani perutean serta pengiriman pesan ke perangkat yang tepat.
Poin utama tentang pesan topik:
- Paling cocok untuk informasi yang tersedia untuk umum seperti peringatan cuaca.
- Pesan topik dioptimalkan untuk throughput, bukan latensi. Untuk mengirim dengan cepat dan aman ke satu perangkat atau sekelompok kecil perangkat, targetkan pesan ke token pendaftaran, bukan topik.
Kuota dan batas
Pesan topik mendukung langganan tak terbatas untuk setiap topik. Namun, FCM memberlakukan batasan untuk hal-hal berikut:
- Satu instance aplikasi hanya dapat berlangganan maksimal 2.000 topik.
- Jika Anda menggunakan langganan batch untuk membuat instance aplikasi berlangganan topik, setiap permintaan dibatasi hingga 1.000 instance aplikasi.
Throttling langganan
Kapasitas penambahan atau penghapusan langganan topik dibatasi hingga 3.000 QPS per project.
Frekuensi langganan baru dibatasi kapasitasnya per project. Jika Anda mengirim terlalu banyak
permintaan langganan dalam waktu singkat,
server FCM akan memberikan respons 429 RESOURCE_EXHAUSTED
("QUOTA_EXCEEDED"). Coba lagi dengan backoff eksponensial.
Throttling fanout
Fanout pesan adalah proses pengiriman pesan ke beberapa perangkat, seperti saat Anda menarget topik dan grup, atau saat Anda menggunakan Notifications composer untuk menarget audience atau segmen pengguna.
Fanout pesan tidak berjalan seketika, jadi terkadang ada beberapa fanout yang sedang diproses secara bersamaan. Batas jumlah fanout pesan yang diproses secara bersamaan per project adalah 1.000. Di atas itu, kami dapat menolak permintaan fanout tambahan atau menunda fanout permintaan tersebut sampai beberapa fanout yang sedang diproses selesai.
Kapasitas fanout aktual yang dapat dicapai dipengaruhi oleh jumlah project yang meminta fanout pada saat yang bersamaan. Tidak jarang fanout untuk suatu project mencapai 10.000 QPS, tetapi angka tersebut bukan jaminan dan merupakan hasil dari total beban pada sistem. Penting untuk diperhatikan bahwa kapasitas fanout yang tersedia dibagi antar-project dan bukan untuk seluruh permintaan fanout. Jadi, jika project Anda memiliki dua fanout yang sedang diproses, setiap fanout hanya akan mendapatkan setengah dari kapasitas fanout yang tersedia. Cara yang disarankan untuk memaksimalkan kecepatan fanout Anda adalah dengan hanya memiliki satu fanout aktif yang sedang diproses dalam satu waktu.
Langkah Berikutnya
- Pelajari cara Mengelola Langganan Topik menggunakan Admin SDK atau dari aplikasi klien Anda.
- Pelajari cara Mengirim Pesan ke Topik menggunakan Admin SDK atau HTTP v1 API FCM.