|
此版本仍在开发中,目前尚不稳定。如需最新稳定版本,请使用 Spring Cloud Kubernetes 5.0.1! |
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 实现:
-
Circuit breaker implementation on the caller side, by annotating the spring boot application class with
@EnableCircuitBreaker -
回退功能,通过使用
@HystrixCommand(fallbackMethod=注解相应的方法来实现。