我们正在开发聊天(如Facebook,存储的消息)。 目前,至少有500名在线用户(其约会网站),并且在峰值时最多可以有3000名用户同时在线。
切换到websockets是"事情"对我们来说,但在使用宝石" websocket-rails"我们害怕一点性能。像https://www.igvita.com/2008/11/13/concurrency-is-a-myth-in-ruby/这样的文章引起了一些疑问。
所以我们的问题是:
websocket-rails是否会杀死我们的应用程序?另一个选择是运行一个jsnode服务器并切换到faye,这在我们的scalabitliy中不应该是一个问题。有人对websocket-rails的可扩展性有所了解吗?
答案 0 :(得分:0)
GIL仍在这里,但不应该是主要问题。主要问题是Rails方法不适合大规模的聊天方法。
我的建议是切换到这个特定部分的事件机器,并仍然使用websocket(或其他推送机制,如推动器),并使用这种WebSocket EventMachine Client。
然后您将使用单个ruby线程进行事件驱动,您仍然可以使用所有其他rails现有库(这是node.js模型)