Service discovery cho service tìm nhau theo tên logic thay vì IP:port cứng (instance scale lên xuống, IP đổi liên tục).
Lựa chọn 2026:
1. Kubernetes Service (phổ biến nhất) — K8s tự discovery qua DNS: gọi http://order-service/api/orders là xong, kube-proxy tự phân tải qua các pod. Không cần Eureka hay Spring Cloud Discovery.
2. Spring Cloud + Eureka (truyền thống — on-premise, không K8s) — dựng Eureka Server (@EnableEurekaServer); client gắn @EnableDiscoveryClient + eureka.client.serviceUrl để tự register và discover.
Load balancing (Spring Cloud LoadBalancer): đánh dấu @LoadBalanced trên bean RestClient.Builder/RestTemplate → khi gọi http://order-service/..., Spring resolve tên service → danh sách IP:port từ registry và phân tải client-side (round-robin mặc định).
Thực tế: deploy Kubernetes → dùng built-in của K8s; Eureka/Consul chỉ khi không có K8s.