【发布时间】:2016-09-12 11:09:00
【问题描述】:
我利用 spring-cloud。据我了解,当 Eureka 的客户端从 Eureka 服务器获取服务列表时,它使用 Ribbon 进行负载平衡。
客户端是否使用 Hystrix 通过断路器从 Eureka 获取服务列表?
【问题讨论】:
标签: java spring spring-cloud microservices netflix-eureka
我利用 spring-cloud。据我了解,当 Eureka 的客户端从 Eureka 服务器获取服务列表时,它使用 Ribbon 进行负载平衡。
客户端是否使用 Hystrix 通过断路器从 Eureka 获取服务列表?
【问题讨论】:
标签: java spring spring-cloud microservices netflix-eureka
有一个名为 Netflix Zuul 的网关服务(您也可以将其称为边缘服务)。客户端连接到网关服务,该服务反过来查询 Eureka Server 以获取适当的微服务详细信息。
Hystrix 基本上使用了容错机制,可以在任何微服务中使用。它的优点是,如果任何 API 出现故障,它会优雅地处理应用程序中的错误。
【讨论】:
正如 shankarsh15 所说,当 API 调用中发生错误和/或超时时,Hystrix 实际上提供了弹性(例如回退)。
我相信实际上是ribbon-loadbalance (LoadBalancerContext.java -> getServerFromLoadBalancer()) 决定了调用哪个客户端。
这最终以类似于discoveryClient.getInstances("service-name") 的方式工作(也就是获取服务实例列表,然后使用循环法选择要使用的服务)
【讨论】: