FCM Kısıtlama ve Kotaları

Hedefimiz, FCM kullanılarak gönderilen her mesajı her zaman iletmektir. Ancak her mesajın teslim edilmesi bazen genel kullanıcı deneyiminin kötü olmasına neden olur. Diğer durumlarda ise FCM'nin tüm gönderenler için ölçeklenebilir bir hizmet sunmasını sağlamak amacıyla sınırlamalar getirmemiz gerekir. Bu bölümde açıklanan sınır ve kota türleri, bu önemli faktörleri dengelememize yardımcı olur.

Aşağı akış mesajı sınırlaması

HTTP v1 API, aşağı akış mesajlaşma için proje başına dakika başına kotalar sunmuştur. Dakikada 600 bin mesajlık varsayılan kota, FCM geliştiricilerin% 99'undan fazlasını kapsarken sistemin kararlılığını korur ve ani artış gösteren projelerin etkisini en aza indirir.

Ani trafik artışları, kota aşıldı hatalarına neden olabilir. Kota aşımı durumunda, sistem bir sonraki dakikada kota yeniden doldurulana kadar HTTP durum kodu 429 (QUOTA_EXCEEDED) döndürür. Aşırı yüklenme durumlarında da 429 yanıtları döndürülebilir. Bu nedenle, 429'ları yayınlanan önerilere göre işlemeniz önemle tavsiye edilir.

Unutmayın:

  • Aşağı akış kotası, istekleri değil iletileri ölçer.
  • İstemci hataları (HTTP durum kodu 400-499) sayılır (429'lar hariç).
  • Kotalar dakika başına belirlenir ancak bu dakikalar saatle uyumlu değildir.

İzleme kotası

Google Cloud Console'da kota, kullanım ve hataları görüntüleyebilirsiniz:

  1. Google Cloud konsoluna gidin.
  2. API'ler ve hizmetler'i seçin.
  3. Tablo listesinden Firebase Cloud Messaging API'yi seçin.
  4. KOTA VE SİSTEM SINIRLARI'nı seçin.

NOT: Bu grafikler, kota dakikalarıyla tam olarak zaman uyumlu değildir. Bu nedenle, trafik kotanın altında görünse bile 429 yanıtları sunulabilir.

Kota artışı isteme

Kota artışı istemeden önce şunlardan emin olun:

  • Kullanımınız, günlük olarak en az 5 dakika boyunca düzenli olarak kotanın% 80'i veya daha fazlası.
  • Özellikle yoğun trafik sırasında% 5'ten düşük bir istemci hatası oranına sahipsiniz.
  • Büyük ölçekte mesaj göndermeyle ilgili en iyi uygulamalara uyuyorsunuz.

Bu ölçütleri karşılıyorsanız kota artışı isteği gönderebilirsiniz. Kota artışı isteği, +% 25'e kadar olabilir ve FCM, isteği karşılamak için her türlü pratik çabayı gösterecektir (artış garanti edilemez).

Yaklaşan bir lansman veya geçici etkinlik nedeniyle daha fazla aşağı akış mesajlaşma kotasına ihtiyacınız varsa isteğin işlenmesi için yeterli süre tanımak amacıyla kotanızı en az 15 gün önceden isteyin. Büyük istekler (>18 milyon ileti/dakika) için en az 30 gün önceden bildirimde bulunulması gerekir. Lansmanlar ve özel etkinlik istekleri, istemci hata oranı ve en iyi uygulamalar şartlarına tabidir.

Ayrıca FCM kotaları ile ilgili SSS bölümüne bakın.

Konu mesajı sınırı

Konu aboneliği ekleme veya kaldırma hızı,proje başına 3.000 sorgu/sn ile sınırlıdır.

İleti gönderme hızları için Fanout Throttling başlıklı makaleyi inceleyin.

Fanout sınırlaması

İleti dağıtımı, konuları ve grupları hedeflediğinizde veya kitleleri ya da kullanıcı segmentlerini hedeflemek için bildirim oluşturucuyu kullandığınızda olduğu gibi, birden fazla cihaza ileti gönderme işlemidir.

Mesaj dağıtımı anlık olmadığından bazen aynı anda birden fazla dağıtım işlemi devam edebilir. Proje başına eşzamanlı mesaj dağıtımı sayısı 1.000 ile sınırlıdır. Bu sınıra ulaşıldıktan sonra ek dağıtım isteklerini reddedebilir veya devam eden dağıtımlardan bazıları tamamlanana kadar isteklerin dağıtımını erteleyebiliriz.

Gerçekleşebilecek fanout oranı, aynı anda fanout isteyen proje sayısından etkilenir. Tek bir proje için 10.000 sorgu/sn'lik bir dağıtım hızı yaygın olsa da bu sayı garanti edilmez ve sistemdeki toplam yükün sonucudur. Kullanılabilir dağıtım kapasitesinin, dağıtım istekleri arasında değil projeler arasında bölündüğünü unutmayın. Bu nedenle, projenizde devam eden iki dağıtım varsa her dağıtım, kullanılabilir dağıtım hızının yalnızca yarısını görür. Yayın hızınızı en üst düzeye çıkarmanın önerilen yolu, aynı anda yalnızca bir etkin yayın yapmaktır.

Daraltılabilir mesaj sınırlama

Daraltılabilir mesajlar bölümünde açıklandığı gibi, daraltılabilir mesajlar, içerik içermeyen ve birbirinin üzerinde daraltılacak şekilde tasarlanmış bildirimlerdir. Bir geliştirici, aynı mesajı bir uygulamaya çok sık gönderirse kullanıcının pilini daha az etkilemek için mesajları geciktiririz (sınırlama).

Örneğin, tek bir cihaza çok sayıda yeni e-posta senkronizasyonu isteği gönderirseniz cihazın daha düşük bir ortalama hızda senkronize olabilmesi için bir sonraki e-posta senkronizasyonu isteğini birkaç dakika geciktirebiliriz. Bu sınırlama, kullanıcının yaşadığı pil etkisini sınırlamak için kesinlikle gereklidir.

Kullanım alanınızda yüksek sayıda toplu e-posta gönderme kalıpları gerekiyorsa daraltılamayan mesajlar doğru seçim olabilir. Bu tür mesajlarda pil maliyetini düşürmek için mesajlardaki içeriği eklediğinizden emin olun.

Daraltılabilir mesajları, cihaz başına uygulama başına 20 mesajlık bir seriyle sınırlandırırız. 3 dakikada 1 mesaj yenilenir.

Tek bir cihaza gönderilen maksimum ileti hızı

Android'de tek bir cihaza dakikada 240, saatte 5.000 mesaj gönderebilirsiniz. Bu yüksek eşik, kullanıcıların sohbet üzerinden hızlı etkileşimde bulunduğu gibi kısa süreli trafik artışlarına izin vermek için belirlenmiştir. Bu sınır, gönderme mantığındaki hataların cihazın pilini yanlışlıkla boşaltmasını engeller.

iOS'te, hız APNs sınırlarını aştığında hata döndürülür.