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=注解相应方法来实现回退功能