目前做的一个内容系统,里面有各种主题。
想让注册用户通过关注主题,在自己的「news feed」中查看已关注主题更新的内容,就像 facebook 的「news feed」那样,只不过 facebook 上关注的是好友。
请问这种功能大家一般是以什么思路和技术栈来实现?系统的总用户量在 50 万左右,也要考虑性能。
Topic.where(user_id: [current_user.id , 关注的用户ids]) 然后与主信息流合并ids
https://robots.thoughtbot.com/using-polymorphism-to-make-a-better-activity-feed-in-rails
这个方案也许大了有性能问题,但可以作为一个开始。
不是收藏,是「关注」类似社交应用中关注某个人,然后这个人以后发布的内容都会了同现在你的信息流中。
谢谢,我看 ruby-china 的「关注」用户的功能也跟我想要实现的功能类似,「通知」页面就像是个 news feed,我先参考一下 ruby-china 的代码先。
另外研究一下能不能配合 elasticsearch 来做。
elasticsearch 的强项是文本搜索,news feed 的瓶颈不在这里——一个活动要投递几千几万个信箱,而里面仅仅是一些 id。
Instagram 之前是用 Redis,后来转向 Cassandra。50 万用户我觉得可以先用上面的实现,遇到瓶颈再看看要在哪个环节解决。
好的,多谢
预估一下用户关注的分布情况。有没有“大 V”?每个人大约会关注多少主题?
这种不赚钱的业务目的是什么?建议先搞清楚
请借 (chao) 鉴 (xi) RubyChina 的功能