1

我有一个应用程序,包括网络和移动应用程序,它需要一个高效的私人消息系统,最终可能会有数百万用户。所有浮现在脑海中的是每个人都在某个时间或另一个地方使用的留言板的 PM 系统以及 Jabber/XMPP 即时消息协议。

理想情况下,它在最终用户布局方面类似于 Facebook 的聊天系统(来自特定朋友的所有消息都放在同一页面上),但这几乎只是调整 UI 的问题。

最令人生畏的是这个 PM 系统需要为潜在的数百万用户工作的想法。有这么多用户,我应该尝试实现什么?

目前正在检查 Pusher,但我担心成本。

4

1 回答 1

0

你可以从 PlayOrm 和 Cassandra 和 playframework 开始,只需要一个非常简单的表格。如果您使用 playframework,它可以很容易地为长轮询执行 websockets,并且 playframework 可以在几个线程上执行 1000 个套接字。为数百万用户设计似乎与为数千用户设计一样容易,所以虽然我同意为 1000 用户设计,因为成功可以帮助您雇用更多人并将解决方案更改为可扩展的解决方案,但并不难这些天来设计一个可扩展的解决方案。

我认为您真正需要解决的唯一另一件事是,当一个请求进入一个播放服务器时,您需要将消息发送到所有其他服务器,因为您不知道哪个服务器有 websocket 监听事件。 ..那里有一些图书馆可以帮助解决这个问题。

所以

  1. 将项目存储在用户消息队列中
  2. 向所有其他网络服务器发送消息有用户 X、Y、Z 的消息(在一条消息中分组大量传入以减少负载)
  3. 为用户 X、Y、Z 提供 websocket 的服务器可以轻松地立即使用刚收到的消息响应各自的用户。

这是一个有趣的问题。

院长

于 2012-11-15T22:48:07.010 回答