Service Discovery
How services find each other in a dynamic microservices environment.
1The Phone Directory Analogy
Service Discovery automatically detects and tracks the network locations (IP:port) of service instances as they start, stop, or move.
2Why It's Needed
Dynamic IPs
Cloud instances get new IPs on restart. Hardcoding doesn't work.
Auto-scaling
Instances come and go. Discovery tracks current healthy instances.
Containers
Kubernetes pods are ephemeral. IP changes on every restart.
Load Balancing
Need to know all instances to distribute traffic.
3Discovery Patterns
Client-Side Discovery
Client queries registry, picks an instance, calls directly.
Example: Netflix Eureka + Ribbon
Server-Side Discovery
Client calls load balancer, which queries registry.
Example: AWS ELB, Kubernetes
4Popular Solutions
Consul
HashiCorp. Service mesh, health checks, key-value store.
etcd
Distributed key-value store. Powers Kubernetes.
Eureka
Netflix OSS. Java-focused, self-preserving.
Kubernetes DNS
Built-in discovery via DNS and Services.
5Key Takeaways
?Quiz
1. Your Kubernetes pod restarts. Why is hardcoded IP a problem?
2. In client-side discovery, who picks which instance to call?