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=
注释相应的方法