Instagram风格的新闻提要逻辑

时间:2017-03-19 20:30:38

标签: news-feed

我正在制作涉及用户和新闻Feed的社交应用程序。为了按时间顺序显示用户的新闻Feed,以下哪项更有意义?

  1. 获取此人关注的每个用户的所有帖子,并按时间顺序对其进行排序
  2. 每次用户发布时,将该ID和日期保存到每个用户 他们的粉丝数据(似乎是多余的)
  3. 您可能知道的更好的解决方案

1 个答案:

答案 0 :(得分:0)

通常,社交网站是使用图形数据库构建的。我曾经在一个社交网站上工作过。下面是显示新闻源的技术堆栈和逻辑。

  1. Java,Spring MVC

  2. OrientDb-包含与Edges连接的Vertex的GraphDB

  3. JQuery&用于UI的Bootstrap

  4. Apache Solr-用于文本搜索用户,文章

  5. 以下是newsFeeds的逻辑:

    1. 当任何用户进行任何活动时,我们都会创建包含Activity的顶点 活动的元数据,如dateTime,活动类型和演员等。

    2. 我们有一个批处理程序(每3分钟后运行一次)将对所有未处理的活动进行处理。批量的责任是从Activity生成newsFeeds,并将这些 newFeeds_To_Be_Displayed 分配给相关用户(即演员的连接)要在屏幕上显示的新闻Feed

    3. 当用户登录时,我们用于查询给定用户的newFeeds_To_Be_Displayed并在屏幕上显示。

    4. 我们选择异步计算 newFeeds_To_Be_Displayed ,因为这是一个耗时的过程,我们希望最终导致糟糕的用户体验。