首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在高流量web开发中设计全局动作计数器

问在高流量web开发中设计全局动作计数器
EN

Stack Overflow用户
提问于 2012-11-09 11:21:48
回答 1查看 192关注 0票数 1

我们有一个We应用程序,可以满足数百名同时登录的用户(任何给定时间大约10K-30K用户)的需求。该应用程序收集分析,特别是针对可能每秒发生几次的特定用户操作。

到目前为止,我们的应用程序设计已经相当解耦(有很多memcache/redis,数据库写入延迟),我们很好地避免了锁,以确保没有任何东西是“集中的”。

管理层最终决定构建一个实时分析面板,该面板应在全局计数器中聚合这些操作(粒度降至1秒)。拥有这些“全局”计数器的最好方法是什么?我们可以增加一些Memcache键,但是我们有一个Memcache簇(EC2),所以迭代所有的Memcache键会延迟这个指标。数据库是不可能的,因为我们在这方面遇到了很多瓶颈,所以所有的数据库写入都会通过消息队列(beanstalkd)来延迟

任何建议都将受到高度赞赏。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-09 12:37:28

这似乎适合动作的NoSQL转储,并定期聚合。在EC2上,您可以访问所需的工具。

您可以通过设置第二个You服务器来记录所有操作,并将其注入到单独的数据库服务器中,从而完全避免现有的You服务器基础设施。或者,如果不合适,则共享not服务器,但仍将负载卸载到单独的NoSQL服务器。

然后,如果“实时”可以延迟一小段时间(几秒或几分钟),您可以使用一个清理器函数将NoSQL表聚合为更适合分析系统的格式,并将其输入到“实时”数据库中,并清除已处理的NoSQL数据。

或者,您也可以直接从NoSQL获取统计数据?

NoSQL可能与使用Memcached一样快(不同的基准测试报告不同的结果,这取决于报告的作者),但当您需要聚合时,它肯定会更快地将数据集中在一起。

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

https://stackoverflow.com/questions/13301648

复制
相关文章

相似问题

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