← Bütün Patternlər
🗺️

Service Discovery

Mikroservislərin bir-birinin ünvanını (IP/Port) dinamik olaraq tapmasını təmin edən mexanizm.

🎯
Nə üçün lazımdır?

Cloud mühitdə servislər daim yaranır/ölür, IP-ləri dəyişir. Hardcoded IP yazmaq mümkün deyil.

🔄
Necə işləyir?

Hər servis açıldıqda Registry-ə qeydiyyatdan keçir. Digər servislər lazım olanda Registry-dən soruşur.

🛠️
Populyar alətlər

Eureka (Netflix), Consul (HashiCorp), ZooKeeper, Kubernetes DNS, etcd.

İNTERAKTİV

Vizual İzah

Mərhələ {{ currentStep + 1 }}: {{ steps[currentStep].title }}

🔍
Service A
UserService haradadır?
192.168.1.5:8080
📋
Service Registry
Mən burdayam!
💓 Heartbeat
👤
User Service
KONSEPT

Əsas Anlayışlar

01
Client-Side Discovery

Zəng edən servis özü Registry-dən ünvanı alır və birbaşa oraya gedir (Eureka + Ribbon).

02
Server-Side Discovery

Zəng Load Balancer-ə gedir, o Registry-dən ünvanı tapıb yönləndirir (Kubernetes, AWS ELB).

03
Self-Registration

Hər servis açıldıqda öz ünvanını özü Registry-ə yazır. Bağlananda silir.

04
Health Check (Heartbeat)

Registry hər 30 saniyədən bir servislərə "yaşayırsan?" sualı göndərir. Cavab gəlmirsə siyahıdan silinir.

JAVA

Kod Nümunəsi — Eureka

EurekaServerApp.java
@SpringBootApplication
@EnableEurekaServer   // Bu tətbiqi Eureka Server edir
public class EurekaServerApp {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApp.class, args);
    }
}
UserServiceApp.java (Client tərəf)
@SpringBootApplication
@EnableDiscoveryClient  // Eureka-ya qeydiyyat
public class UserServiceApp {
    public static void main(String[] args) {
        SpringApplication.run(UserServiceApp.class, args);
    }
}

// Feign ilə başqa servisi çağırmaq — ünvanı Eureka-dan alır
@FeignClient(name = "ORDER-SERVICE")
public interface OrderClient {
    @GetMapping("/orders/{userId}")
    List<Order> getOrdersByUser(@PathVariable Long userId);
}
✅ Üstünlükləri
  • Dinamik (runtime) ünvan tapma
  • Auto-scaling ilə problemsiz uyğunlaşma
  • Sağlam olmayan servislər avtomatik çıxarılır
  • Hardcoded IP-lərdən azad olma
⚠️ Riskləri
  • Registry özü SPOF ola bilər (HA qurmaq lazımdır)
  • Əlavə infrastruktur dəstəyi tələb edir
  • Cache-ləmə yanlış ünvan verə bilər (Stale data)