Kubernetes 原生服務發現

Kubernetes 本身能夠進行(服務端)服務發現(參見: kubernetes.io/docs/concepts/services-networking/service/#discovering-services)。使用原生 Kubernetes 服務發現可確保與 Istio (istio.io) 等其他工具的相容性,Istio 是一種服務網格,能夠實現負載均衡、斷路器、故障轉移等功能。

然後,呼叫者服務只需要引用可以在特定 Kubernetes 叢集中解析的名稱。一個簡單的實現可能使用 Spring 的 RestTemplate,它引用一個完全限定域名 (FQDN),例如 {service-name}.{namespace}.svc.{cluster}.local:{service-port}

此外,您可以將 Hystrix 用於:

  • 在呼叫方實現斷路器,方法是使用 @EnableCircuitBreaker 註釋 Spring Boot 應用程式類

  • 回退功能,方法是使用 @HystrixCommand(fallbackMethod= 註釋相應的方法