Kubernetes 原生服务发现

Kubernetes 本身具备(服务端)服务发现能力(参见:kubernetes.io/docs/concepts/services-networking/service/#discovering-services)。
使用原生 Kubernetes 服务发现可确保与额外工具(如 Istio,istio.io)的兼容性,Istio 是一种服务网格,能够实现负载均衡、熔断、故障转移等功能。spring-doc.cadn.net.cn

调用方服务只需引用在特定 Kubernetes 集群中可解析的名称。一个简单的实现可能使用 Spring RestTemplate,该名称指向完全限定域名(FQDN),例如 {service-name}.{namespace}.svc.{cluster}.local:{service-port}spring-doc.cadn.net.cn

此外,您还可以使用 Hystrix 实现:spring-doc.cadn.net.cn

  • Circuit breaker implementation on the caller side, by annotating the spring boot application class with @EnableCircuitBreakerspring-doc.cadn.net.cn

  • 回退功能,通过使用 @HystrixCommand(fallbackMethod= 注解相应的方法来实现。spring-doc.cadn.net.cn