如何在Azure中构建高度可扩展的全局计数器?

Mar*_*tin 1 .net c# scalability azure

我正在尝试在Windows Azure中设置一个全局计数器,该计数器将跟踪一天内启动的游戏数量.每次玩家开始游戏时,都会从客户端向服务器发出Web服务调用,并且全局计数器将增加1.这应该与数据库相当简单......但我想知道如何才能有效地做到这一点.数据库方法同时适用于几百个客户端,但如果我有100,000个客户端会发生什么?

感谢您的帮助/想法!

San*_*tia 6

一年多以前,这是Cloud Cover剧集中的一个主题:Cloud Cover Episode 43 - Windows Azure的可扩展计数器.他们讨论了如何创建Apaythy Button(类似于Facebook上的Like按钮).

Steve Marx还在博客文章中详细讨论了这个问题,其中包含源代码:使用Windows Azure构建可扩展计数器.在这个解决方案中,他们正在做以下事情:

  • 在每个实例上,跟踪本地计数器
  • 使用Interlock.Increment修改本地计数器
  • 如果计数器发生了变化,请将新值保存在表存储中(让计时器每隔几秒钟执行一次).对于每个部署/实例,您将在计数器表中拥有1条记录.
  • 要显示总计数,请取计数器表中所有记录的总和.