Belirteç Kovası Kavramı
İstek hızlarını sınırlayın
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
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
- Belirteç Kovası Kavramı
- golang.org/x/time/rate
- Goroutine'leri Kısıtlama
- Geri Çekilme ve Yeniden Deneme