【发布时间】:2017-03-24 09:01:20
【问题描述】:
我将 Spring Boot 用于微服务,但遇到了负载平衡问题。
Spring Actuator 向应用程序添加了特殊的health 和metrics 端点;这样,就可以从正在运行的实例中获取一些基本信息。
我想做的是创建一个(反向)代理(例如,使用 Zuul 和/或 Ribbon?),它创建一个集中式负载均衡器,根据它们的健康状态选择实例。
例如,我有以下微服务
client-
proxy( server 1server 2
当客户端向代理发送 http 请求时,代理应该能够决定哪个服务器实例的负载最小,并将请求转发给那个。
有没有简单的方法可以做到这一点?
谢谢, 克丽丝
【问题讨论】:
-
这完全取决于您要拆分的负载类型。如果它纯粹是基于请求的负载,为什么不将流量分成 50/50,如果服务器都启动了呢?否则,您可以扩展
health端点以累积随时间的负载,并在负载均衡器中使用该数据来决定将流量发送到何处 -
我想根据服务器的当前负载因子(例如CPU)进行平衡,而不是请求的数量(所以基本上不是基于请求的)
标签: spring-boot spring-boot-actuator