onl*_*oon 3 javascript real-time publish-subscribe node.js socket.io
嗨,我正在为我的学校项目建立一个"Twitter克隆".
我想为实时更新实现发布订阅模式.
我使用Node.js,Socket.io,Redis和MySql作为数据库提供程序.我应该使用消息队列吗?人们使用消息队列是什么?
感谢您的帮助和解答
更新
当你小的时候,问题不存在.但是当你变得狂热时(向所有关注者转发消息将会很昂贵,并且你想使用MQ离线完成.像twitter一样,你将所有活动的推文存储在内存中.当发布推文时你放(设置)那个内存中的推文@key(独特).你可以使用类似Twitter的雪花.
接下来扇出过程发生了.对于每个用户,您需要将唯一键(tweet id)放在其列表中,以便他们可以从内存中检索推文.当你的网站很小时,我想你可以在没有消息队列的情况下做到这一点,但是当你需要从用户那里分发一条消息时,例如scoble有274,776个粉丝,而且推文很多,这可能会非常昂贵.
很多用户都处于脱机状态,因此这些推文不需要立即发送给用户.您可以像这样设计系统,因为您需要将所有内容保存在内存中.我认为这是有效实现这一目标的唯一方法.
你应该像twitter一样使用MQ.他们甚至开源了他们自己的MQ:Kestrel.在高可扩展性博客有一个非常有趣的文章:缩放的Twitter:Twitter成为10000%的速度.我建议你至少在High Scalability博客上学习热门文章,了解大型玩家如何扩展他们的网站.其他一些链接解释了Twitter如何扩展:
我还假设你读过:
我还要看看Twitter开源的所有项目:
我会看一下流行的MQ,例如:
| 归档时间: |
|
| 查看次数: |
2961 次 |
| 最近记录: |