使用 Hystrix 通过断路器从 Eureka 获取服务列表

Using Hystrix to get list of services from Eureka through the circuit breakers

我利用 spring-cloud。据我了解,当 Eureka 的客户端从 Eureka 服务器获取服务列表时,它使用 Ribbon 进行负载平衡。

客户端是否使用Hystrix通过断路器从Eureka获取服务列表?

有一个名为 Netflix Zuul 的网关服务(您也可以将其称为边缘服务)。客户端连接到网关服务,网关服务反过来查询 Eureka 服务器以获取适当的微服务详细信息。

Hystrix 基本上使用了任何微服务都可以使用的容错机制。它的优点是,如果任何 API 出现故障,它会优雅地处理应用程序中的错误。

正如 shankarsh15 所说,当 API 调用中发生错误 and/or 超时时,Hystrix 实际上提供了弹性(例如回退)。

我相信实际上是 ribbon-loadbalance (LoadBalancerContext.java -> getServerFromLoadBalancer()) 决定调用哪个客户端。

这最终的工作方式与 discoveryClient.getInstances("service-name") 类似(又名获取服务实例列表,然后使用循环法选择要使用的服务)