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=
註釋相應的方法