新闻源架构

时间:2011-06-06 22:27:32

标签: architecture c++ facebook

对于我正在研究的项目,我需要实现类似于Facebook的新闻源,区别在于它会以类似于聊天室的速率刷新,并且源将由用户贡献(仅状态更新)。我打算使用Thrift,在客户端使用php,在服务器上使用C ++。

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

这似乎是这种实现的正确架构吗?如果是这样,将旧条目发送到数据库的好方法是什么?

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

很抱歉这个简单的答案,但我会在他们到达服务器时将数据发送到数据库,而不是“老化”。没有必要等待。然后,您可以将数据库用作存储库,并在新客户端到达最后20个条目时进行查询。