【问题标题】:Newsfeed Architecture新闻提要架构
【发布时间】:2016-09-13 04:14:34
【问题描述】:

对于我正在进行的一个项目,我需要实现一个类似于 Facebook 的新闻源,不同之处在于它会以类似于聊天室的速度刷新,并且该源将由用户提供(仅状态更新)。我打算使用 Thrift,在客户端使用 php,在服务器上使用 C++。

因为刷新率需要如此高,在服务器上,我正在考虑将提要的最后约 20 个条目保存在内存中的链表(或类似结构)中以便快速访问(因为任何人刷新只需要最新条目)同时将任何旧条目发送到 mysql 数据库进行存储。

这看起来是适合此实现的架构吗?如果是这样,将旧条目发送到数据库的好方法是什么?

【问题讨论】:

    标签: architecture c++ facebook


    【解决方案1】:

    将所有项目直接发送到数据库,但保留最新的 100 个左右的列表。

    如果您使用存储库模式,请将列表保留在存储库类中并添加一个名为 GetLatest 的方法。你的应用程序的其余部分不应该关心它们是否被缓存。

    如果您使用的是 nhibernate,您可以打开缓存并让 nhibernate 为您处理。

    【讨论】:

      【解决方案2】:

      考虑在数据库前面使用memcached。这就是它的设计目的。

      但在你这样做之前,只需实现没有缓存的东西。看看情况如何。也许它会在一个相当无聊的实现中正常工作

      【讨论】:

        【解决方案3】:

        抱歉,答案过于简单,但我会在条目到达服务器时将条目发送到数据库,而不是“老化”。等待没有意义。然后,您可以将您的数据库用作存储库,并在新客户端到达时查询它以获取最后 20 个条目。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-12-19
          • 2016-07-30
          • 2011-11-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多