我有6个Linux盒子运行RServe并提供相同的R脚本集。
@media screen and (min-width: 0px) and (max-width: 768px) {
#mobile-menu{
display: block;
}
#large-menu{
display: none;
}
}
@media screen and (min-width: 769px) and (max-width: 2000px) {
#mobile-menu{
display: none;
}
#large-menu{
display: block;
}
body {
padding-top: 50px;
}
}
我使用REngine(Rserve Java Client)从java连接到这些Rserve。
192.168.0.1 : 6311
192.168.0.2 : 6311
...
...
192.168.0.6 : 6311
现在如何对此进行负载均衡?最好是在Apache Mod Proxy?
我尝试过使用httpd websocket负载均衡设置而没有运气。
更新:结论httpd不会平衡TCP流量(Rserve使用TCP,而Rserve中有选项可以启用websocket模式,我的用例不需要额外的层)。已转移到HAProxy以使用config进行负载平衡,如下面的链接所示,并且能够通过容错来平衡R脚本请求。
答案 0 :(得分:1)
我不确定这是否可以通过Apache mod_proxy实现。我认为它只适用于HTTP协议。也许您可以尝试使用nginx进行概念验证。它支持普通TCP和UDP连接的负载平衡。它还允许您定义负载平衡方法(例如循环等)。
配置如下:
stream {
upstream myapp1 {
server 192.168.0.1:6311;
server 192.168.0.2:6311;
...
server 192.168.0.6:6311;
}
server {
listen 80;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass backend;
}
}
您可以在nginx文档中找到更多信息: https://www.nginx.com/resources/admin-guide/tcp-load-balancing/并在此处: https://nginx.org/en/docs/stream/ngx_stream_core_module.html
答案 1 :(得分:0)
如果您还没有这样做,并且因为您已经在使用Java,那么首先从Java连接到您的RServe服务器并运行一个简单的" hello world"他们的脚本,如CRAN examples
中所述一旦RServe实例正常工作,您需要从Java进行负载均衡或为每个服务器创建一个Java程序,并让Apache在它们之间实现负载平衡。在任何一种情况下,您的Java程序都需要提供http,因为您仍需要html和RServe之间的链接。
答案 2 :(得分:0)
看起来更多人正在寻找负载平衡R脚本的解决方案。 这是通过Rserve和HAproxy TCP负载平衡器对loadbalance R进行工作的解决方案。
如果有帮助则重击。