Ana içeriğe geç

Yan yana

API GatewayvsYük Dengeleyici

API gateway ile yük dengeleyici (load balancer) arasındaki fark nedir?

Güncellendi 2 dk okuma6 fark

Kısaca

Yük dengeleyici trafiği aynı servisin kopyalarına dağıtır; API gateway ise her çağrıyı doğru servise yönlendiren ve kimlik doğrulamayı uygulayan tek ön kapıdır.

API Gateway

API gateway, bir grup backend servisinin önünde duran ve API isteklerini alan, kontrol eden ve yönlendiren tek giriş noktası görevi gören bir sunucudur.

API Gateway sayfasını oku

Yük Dengeleyici

Yük dengeleyici, gelen trafiği birkaç arka uç sunucuya dağıtan bir sunucu ya da hizmettir; hiçbir sunucu aşırı yüklenmez ve uygulama erişilebilir kalır.

Yük Dengeleyici sayfasını oku

API Gateway ve Yük Dengeleyici karşılaştırması

ÖzellikAPI GatewayYük Dengeleyici
Yanıtladığı soruBu çağrıyı hangi servis almalı ve izin var mı?Bu isteği sunucunun hangi kopyası almalı?
Neye göre yönlendirirYol, metot, başlıklar ve API sürümüSunucuların sağlığı ve yükü
Çalıştığı seviyeAPI'lerin farkında olarak HTTP seviyesi (L7)Ağ seviyesi (L4) ya da HTTP seviyesi (L7)
Ek özelliklerKimlik doğrulama, hız sınırlama, istekleri yeniden yazma, analitikSağlık denetimleri, TLS sonlandırma, yapışkan oturumlar (sticky session)
Tipik kapsamBir sistemin bütün API'leriÇok sayıda örneği olan tek bir servis
ÖrneklerKong, Amazon API Gateway, ApigeeNGINX, HAProxy, AWS Elastic Load Balancing

Fark, açıklamalı

İkisi de istemcilerle sunucular arasında durur ve istekleri iletir. Yük dengeleyici tek bir servisin trafiğini alır ve her isteği ya da bağlantıyı, round robin ya da en az bağlantı gibi kurallarla birkaç özdeş sunucudan birine yönlendirir; sağlık denetimlerinden (health check) geçemeyen sunuculara trafik göndermeyi de bırakır. API gateway ise bir sistemin bütün API çağrılarını alır ve her birini hangi arka uç servisinin işleyeceğine yola, metoda ya da başlıklara bakarak karar verir.

Fark, neye karar verdikleridir. Yük dengeleyici "bu servisin hangi kopyası?" sorusunu yanıtlar ve kapasiteyle erişilebilirlikle ilgilenir. API gateway ise "hangi servis ve bu çağrıya izin var mı?" sorusunu yanıtlar: API anahtarlarını ya da token'ları denetleyebilir, hız sınırları uygulayabilir, istekleri yeniden yazabilir, yanıtları birleştirebilir ve kullanım ölçümleri toplayabilir; basit bir yük dengeleyici bunların hiçbirini yapmaz.

Genellikle birlikte görünürler. Tipik bir kurulumda birkaç API gateway örneğinin önüne bir yük dengeleyici konur; gateway de çağrıları, kendi içinde yük dengelemesi yapılan servislere yönlendirir; bu dengeleme çoğu zaman Kubernetes ya da bir service mesh tarafından yapılır. Bazı ürünler sınırı bulanıklaştırır: uygulama yük dengeleyicileri yola göre yönlendirebilir, birçok gateway de yükü örnekler arasında dağıtabilir.

Sık yapılan bir yanlış, API gateway'in yük dengeleyiciyi gereksiz kıldığı ya da tersinin doğru olduğu düşüncesidir. Yola göre yönlendirme yapabilmek bir yük dengeleyiciyi tam bir API yönetim katmanına çevirmez; önünde yedeklilik ve dengeleme olmayan bir gateway de tek hata noktasına dönüşür.

Hangisini kullanmalısınız?

API Gateway şu durumlarda doğru seçim:

  • İstemciler birçok mikroservisi çağırıyor ama tek bir API görmeli.
  • Kimlik doğrulamayı, hız sınırlarını ve kullanım takibini tek bir yerde istiyorsunuz.
  • API isteklerini sürümlemeniz, yeniden yazmanız ya da birleştirmeniz gerekiyor.

Yük Dengeleyici şu durumlarda doğru seçim:

  • Tek bir servisin birkaç kopyasını çalıştırıyor ve trafiği aralarında paylaştırmak istiyorsunuz.
  • Sağlıksız sunucuların kendiliğinden devreden çıkarıldığı yüksek erişilebilirliğe ihtiyacınız var.
  • Trafik yalnızca HTTP API'lerinden oluşmuyor; ham TCP bağlantıları gibi.

Sık sorulan sorular

API gateway bir yük dengeleyici midir?

Tam olarak değil. Birçok gateway trafiği örnekler arasında dağıtabilir, ama asıl işi API çağrılarını yönlendirmek ve yönetmektir; yük dengeleyicinin asıl işi ise yükü dağıtmaktır.

İkisine de ihtiyacım var mı?

Büyük sistemlerde genellikle evet. Yük dengeleyici gateway'in kendisini erişilebilir tutar, gateway de çağrıları kendi içinde dengelenen servislere yönlendirir.

Ters proxy de aynı şey mi?

İkisi de birer ters proxy'dir: sunucuların önünde durur ve istekleri onlara iletir. Yük dengeleyiciler ve API gateway'ler, yükü dağıtmaya ve API'leri yönetmeye özelleşmiş ters proxy'lerdir.

Daha fazla

Ayarlar