我们计划实施一个大规模扩展后端系统,基本上必须在相当短的时间内(大约5分钟)计算数十万最终用户的投票。
可以使用Go运行时和Dedicated Memcache服务在App Engine上完成实现。也许,数据存储将用于在投票期后保持计数器值。
我们当前的建筑理念和问题:
我们计划将实例内存用于即时请求计数。假设只使用Go全局变量实际转换为“使用实例内存”,我们是否正确?
我们计划将每个实例的总计数器值(全局变量的值)存储到一个待定义的间隔中的专用内存中,例如:每10秒或250个增量。我们可能会对这些memcached计数器进行分片,以避免单个Key / Items上的峰值负载。
使用App Engine cron作业,我们可能会将Memcache计数器保留为长期使用。
答案 0 :(得分:1)
对于类似的内容,您可能希望使用task queue机制(特别是pull queue机制)。这将允许您在单个操作中处理(计数+提交)多个投票任务。这可能比使用实例内存更可靠,因为任务队列将比任务重启更久。