【发布时间】:2019-05-01 10:04:29
【问题描述】:
我有多个相同的 Scala Akka-HTTP 应用程序,每个都安装在专用服务器上(大约 10 个应用程序),响应端口 80 上的 HTTP 请求。在此设置之前,我使用单个 HAproxy 实例来接收所有传入流量并平衡这 10 台服务器的工作负载。
我们想更改 HAproxy(我们怀疑它会导致我们出现延迟问题)并使用不同的负载平衡器。要求是采用不同的第 3 方负载均衡器或使用 scala 开发一个简单的负载均衡器,将每个 http 请求轮询到后端 akka http 应用程序并代理返回响应。
是否有另一个推荐的负载平衡器(开源),我可以使用它来对除 HAproxy 之外的多个应用程序(可能是 APACHE httpd)进行负载平衡/代理 http 传入请求?
编写一个简单的 akka http 应用程序路由作为负载均衡器,在某个配置文件中注册后端应用程序主机,并对它们的请求进行轮询是否有意义?
也许我应该为此考虑使用 Akka 集群?问题是,这些应用程序已经是独立的 akka http 服务,没有集群支持。也许去聚类会太多了。 (希望保持简单)
什么是对 http 应用程序(尤其是 akka http scala 应用程序)的请求进行负载平衡的最佳做法,因为我可能在这里遗漏了一些东西?
注意 - 我们也希望有背压,这意味着如果服务器很忙,我们希望使用 204 或一些状态码进行响应,这样我们的客户端就不会出现超时,以防我的后端很忙.
【问题讨论】:
标签: akka load-balancing akka-stream akka-http