-2

我们目前正在开发一个聊天(如 facebook,带有存储的消息)。目前,至少有500个在线用户(它是一个约会网站),高峰时最多有3000个用户同时在线。

切换到 websockets 对我们来说是“事情”,但是在使用 gem “websocket-rails”时,我们有点担心性能。阅读文章,如https://www.igvita.com/2008/11/13/concurrency-is -a-myth-in-ruby/引起了一些疑问。

所以我们的问题是:

websocket-rails 是否正在杀死我们的应用程序?另一种选择是运行 jsnode 服务器并切换到 faye,这在我们的 scalabitliy 中应该不是问题。有人对 websocket-rails 的可扩展性有任何经验吗?

4

1 回答 1

0

GIL 仍然存在,但不应成为主要问题。主要问题是 Rails 方法不适合大规模聊天方法。

我的建议是针对这个特定部分切换到事件机器,并且仍然使用 websocket(或其他推送机制,如 pusher),并使用这种WebSocket EventMachine Client

然后,您将使用单个 ruby​​ 线程进行事件驱动,并且您仍然可以使用所有其他 rails 现有库(即 node.js 模型)

于 2015-08-23T11:21:15.853 回答