Architecture 新闻提要体系结构

Architecture 新闻提要体系结构,architecture,c++,facebook,Architecture,C++,Facebook,对于我正在进行的一个项目,我需要实现一个类似于Facebooks的新闻提要,区别在于它将以类似于聊天室的速率刷新,并且提要将由用户贡献(仅状态更新)。我计划在服务器上使用节俭,在客户端上使用PHP,在服务器上使用C++。p> 因为刷新率需要很高,所以在服务器上,我考虑将feed的最后20个条目保存在一个链表(或类似结构)中,以便快速访问(因为任何刷新的人只需要最新的条目),同时将任何旧条目发送到mysql数据库进行存储 对于这个实现来说,这似乎是一个合适的体系结构吗?如果是这样,将旧条目发送到数

对于我正在进行的一个项目,我需要实现一个类似于Facebooks的新闻提要,区别在于它将以类似于聊天室的速率刷新,并且提要将由用户贡献(仅状态更新)。我计划在服务器上使用节俭,在客户端上使用PHP,在服务器上使用C++。p> 因为刷新率需要很高,所以在服务器上,我考虑将feed的最后20个条目保存在一个链表(或类似结构)中,以便快速访问(因为任何刷新的人只需要最新的条目),同时将任何旧条目发送到mysql数据库进行存储

对于这个实现来说,这似乎是一个合适的体系结构吗?如果是这样,将旧条目发送到数据库的好方法是什么

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


但在您这样做之前,只需在不使用缓存的情况下实现它。看看进展如何。也许它可以与相当无聊的实现一起工作

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

将所有条目直接发送到数据库,但保留一个包含最近100个条目的列表

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

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