首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于app引擎的web应用程序设计策略

问基于app引擎的web应用程序设计策略
EN

Stack Overflow用户
提问于 2013-01-23 20:39:43
回答 1查看 153关注 0票数 1

我正试着开发一个游戏网站。用户可以添加其他用户作为他们的朋友。用户将获得积分,因为他完成了各种游戏水平。现在我需要显示所有已经在游戏页面上玩过游戏的用户朋友的平均分数(例如:当用户玩游戏A时,他的朋友所挣的平均分数将显示在游戏A页面上。同样地,当他玩B游戏时,他的朋友的平均分数也会显示出来)。

我的方法:

  • 将用户朋友列表(最大1000)作为多值属性存储在数据存储中,并在用户登录到站点时将其加载到GAE内存缓存中。
  • 使用驻留后端缓存所有用户的游戏数据(每个特定游戏的积分)。cron作业每小时更新后端缓存。当用户第一次请求一个游戏页面(例如:游戏A)时,请求处理程序联系后端,以便通过URL获取服务计算朋友点的平均值。
  • 现在后端从memcache获取用户的好友列表(最大1000),从内存缓存(后端缓存)获取游戏中的朋友点(后端缓存),并返回计算的平均值。请求处理程序获得平均值后,将其保存在数据存储中,并将其存储在memcache中,以便后续对游戏的请求能够从memcache/datastore中获取数据,而无需在后端计算开销。此平均值有效时间为1小时,并在下一次请求后重新计算到游戏A页。

我的问题:

  • 上述方法是否是解决这一问题的正确途径?
  • 如何使用后端实例(python-2.7)高效可靠地实现内存中的缓存?
  • 如何估计仅用于此作业的后端所需的内存和cpu?(假设100万个键值对必须以"userid/gamename“作为键和用户点作为值存储。用户好友列表最大大小为1000。)
  • 如果我必须在负载增加时使用多个后端实例,那么如何负载平衡它们?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-01-24 05:03:31

看一下尼克约翰逊的博客文章,关于计数器:http://blog.notdot.net/2010/04/High-concurrency-counters-without-sharding

使用NDB数据存储进行:-自动缓存,而不是您自己的memcache - NDB有一些新的有趣的属性,例如:带有压缩的json属性,重复的特性,这些特性类似于Python列表。

并查看mapreduce以实现有效的更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14488950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档