Kullanım sınırları

Google Chat API, paylaşılan bir hizmet olduğundan tüm kullanıcılar tarafından adil bir şekilde kullanılmasını sağlamak ve Google Workspace'in genel performansını korumak için kotalar ve sınırlamalar uygularız.

Bir kotayı aşarsanız 429: Too many requests HTTP durum kodu yanıtı alırsınız. Sohbet arka ucunda yapılan ek sıklık sınırı kontrolleri de aynı hata yanıtını oluşturabilir. Bu hata oluşursa üstel geri çekilme algoritması kullanıp daha sonra tekrar denemelisiniz. Aşağıdaki tablolarda listelenen dakika başına kotaları aşmadığınız sürece, günlük istek sayısında herhangi bir sınırlama yoktur.

Chat API yöntemleri için birden fazla kota türü geçerli olabilir: proje başına, alan başına ve kullanıcı başına kotalar.

Proje başına kotalar

Proje başına kotalar, bir Google Cloud projesinin sorgu hızını sınırlar ve bu nedenle her kota için belirtilen Chat API yöntemlerini çağıran tek bir Chat uygulaması için geçerlidir.

Aşağıdaki tabloda, proje başına sorgu sınırları ayrıntılı olarak açıklanmaktadır. Bu sınırları Kotalar sayfasında da bulabilirsiniz.

Proje başına kota

Chat API yöntemleri

Sınır (60 saniyede)

Dakika başına ileti yazma sayısı

spaces.messages.create

spaces.messages.patch

spaces.messages.delete

3000

Dakika başına okunan mesaj sayısı

spaces.messages.get

spaces.messages.list

3000

Dakika başına üyelik yazma

spaces.members.create

spaces.members.delete

300

Dakika başına üyelik okuma sayısı

spaces.members.get

spaces.members.list

3000

Dakika başına alan yazma sayısı

spaces.setup

spaces.create

spaces.patch

spaces.delete

60

Dakika başına alan okuma sayısı

spaces.get

spaces.list

spaces.findDirectMessage

3000

Dakika başına ek yazma sayısı

media.upload

600

Dakika başına ek okuma sayısı

spaces.messages.attachments.get

media.download

3000

Dakika başına tepki yazma sayısı

spaces.messages.reactions.create

spaces.messages.reactions.delete

600

Dakika başına tepki okuma sayısı

spaces.messages.reactions.list

3000

Alan başına kotalar

Alan başına kotalar, belirli bir alandaki sorgu hızını sınırlar ve her kota için listelenen Chat API yöntemlerini çağıran, söz konusu alanda çalışan tüm Chat uygulamaları arasında paylaşılır.

Aşağıdaki tabloda, alan başına sorgu sınırları ayrıntılı olarak açıklanmıştır:

Alan Başına Kota

Chat API yöntemleri

Sınır (60 saniyede)

Dakika başına okuma sayısı

media.download

spaces.get

spaces.members.get

spaces.members.list

spaces.messages.get

spaces.messages.list

spaces.messages.attachments.get

spaces.messages.reactions.list

900

Dakika başına yazma sayısı

media.upload

spaces.delete

spaces.patch

spaces.messages.create (Gelen webhook'lar için ek sınırlar geçerlidir)

spaces.messages.delete

spaces.messages.patch

spaces.messages.reactions.create

spaces.messages.reactions.delete

60

Kullanıcı başına kotalar

Kullanıcı başına kotalar, Google Chat kullanıcısının sorgu hızını sınırlar. Sorgular, bir kullanıcı adına Chat API yöntemi çağıran tüm Chat uygulamalarıyla ilgilidir (kullanıcı kimlik doğrulaması kullanılarak).

Aşağıdaki tabloda kullanıcı başına sorgu sınırları ayrıntılı olarak açıklanmaktadır:

Kullanıcı başına kota

Chat API yöntemleri

Sınır (60 saniyede)

Dakika başına okuma sayısı

customEmojis.get

customEmojis.list

900

Dakika başına yazma sayısı

customEmojis.create

customEmojis.delete

60

Ek kullanım sınırları

GROUP_CHAT veya SPACE türünde alan oluşturmayla ilgili ek kota sınırları vardır (spaces.create veya spaces.setup yöntemini kullanarak). Bu türlerden dakika başına 35'ten ve saat başına 800'den az alan oluşturun. DIRECT_MESSAGE türündeki alanlar bu ek kota sınırlarına tabi değildir.

Aynı alanı hedefleyen yüksek API trafiği, Kotalar sayfasında görünmeyen ek dahili sınırlamaları tetikleyebilir.

Zamana dayalı kota hatalarını düzeltme

Zamana dayalı tüm hatalar (X dakika başına en fazla N istek) için kodunuzun istisnayı yakalamasını ve cihazlarınızın aşırı yük oluşturmadığından emin olmak için kısaltılmış üstel geri çekilme kullanmasını öneririz.

Üstel geri alma, ağ uygulamaları için standart bir hata işleme stratejisidir. Eksponansiyel geri yükleme algoritması, istekler arasındaki bekleme sürelerini üstel olarak artırarak istekleri yeniden dener. Maksimum geri yükleme süresine kadar bu işlem devam eder. İstekler hâlâ başarısız oluyorsa istek başarılı olana kadar istekler arasındaki gecikmelerin zaman içinde artması önemlidir.

Örnek algoritma

Eksponansiyel geri yükleme algoritması, istekleri eksponansiyel olarak yeniden dener ve yeniden denemeler arasındaki bekleme süresini maksimum geri yükleme süresine kadar artırır. Örneğin:

  1. Google Chat API'ye istek gönderin.
  2. İstek başarısız olursa 1 + random_number_milliseconds saniye bekleyin ve isteği yeniden deneyin.
  3. İstek başarısız olursa 2 + random_number_milliseconds saniye bekleyip isteği yeniden deneyin.
  4. İstek başarısız olursa 4 + random_number_milliseconds bekleyin ve isteği yeniden deneyin.
  5. Bu işlem maximum_backoff kez tekrarlanabilir.
  6. Maksimum deneme sayısına ulaşana kadar beklemeye ve yeniden denemeye devam edin ancak yeniden denemeler arasındaki bekleme süresini artırmayın.

Bu örnekte:

  • Bekleme süresi min(((2^n)+random_number_milliseconds), maximum_backoff)'dır. Her yineleme (istek) için n değeri 1 artırılır.
  • random_number_milliseconds,1.000'den küçük veya 1.000'e eşit rastgele bir milisaniye sayısıdır. Bu sayede, birçok istemcinin belirli bir durum nedeniyle senkronize olup aynı anda yeniden denediği ve senkronize dalgalar halinde istek gönderdiği durumlar önlenir. random_number_milliseconds değeri her yeniden deneme isteğinden sonra yeniden hesaplanır.
  • maximum_backoff genellikle 32 veya 64 saniyedir. Uygun değer, kullanım alanına bağlıdır.

İstemci, maximum_backoff kez denedikten sonra yeniden denemeye devam edebilir. Bu noktadan sonraki yeniden denemelerde geri çekilme süresinin artırılması gerekmez. Örneğin, bir istemci 64 saniyelik bir maximum_backoff kullanıyorsa bu değere ulaştıktan sonra her 64 saniyede bir yeniden deneyebilir. Bir noktada, istemcilerin süresiz olarak yeniden denemesi engellenmelidir.

Yeniden denemeler arasındaki bekleme süresi ve yeniden deneme sayısı, kullanım alanınıza ve ağ koşullarına bağlıdır.

Proje başına kota artışı isteğinde bulunma

Projenizin kaynak kullanımına bağlı olarak kota ayarlaması isteğinde bulunabilirsiniz. Bir hizmet hesabı tarafından yapılan API çağrıları, tek bir hesap kullanılıyormuş gibi değerlendirilir. Ayarlanmış kota başvurusunda bulunmak onay alacağınıza dair bir garanti teşkil etmez. Kota değerini önemli ölçüde artıracak kota ayarlama isteklerinin onaylanması daha uzun sürebilir.

Her projenin kotası aynı değildir. Google Cloud'u zaman içinde daha fazla kullandıkça kota değerlerinizin artırılması gerekebilir. Kullanımın önemli oranda artacağını düşünüyorsanız Google Cloud Console'daki Kotalar sayfasından önlem amaçlı olarak kota ayarlamaları isteyebilirsiniz.

Daha fazla bilgi edinmek için aşağıdaki kaynaklara göz atın: