Rails 想做一个关注主题的功能,请问有没有最佳实践?

jonnoj · 2018年07月15日 · 最后由 Peter 回复于 2018年07月16日 · 1109 次阅读

目前做的一个内容系统,里面有各种主题。

想让注册用户通过关注主题,在自己的「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

这个方案也许大了有性能问题,但可以作为一个开始。

jmmbite 回复

不是收藏,是「关注」类似社交应用中关注某个人,然后这个人以后发布的内容都会了同现在你的信息流中。

Rei 回复

谢谢,我看 ruby-china 的「关注」用户的功能也跟我想要实现的功能类似,「通知」页面就像是个 news feed,我先参考一下 ruby-china 的代码先。

另外研究一下能不能配合 elasticsearch 来做。

jonnoj 回复

elasticsearch 的强项是文本搜索,news feed 的瓶颈不在这里——一个活动要投递几千几万个信箱,而里面仅仅是一些 id。

Instagram 之前是用 Redis,后来转向 Cassandra。50 万用户我觉得可以先用上面的实现,遇到瓶颈再看看要在哪个环节解决。

Rei 回复

好的,多谢

预估一下用户关注的分布情况。有没有 “大 V”? 每个人大约会关注多少主题?

这种不赚钱的业务目的是什么?建议先搞清楚

请借 (chao) 鉴 (xi) RubyChina 的功能

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册