【发布时间】:2017-09-05 01:33:07
【问题描述】:
我想实现一种模式,如果错误百分比超过阈值,则自动或手动停止对外部服务(即端口)的所有请求一段时间。我有两个服务器实例在具有不同端口的同一台机器上运行(例如:2401、2402)。
现在的要求是如果端口 2401 超过错误百分比阈值,那么我想在一段时间内停止对该端口(2401)的所有请求并路由到另一个端口(2402)。我不确定哪种算法适合这个。
我阅读了一些文章,但没有得到关于 Java 代码中负载均衡器实现的完整信息。
提前致谢, 萨提什
【问题讨论】:
-
看看 Hystrix 的 CircuitBreaker impl(hystrix 命令)。你不需要 LB
-
但是当我们将断路器应用于方法时,Hystrix 会监视对该方法的失败调用,如果失败达到阈值,Hystrix 会打开电路,以便后续调用自动失败。这个锻炼我不确定。
-
您可以覆盖“getFallback”方法,然后您可以使用另一个命令调用第二个服务实例。
-
用于负载平衡(Spring Cloud Ribbon)和断路器(Hystrix)。
-
非常感谢您的帮助。
标签: java load-balancing netflix-eureka hystrix spring-cloud-netflix