Go Academy · Ders

Belirteç Kovası Kavramı

İstek hızlarını sınırlayın

1. ders / 413 adım

Belirteç Kovası Kavramı, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.

Hız Sınırlama Neden Kullanılır

Hız sınırlama, birim zamanda gerçekleşebilecek işlem sayısını sınırlar. API'leri kötüye kullanımdan korur, üçüncü taraf kotalarına uyulmasını sağlar ve sistemleri yük altında kararlı tutar.

  • Aşırı yüklenmeyi önler
  • Adil kullanımı zorunlu kılar
  • Yukarı akış sınırlarına uyar

Belirteç Kovası Modeli

Belirteçleri tutan bir kova düşünün. Her istek ilerlemek için bir belirteç almalıdır. Belirteçler sabit bir hızla yenilenir. Kova boşsa istek bekler veya reddedilir.

Hız ve Ani Artış

Belirteç kovasını iki parametre tanımlar: hız (saniyede eklenen belirteç sayısı) ve ani artış (kovanın kapasitesi). Ani artış, sabit hızın üzerinde kısa süreli yükselişlere izin verir.

Zamanla Yenileme

Hız saniyede 5 belirteçse, yaklaşık her 200 milisaniyede bir belirteç ortaya çıkar. Kova, ani artış kapasitesinden daha fazla belirteç tutmaz; bu nedenle kullanılmayan kapasite sonsuza kadar birikmez.

Ani Artışlara İzin Verme

10 büyüklüğünde bir ani artış, kova doluysa en fazla 10 isteğin anında gönderilebileceği anlamına gelir. Bundan sonra istekler sabit hızda düzenlenir. Bu, hızlı yanıt ile denetim arasında denge kurar.

Zamana Dayalı Basit Bir Denetim

Sabit aralıklarla izin veren bir zamanlayıcıyla hız sınırlamayı yaklaşık olarak uygulayabilirsiniz. Her istek bir sonraki vuruşu bekler.

ticker := time.NewTicker(200 * time.Millisecond)
defer ticker.Stop()
for i := 0; i < 3; i++ {
    <-ticker.C
    fmt.Println("request", i)
}

Belirteç Kovası ve Sızıntılı Kova

Sızıntılı kova sabit bir hızla boşalır, çıktıyı tamamen düzleştirir ve ani artışlara izin vermez. Belirteç kovası kapasiteye kadar ani artışlara izin verir. API sınırları için belirteç kovası daha yaygındır.

En Küçük Kova Benzetimi

Çalıştırılabilir bu örnek, her 100 ms'de yenilenen 3 kapasiteli bir belirteç kovasını benzetir ve hangi isteklerin izin aldığını gösterir.

package main

import (
    "fmt"
    "time"
)

func main() {
    tokens := 3
    last := time.Now()
    rate := 100 * time.Millisecond
    for i := 0; i < 6; i++ {
        elapsed := time.Since(last)
        refill := int(elapsed / rate)
        if refill > 0 {
            tokens += refill
            if tokens > 3 {
                tokens = 3
            }
            last = time.Now()
        }
        if tokens > 0 {
            tokens--
            fmt.Println("request", i, "allowed")
        } else {
            fmt.Println("request", i, "rejected")
        }
        time.Sleep(40 * time.Millisecond)
    }
}

Allow, Wait ve Reserve Arasındaki Fark

Sınırlayıcılar genellikle üç davranış sunar: Allow hemen doğru veya yanlış döndürür, Wait bir belirteç boşalana kadar engeller ve Reserve ne kadar beklenmesi gerektiğini bildirir. Seçiminizi engelleme yapıp yapamayacağınıza göre belirleyin.

Sınırlar Nerede Bulunur

Hız sınırları istemci başına, uç nokta başına veya genel olabilir. İstemci IP'siyle anahtarlanmış bir sınırlayıcı haritası istemci başına kotaları uygular; tek bir paylaşılan sınırlayıcı ise toplam aktarım hızını sınırlar.

Parametreleri Seçme

Hızınızı aşağı akış kotasıyla eşleştirin. Bir API dakikada 600 isteğe izin veriyorsa hızı saniyede 10 olarak ayarlayın. Ortalama değeri aşmadan beklenen ani artışları karşılayacak şekilde ani artış kapasitesini belirleyin.

Hızlı Kontrol

Belirteç kovası anlayışınızı test edin.

Özet

Belirteç kovası kavramını öğrendiniz:

  • Belirteçler istek başına tüketilir ve belirli bir hızla yenilenir
  • Ani artış, yükselişleri karşılamak için kovanın kapasitesidir
  • Belirteç kovası ani artışlara izin verir; sızıntılı kova vermez
  • Allow, Wait ve Reserve yaygın API'lerdir
Başlamak ücretsiz

Yapay zeka eğitmeniyle Go öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
51
Dersler
203

Sıkça Sorulan Sorular

“Belirteç Kovası Kavramı” dersi ücretsiz mi?

Evet — “Belirteç Kovası Kavramı” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.

“Belirteç Kovası Kavramı” dersinde ne öğreneceğim?

İstek hızlarını sınırlayın Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Go Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Belirteç Kovası Kavramı” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Belirteç Kovası Kavramı
  2. golang.org/x/time/rate
  3. Goroutine'leri Kısıtlama
  4. Geri Çekilme ve Yeniden Deneme
← Go Academy Sayfasına Dön