EMZETT.
Giriş yap

API ağ geçidi: birçok hizmet için tek giriş

Kısaca: Dışarıdan gelen tüm istekleri kabul eden ve uygun dahili hizmetlere ileten bir aracı.

Biraz daha ayrıntılı: Birçok küçük hizmetle (mikro hizmetler) her uygulamanın her hizmeti tek tek tanıması ve güvenceye alması külfetli olurdu. Bir API ağ geçidi erişimi bir araya getirir: tek bir adresi vardır, istekleri denetler ve dağıtır. Böylece kesişen görevler her hizmette değil, bir kez merkezi olarak çözülür.

Ayrıntılı

Görevler

  • Yönlendirme (routing): /orders sipariş hizmetine, /users kullanıcı hizmetine gider.
  • Kimlik doğrulama ve yetkilendirme: herhangi bir şey hizmetlere ulaşmadan önce belirteçleri denetlemek.
  • Hız sınırlama ve kötüye kullanıma karşı koruma.
  • TLS sonlandırma: girişte şifreleme, içeride daha basit.
  • Birkaç yanıtı tek yanıtta birleştirmek (toplama) ve biçimleri yeniden şekillendirmek.
  • Günlük kaydı, metrikler, önbellekleme.

Bir yönlendirme kuralı örneği

nginx benzeri gösterimle:

location /api/orders/ { proxy_pass http://orderservice:8080/; }
location /api/users/  { proxy_pass http://userservice:8080/; }

Pratikte Kong, Traefik, AWS API Gateway veya Azure API Management gibi ürünler kullanılır.

Frontend için backend (BFF)

Bir varyant, uygulama türü başına ayrı bir ağ geçididir; örneğin mobil uygulama için bir tane, web arayüzü için bir tane. Her biri istemcisinin tam olarak ihtiyaç duyduğu verileri sunar ve çok sayıda tekil çağrıyı önler.

Dezavantajlar

Ağ geçidi merkezi bir noktadır: arızalanırsa her şey gider ve darboğaza dönüşebilir. Bu yüzden yedekli ve yüksek erişilebilirlikle işletilmelidir. Ayrıca çok fazla iş mantığı biriktirmemelidir; yoksa yeni bir monolit doğar. Salt hizmetten hizmete trafik genellikle ondan değil, bir hizmet ağından (service mesh) geçer.

Ayrıca bak: Mikro hizmetler, nginx ve ters vekil sunucu, Hız sınırlama, Yük dengeleyici