数百万的高效私人消息解决方案?

时间:2012-11-14 08:57:24

标签: mysql cassandra messaging pusher

我有一个应用程序,包括网络和移动设备,需要一个有效的私人消息系统,最终可能成为数百万用户。所有想到的都是消息板的PM系统,每个人都会在某个时刻使用它们。 Jabber / XMPP即时消息协议。

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

最令人生畏的是,这个PM系统需要为潜在的数百万用户服务。有了这么多用户,我应该尝试实施什么?

目前正在检查Pusher,但我担心费用。

1 个答案:

答案 0 :(得分:0)

你可以将PlayOrm和Cassandra以及playframework作为一个开始,只需要一个非常简单的表。如果你使用playframework,它可以很容易地做webockets以进行长轮询,而playframework可以在几个线程上完成1000个套接字。对于数百万用户而言,为1000名用户设计似乎同样容易,因此我同意1000的设计,因为成功可以帮助您雇用更多并将解决方案更改为可扩展的解决方案,现在也不难设计可扩展的解决方案。

我认为你真正需要解决的另一件事就是当一个请求进入一个播放服务器时,你需要将消息发送给所有其他服务器,因为你不知道哪个请求有websocket监听对于这个事件....有一些库可以帮助解决这个问题。

所以

  1. 将该项目存储在消息的用户队列中
  2. 向所有其他网络服务器发送消息,有用户X,Y,Z的消息(在一条消息中传入大量的组以减少负载)
  3. 具有用户X,Y,Z的websockets的服务器可以使用刚刚进入的消息轻松响应各自的用户。
  4. 这是一个有趣的问题。

    迪安