【发布时间】:2016-07-20 10:46:21
【问题描述】:
我有 6 个 Linux 机器运行 RServe 并提供相同的 R 脚本集。
192.168.0.1 : 6311
192.168.0.2 : 6311
...
...
192.168.0.6 : 6311
我使用 REngine(Rserve Java 客户端)从 java 连接到这些 Rserve。
RConnection rServeConnection = new RConnection(R_SERVE_SERVER_ADDRESS, R_SERVE_SERVER_PORT);
现在我该如何负载平衡呢?最好在 Apache Mod Proxy 中?
我尝试过使用 httpd websocket 负载平衡设置,但没有成功。
更新:结论 httpd 不会对 TCP 流量进行负载平衡(Rserve 使用 TCP,虽然 Rserve 中有选项可以启用 websocket 模式,但我的用例不需要那个额外的层)。移动到 HAProxy 以使用以下链接中的配置进行负载平衡,并且能够负载平衡进入 Rserve 的具有容错能力的 R 脚本请求。
【问题讨论】:
-
我不认为 rserve 是 http?
-
是的.. Rserve 不是 http。它通过 TCP/IP 套接字连接。 IP:6311 @jeroen
-
看起来更多的人正在寻找相同的解决方案。这是一个有效的解决方案。如果有帮助,请点赞。 stackoverflow.com/a/39052040/1057093
-
很高兴听到这个消息!我认为这里的教训是找到合适的 TCP 而不仅仅是 HTTP 负载平衡。
标签: r apache load-balancing haproxy rserve