Ana içeriğe geç

Service Discovery

Servis Keşfi

Okunuşu
sörvis diskavıri
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/service-discovery

Kısaca

Service discovery (servis keşfi), dağıtık bir sistemde servislerin, örnekler başlayıp durdukça değişen diğer servislerin güncel adreslerini bulma yoludur.

Service discovery nedir?

Container'larda ya da otomatik ölçeklenen gruplarda çalışan bir mikroservis sisteminde örnekler sürekli gelip gider ve yeni IP adresleri alır. 10.0.3.17:8080 gibi bir adresi koda gömmek, o örnek değiştirildiği anda bozulur. Service discovery, payments gibi her servis adı için sağlıklı örneklerin güncel bir listesini tutar ve çağıranların onlara bakmasını sağlar.

Merkezinde Consul, etcd, ZooKeeper ya da Netflix'in Eureka'sı gibi bir servis kayıt defteri (service registry) vardır. Örnekler başladıklarında kendilerini kaydeder ya da bir platform onları kaydeder; sağlık kontrolleri de yanıt vermeyi bırakan örnekleri çıkarır. İstemci tarafı keşifte çağıran kayıt defterine sorar ve örneği kendisi seçer; sunucu tarafı keşifte ise çağıran isteği aramayı yapan bir yük dengeleyiciye ya da yönlendiriciye gönderir.

Kubernetes bunu yerleşik olarak sunar. Bir Service, değişen bir pod kümesine sabit bir ad ve sanal bir IP verir; kümenin DNS'i de payments.default.svc.cluster.local gibi adları çözümler; böylece uygulamalar yalnızca bir adı çağırır. Service mesh'ler daha da ileri gider ve keşfi, yük dengelemeyi, yeniden denemeleri ve şifrelemeyi her servisin yanındaki sidecar proxy'lerde üstlenir.

Sık yapılan bir yanlış, keşfi tek başına DNS'in çözdüğünü düşünmektir. DNS nadiren değişen adlar için işe yarar, ama önbellekleme dakikalarca ölü örnekleri döndürmeye devam edebilir ve sağlık bilgisi taşımaz. Keşif sistemleri saniyeler içinde güncellenir ve yalnızca sağlık kontrollerinden geçen örnekleri döndürür.

Önemli noktalar

  • Service discovery, diğer servislerin güncel adreslerini bulur.
  • Consul ya da etcd gibi bir kayıt defteri sağlıklı örnekleri adlarına göre izler.
  • İstemci tarafı keşif örneği çağıranda seçer; sunucu tarafı keşif bir yönlendirici kullanır.
  • Kubernetes Service'leri ve küme DNS'i yerleşik keşif sağlar.
  • Hızla değişen sistemler için düz DNS çok yavaştır ve sağlık kontrolü yoktur.

Sık sorulan sorular

Mikroservisler neden service discovery'ye ihtiyaç duyar?

Çünkü örnekler sürekli oluşturulur, yok edilir ve taşınır; bu yüzden adresleri değişir. Keşif, servislerin birbirini adla çağırmasını ve her zaman sağlıklı bir örneğe ulaşmasını sağlar.

İstemci tarafı ile sunucu tarafı keşif arasındaki fark nedir?

İstemci tarafı keşifte çağıran servis kayıt defterini sorgular ve bir örnek seçer. Sunucu tarafı keşifte ise istekleri bir yük dengeleyiciye ya da yönlendiriciye gönderir; o da kayıt defterini sorgulayıp isteği iletir.

Kubernetes service discovery'yi nasıl yapar?

Her Kubernetes Service'i sabit bir DNS adı ve sanal bir IP alır. Küme onu hangi sağlıklı pod'ların desteklediğini izler; ada gönderilen trafik de bunlara dağıtılır.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar