2012-11-14 24 views
1

我有一个应用程序,无论是网络和移动,需要一个有效的私人消息系统,最终可能会有数百万用户。所有想到的是每个人都使用Jabber/XMPP即时消息协议的消息板的PM系统&。为数百万人提供高效的私人消息解决方案?

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

最令人感到恐惧的是这个PM系统需要为潜在的数百万用户工作。有了这么多用户,我应该尝试实施什么?

目前检查推杆,但我担心的成本。

+1

这样的系统已经存在。这就是所谓的电子邮件。 ;-)无论如何,不​​要为数百万用户构建。瞄准数千人,现在你会安全的。如果你有数百万用户,你将需要额外的服务器,可能需要群集。你需要额外的人力来开发这个系统,你会遇到你现在无法想象的限制。不要过度复杂化并制定切合实际的目标。 – GolezTrol

+1

曾几何时,它被称为irc – Paul

+0

@GolezTrol我知道,对吧?!我的一部分人认为最好使用一个封闭的外部世界的私人电子邮件服务器,因为除了一些实时通知内容之外,电子邮件还包含您可能想要的所有功能。但是,我只是想知道是否有人知道一个库/插件可以很容易地以正确的方式建立这样一个通用的功能。 – tylerl

回答

0

你可以用PlayOrm和Cassandra和playframework作为开始,只需要一张非常简单的表格。如果您使用playframework,则可以非常轻松地进行长轮询的websocket,并且playframework可以在几个线程上执行1000个套接字。对于数百万用户来说,设计1000个用户似乎很容易,所以我同意1000年的设计,因为成功可以帮助您更多地雇用并将解决方案变成可扩展的解决方案,但并不难现在也可以设计一个可扩展的解决方案。

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

所以

  1. 存储在消息的用户队列的项目
  2. 信息发送到所有其它网络服务器中有一个消息为用户X,Y,Z(组大量的呼入消息,以减少负载)具有针对用户X,Y的WebSockets
  3. 服务器,Z可以很容易地与即时消息各自的用户回应说,刚进来的。

这是一个有趣的问题来思考。

院长

+0

非常感谢,我当然会在开发真正开始时参考它! – tylerl