FCM konu mesajlaşması, belirli bir konuya kaydolan birden fazla cihaza mesaj göndermenize olanak tanır. Konu mesajlarını gerektiği gibi oluşturursunuz. FCM, mesajı doğru cihazlara güvenilir bir şekilde yönlendirir ve iletir.
Konu mesajlaşmasıyla ilgili önemli noktalar:
- Hava durumu uyarıları gibi herkese açık bilgiler için en uygun seçenektir.
- Konu mesajları, gecikme yerine işleme hızı için optimize edilmiştir. Tek cihazlara veya küçük gruplara hızlı ve güvenli teslimat için konular yerine kayıt jetonlarına mesaj hedefleyin.
Kotalar ve sınırlar
Konu mesajları, her konu için sınırsız sayıda aboneliği destekler. Ancak FCM, şu alanlarda sınırlamalar uygular:
- Bir uygulama örneği en fazla 2.000 konuya abone olabilir.
- Uygulama örneklerine abone olmak için toplu abonelik kullanıyorsanız her istek 1.000 uygulama örneğiyle sınırlıdır.
Abonelik kısıtlama
Konu abonelikleri ekleme veya kaldırma hızı,proje başına 3.000 QPS ile sınırlıdır.
Yeni aboneliklerin sıklığı, proje başına sınırlıdır. Kısa bir süre içinde çok fazla abonelik isteği gönderirseniz FCM sunucuları 429 RESOURCE_EXHAUSTED ("QUOTA_EXCEEDED") yanıtı verir. Eksponansiyel geri yüklemeyle yeniden deneme yapılıyor.
Fanout kısıtlaması
Mesaj yayma, bir mesajın birden fazla cihaza gönderilmesi işlemidir. Örneğin, konuları ve grupları hedeflediğinizde veya hedef kitleleri ya da kullanıcı segmentlerini hedeflemek için Bildirim Oluşturucu'yu kullandığınızda mesaj yayma işlemi gerçekleşir.
Mesaj yayma işlemi anlık değildir. Bu nedenle, bazen aynı anda birden fazla yayma işlemi devam edebilir. Proje başına eşzamanlı mesaj yayma sayısını 1.000 ile sınırlandırıyoruz. Bu noktadan sonra, ek fanout isteklerini reddedebilir veya devam eden fanout'lardan bazıları tamamlanana kadar isteklerin fanout'unu erteleyebiliriz.
Gerçekte elde edilebilecek fanout hızı, aynı anda fanout isteyen proje sayısından etkilenir. Tek bir proje için 10.000 QPS'lik bir yayılım hızı nadir görülen bir durum değildir ancak bu sayı garanti edilmez ve sistemdeki toplam yükün bir sonucudur. Kullanılabilir fanout kapasitesinin fanout istekleri arasında değil, projeler arasında bölündüğünü unutmayın. Dolayısıyla, projenizde devam eden iki fanout varsa her fanout, mevcut fanout hızının yalnızca yarısını görür. Fanout hızınızı en üst düzeye çıkarmak için aynı anda yalnızca bir etkin fanout işlemi yapmanız önerilir.
Sonraki adımlar
- Admin SDK'yı veya istemci uygulamanızı kullanarak konu aboneliklerini nasıl yöneteceğinizi öğrenin.
- Admin SDK veya FCM v1 HTTP API'yi kullanarak konulara nasıl mesaj göndereceğinizi öğrenin.