相关疑难解决方法(0)

您将如何为Twitter等社交网站设计AppEngine数据存储?

我想知道什么是设计社交应用程序的最佳方式,其中成员使用Google AppEngine进行活动并关注其他成员的活动.

更具体一点,假设我们有这些实体:

  • 有朋友的用户
  • 表示用户所做操作的活动(假设每个用户都有一个字符串消息和一个ReferenceProperty给它的所有者用户,或者它可以通过appengine的密钥使用父关联)

困难的部分是关注您朋友的活动,这意味着汇总您所有朋友的最新活动.通常情况下,这将是活动表和你的朋友列表之间的连接,但这不是一个可行的appengine设计,因为没有连接模拟它将需要激活N个查询(其中N是朋友的数量)然后合并到内存中 - 非常昂贵,可能超过要求的截止日期......)

我目前正在考虑使用收件箱队列来实现这一点,其中创建新的Activity将触发后台进程,该进程将新活动的密钥放在每个后续用户的"收件箱"中:

  • 获取"所有关注X的用户"是一个可能的appengine查询
  • 对于基本上存储(用户,活动密钥)元组的新"收件箱"实体而言,不是非常昂贵的批量输入.

我很高兴听到有关这个设计或其他建议等的想法.

architecture google-app-engine google-cloud-datastore

28
推荐指数
2
解决办法
7125
查看次数