Service Discovery в Go. Consul, etcd, K8s.

Ответ

Сервисы регистрируются при старте и получают адреса других сервисов по имени. Consul/etcd: регистрация с TTL, здоровье через HTTP check; клиент резолвит имя в список инстансов. В K8s - DNS (имя сервиса резолвится в ClusterIP). В Go: клиент Consul (hashicorp/consul), etcd (etcd-client); при вызове другого сервиса берут адрес из discovery, балансируют (round-robin).

// K8s: http.Get("http://orders-service:8080/health")
// Consul: services, _ := consul.Client().Health().Service("orders", "", true, nil)
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.