Google Takvim API'sinin, tüm kullanıcılar tarafından adil bir şekilde kullanılmasını sağlamak için kotaları vardır. Takvim API'sini kullanırken dikkate alınması 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şmayın.
- Operasyonel sınırlar: Herhangi bir zamanda ücret sınırına tabi tutulabilirsiniz. Örneğin, tek bir takvime arka arkaya hızlı bir şekilde yazmaya çalışırsanız.
Takvim API'si kullanım kotası türleri
İki tür kota uygulanır:
- Proje başına bir dakikada: Google Cloud projeniz tarafından yapılan isteklerin sayısıdır.
- Kullanıcı başına proje başına dakika başına: Bu, Cloud projenizdeki belirli bir kullanıcı tarafından yapılan isteklerin sayısıdır. Bu sınır, kullanım oranını kullanıcılarınız arasında adil bir şekilde dağıtmanıza yardımcı olmayı amaçlar.
Kotalar, kayan bir 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 kullanımınızın kotalar dahilinde kalmasını sağlamak için sonraki pencerede hız sınırlamasına neden olur.
Herhangi bir kota aşılırsa hız sınırlanır ve sorgularınız için 403 usageLimits
durum kodu veya 429 usageLimits
durum kodu alırsınız. Bu durumda şunları yapabilirsiniz:
- Tüm en iyi uygulamaları uyguladığınızdan emin olun: Üstel geri çekilme kullanın, Trafik kalıplarını rastgele hale getirin, Push bildirimleri kullanın.
- Projeniz büyüyorsa ve daha fazla kullanıcınız varsa proje başına kotada 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 ayırın veya birden fazla hizmet hesabı arasında bölün.
- Kullanıcı başına kotada artış isteğinde bulunabilirsiniz. Ancak uygulamanız genel takvim kullanım sınırlamaları veya işletim sınırlamaları gibi başka tür sınırlara ulaşabileceğinden, kotayı varsayılan değerin üzerine çıkarmak genellikle ö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 kullanın
İstek hızınızı yavaşlatmanızı istediğimizde 403 "usageLimits" yanıtı veya 429 yanıtı döndürürüz (hatalarla ilgili tam dokümanlara bakın). Bu kritik bir hata değildir ve kısa bir süre sonra isteği tekrar denemenizi bekliyoruz. İstekler çok hızlı bir şekilde gelmeye devam ederse tekrar isteriz. Bunun doğru şekilde çalışması için istekler arasındaki gecikmelerin zaman içinde artması önemlidir.
Genellikle kesikli üssel geri çekilme yöntemini kullanmanız gerekir. Cloud Storage dokümanlarında bu yöntemin işleyiş şekli ve tercih edilen algoritma hakkında ayrıntılı bilgi verilmektedir. Google istemci kitaplığı kullanıyorsanız bu işlem genellikle sizin yerinize yapılır. Kitaplık belgelerinize bakın. Normalde, kendi kitaplığınızı yazmak yerine kitaplık uygulamasını kullanmalısınız.
Trafik kalıplarını rastgele hale getirme
Takvim istemcileri, aynı anda işlem yapan birden fazla istemcinin neden olduğu ani trafik artışlarına eğilimlidir. Örneğin, takvim istemcileri için yaygın bir kötü uygulama, gece yarısı tam senkronizasyon gerçekleştirmektir. Bu durum, dakika başına kotanızı aşmanıza ve hız sınırlamasına ve geri çekilmelere neden olur.
Bunu önlemek için mümkün olduğunda trafiğinizin gün boyunca dağıldığından emin olun. Müşterinizin günlük senkronizasyon yapması gerekiyorsa müşteriden rastgele bir saat belirlemesini isteyin (her müşteri için farklı). Düzenli olarak bir işlem yapmanız gerekiyorsa aralığı +/- %25 olarak değiştirin. Bu, trafiği daha eşit bir şekilde dağıtır ve çok daha iyi bir kullanıcı deneyimi sağlar.
Push bildirimlerini kullanma
Kullanıcının takviminde bir değişiklik olduğunda işlem yapmak istemek yaygın bir kullanım alanıdır. Buradaki anti-pattern, ilgilenilen her takvimi tekrar tekrar ankete tabi tutmaktır. Bu, tüm kotanızı çok hızlı bir şekilde tüketir. Örneğin, uygulamanızda 5.000 kullanıcı varsa ve her kullanıcının takvimini dakikada bir sorguluyorsanız herhangi bir işlem yapılmadan önce bile en az 5.000 dakika başına kota gerekir.
Sunucu tarafı uygulamalar, push bildirimlerine kaydolabilir. Bu sayede, ilginizi çekebilecek bir gelişme olduğunda sizi bilgilendirebiliriz. Bu tür çözümler ayarlamak için daha fazla çalışma gerektirir ancak kotanızın çok daha verimli bir şekilde kullanılmasını sağlar ve daha iyi bir kullanıcı deneyimi sunar. Bildirim almak istediğiniz eventType
öğesini belirttiğinizden emin olun. Daha fazla bilgi için Push bildirimleri başlıklı makaleyi inceleyin.
Hizmet hesaplarıyla doğru muhasebe
Uygulamanız alan genelinde yetkilendirme kullanarak istek gönderiyorsa varsayılan olarak hizmet hesabından, kimliğine büründüğünüz kullanıcıdan değil "kullanıcı başına proje başına dakika başına" kotalara göre ücret alınır. Bu, birden fazla kullanıcının takviminde çalışıyor olsa bile hizmet hesabının kotasının tükenmesi ve hız sınırlamasına tabi olması anlamına gelir. Hangi kullanıcıdan ödeme alınacağını belirtmek için quotaUser
URL parametresini (veya x-goog-quota-user
HTTP üstbilgisini) kullanarak bu durumdan kaçınabilirsiniz. Bu değer yalnızca kota hesaplamaları için kullanılır. Daha fazla bilgi için Cloud belgelerinin Kullanıcı başına istek sınırlama bölümüne bakın.
Kota sınırı işleme testi
Uygulamanızın, kota sınırlarına ulaşmayı gerçekte sorunsuz bir şekilde işleyebildiğinden emin olmak (ör. üsselik geri çekilmeyle yeniden deneme yaparak) ve kullanıcılarınıza olabilecek rahatsızlıkları 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 amaçlı ayrı bir proje kaydetmenizi ve bu projeyi üretim projenize benzer şekilde yapılandırmanızı öneririz. Ardından, bu proje için yapay olarak düşük kotalar ayarlayabilir ve uygulamanızın davranışını gözlemleyebilirsiniz.
Fiyatlandırma
Google Calendar API'nin kullanımı için ek ücret alınmaz. Kota isteği sınırlarının aşılması ek ücrete neden olmaz ve hesabınıza fatura gönderilmez.