Kubernetes native service discovery

Kubernetes 本身可以进行(服务器端)服务发现(请参阅:[role="bare"][role="bare"]https://kubernetes.io/docs/concepts/services-networking/service/#discovering-services)。使用原生 Kubernetes 服务发现可确保与其他工具兼容,如 Istio ([role="bare"][role="bare"]https://istio.io),这是一种能够进行负载平衡、断路器、故障转移等操作的服务网格。

然后,调用者服务只需引用在特定 Kubernetes 集群中可解析的名称即可。一种简单的方法可能是使用引用完全限定域名 (FQDN) 的 Spring RestTemplate,例如 https://{service-name}.{namespace}.svc.{cluster}.local:{service-port}

此外,您可以对以下内容使用 Hystrix:

  • 在调用方端实现熔断器,通过用 @EnableCircuitBreaker 注解 Spring Boot 应用程序类

  • 回退功能,通过用 @HystrixCommand(fallbackMethod= 注解相应的方法