我正在开发一个对用户数据执行回归分析的Web应用程序。
在后端, RoR 正在处理应用程序逻辑,所有统计分析都由 R 完成(因为Ruby的stat包很差)。
鉴于R和RoR都是单线程,并且应用程序预计将由多个用户同时使用 - 我需要您对最佳配置的建议。
例如:我应该在不同的实例上运行R和RoR机器并让RoR通过REST与R通信吗?在可以群集的同一台机器上运行?使用Revolution Analytics?
什么是一个好的托管配置,以允许我的应用程序的可扩展性?
答案 0 :(得分:0)
查看Rserve,当在Linux上托管时,会在每个连接上分离一个新实例。
通过网络连接,并且有可用的Ruby客户端as indicated by a Google search
答案 1 :(得分:0)
您可以创建一个代理来与多个Web服务器进行通信,然后这些Web服务器中的每一个都通过代理与多个R_servers进行通信。要让代理服务器平衡负载,您可以查看类似Nginx的上游指令。
下图显示了3个Web服务器(它们是彼此的精确克隆)和3个R_servers(它们是彼此的精确克隆)。尽可能多地使用,因为添加/删除Web服务器或R_servers可以轻松地水平扩展。
webserver1 R_server1
/ \ /
proxy - webserver2 - proxy - R_server2
\ / \
webserver3 R_server3