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