Google Takvim API'si, tüm kullanıcılar tarafından adil bir şekilde kullanılmasını sağlamak için kotalara sahiptir. Takvim API'sini kullanırken göz önünde bulundurmanız gereken üç önemli sınırlama vardır:
- API kullanım kotaları proje ve kullanıcı başına uygulanır. Daha fazla bilgi için sonraki bölüme bakın.
- Genel Takvim kullanım sınırları: Takvim kullanım sınırlarını aşmaktan kaçının.
- İşletim sınırları: Herhangi bir zamanda hız sınırına tabi olabilirsiniz. Örneğin, tek bir takvime hızlı bir şekilde yazmaya çalıştığınızda.
Takvim API'si kullanım kotası türleri
İki tür kota uygulanır:
- Proje başına dakikada: Bu, Google Cloud projeniz tarafından yapılan isteklerin sayısıdır.
- Proje başına kullanıcı başına dakika: Bu, Cloud projenizde belirli bir kullanıcı tarafından yapılan isteklerin sayısıdır. Bu sınır, kullanımın kullanıcılarınız arasında adil bir şekilde dağıtılmasını sağlamanıza yardımcı olmayı amaçlar.
Kotalar, kayan pencere kullanılarak dakika başına hesaplanır. Bu nedenle, bir dakika içinde dakika başına kotanızı aşan hızlı bir trafik patlaması, ortalama olarak kullanımınızın kotalar içinde kalmasını sağlamak için sonraki pencerede hız sınırlamasına neden olur.
Kotalardan biri aşılırsa hız sınırlaması uygulanır ve sorgularınıza 403 usageLimits
durum kodu veya 429 usageLimits
durum kodu yanıtı verilir. Bu durumda yapabilecekleriniz:
- Tüm en iyi uygulamaları izlediğinizden emin olun: Üstel geri çekilme kullanın, Trafik kalıplarını rastgele hale getirin, Push bildirimlerini kullanın.
- Projeniz büyüyorsa ve daha fazla kullanıcınız varsa proje başına kota artışı isteyebilirsiniz.
- Kullanıcı başına kota sınırına ulaşılırsa aşağıdakileri yapabilirsiniz:
- Hizmet hesabı kullanıyorsanız, yükü kullanıcılara dağıtın veya birden fazla hizmet hesabı arasında paylaştırın.
- Kullanıcı başına kota artışı isteğinde bulunabilirsiniz ancak uygulamanızın genel takvim kullanım sınırları veya operasyonel sınırlar gibi başka türden sınırlara ulaşmaya başlayabileceği için genellikle varsayılan değerin üzerinde artırmanız önerilmez.
Kota artışı isteği
Projenizin kullanım sınırlarını görüntülemek, değiştirmek veya kotanızda artış talep etmek için şunları yapın:
- Projeniz için faturalandırma hesabınız yoksa hesap oluşturun.
- API Konsolu'nda API kitaplığının Etkin API'ler sayfasına gidin ve listeden bir API seçin.
- Kota ile ilgili ayarları görüntülemek ve değiştirmek için Kotalar'ı seçin. Kullanım istatistiklerini görüntülemek için Kullanım'ı seçin.
Eksponansiyel geri yükleme kullanma
İstek hızınızı yavaşlatmanızı istediğimizde 403 "usageLimits" yanıtı veya 429 yanıtı döndürürüz (hatayla ilgili tüm dokümanlara bakın). Bu kritik bir hata değildir ve kısa bir süre sonra isteği yeniden denemenizi bekliyoruz. İstekler çok hızlı gelmeye devam ederse tekrar sorarız. Bu özelliğin doğru şekilde çalışması için istekler arasındaki gecikmelerin zaman içinde artması önemlidir.
Genellikle kısaltılmış üstel geri çekilme kullanmanız gerekir. Cloud Storage belgelerinde bu yöntemin işleyiş şekli ve tercih edilen algoritma hakkında iyi bir açıklama yer alır. Google istemci kitaplığı kullanıyorsanız bu işlem genellikle sizin için yapılır. Kitaplık belgelerinize bakın. Normalde kendi kitaplığınızı yazmak yerine kitaplık uygulamasını kullanmanız gerekir.
Trafik kalıplarını rastgele hale getirme
Takvim istemcileri, birden fazla istemcinin aynı anda işlem yapmasından kaynaklanan ani trafik artışlarına eğilimlidir. Örneğin, Takvim istemcisi için yaygın bir kötü uygulama, gece yarısı tam senkronizasyon yapmaktır. Bu durum, dakikadaki kotanızın aşılmasına ve sonuç olarak hız sınırlaması ile geri çekilmelere yol açar.
Bunu önlemek için mümkün olduğunda trafiğinizin gün içine yayılmasını sağlayın. Müşterinizin günlük senkronizasyon yapması gerekiyorsa müşterinin rastgele bir zaman belirlemesini sağlayın (her müşteri için farklı bir zaman). Düzenli olarak bir işlem yapmanız gerekiyorsa aralığı +/- %25 oranında değiştirin. Bu sayede trafik daha eşit şekilde dağıtılır ve kullanıcı deneyimi önemli ölçüde iyileşir.
Push bildirimlerini kullanma
Kullanıcının takviminde bir değişiklik olduğunda işlem yapmak yaygın bir kullanım alanıdır. Buradaki bir anti-pattern, ilgilenilen her takvimi tekrar tekrar yoklamaktır. Bu, kotanızın tamamını çok hızlı bir şekilde kullanır. Örneğin, uygulamanızın 5.000 kullanıcısı varsa ve her kullanıcının takvimini dakikada bir kez yokluyorsa herhangi bir işlem yapılmadan önce bile dakikada en az 5.000 kota gerekir.
Sunucu tarafı uygulamaları, push bildirimlerine kaydolabilir. Bu sayede, ilgilendiğiniz bir şey olduğunda sizi bilgilendirebiliriz. Bunların ayarlanması daha fazla çalışma gerektirir ancak kotanızın çok daha verimli kullanılmasını sağlar ve daha iyi bir kullanıcı deneyimi sunar. Hangi eventType
için bildirim almak istediğinizi belirttiğinizden emin olun. Daha fazla bilgi için Push bildirimleri başlıklı makaleyi inceleyin.
Hizmet hesaplarıyla uygun muhasebe
Uygulamanız alan genelinde yetki kullanarak istekte bulunuyorsa varsayılan olarak "kullanıcı başına proje başına dakika başına" kotaları için hizmet hesabından ücret alınır ve kimliğine büründüğünüz kullanıcıdan ücret alınmaz. Bu, hizmet hesabı birden fazla kullanıcının takviminde çalışıyor olsa bile kotasının tükenme ve hız sınırlamasına tabi olma olasılığının yüksek olduğu anlamına gelir. Hangi kullanıcının ücretlendirileceğini belirtmek için quotaUser
URL parametresini (veya x-goog-quota-user
HTTP üstbilgisini) kullanarak bu durumdan kaçınabilirsiniz. Bu yalnızca kota hesaplamaları için kullanılır. Daha fazla bilgi için Cloud belgelerindeki Kullanıcı başına istekleri sınırlama başlıklı makaleyi inceleyin.
Kota sınırı işleme özelliğini test etme
Uygulamanızın, pratikte kota sınırlarına ulaşmayı sorunsuz bir şekilde yönetebildiğinden (ör. üstel geri çekilme ile yeniden denemeler yaparak) emin olmak ve kullanıcılarınızda olası kesintileri en aza indirmek için bu senaryoyu gerçek bir ortamda test etmenizi önemle tavsiye ederiz.
Bu tür bir testin gerçek uygulama kullanımınızı etkilememesi için Google API Konsolu'nda yalnızca test için ayrı bir proje kaydetmenizi ve üretim projenize benzer şekilde yapılandırmanızı öneririz. Ardından, bu proje için yapay olarak düşük kotalar belirleyebilir ve uygulamanızın davranışını gözlemleyebilirsiniz.
Fiyatlandırma
Google Calendar API'nin her türlü kullanımı ücretsizdir. Kota isteği sınırlarının aşılması ek ücrete neden olmaz ve hesabınıza fatura gönderilmez.