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

标签 c# .net azure scalability

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

感谢您的帮助/想法!

最佳答案

一年多前,这是 Cloud Cover 剧集中的一个主题:Cloud Cover Episode 43 - Scalable Counters with Windows Azure 。他们讨论了如何创建Apaythy Button (类似于 Facebook 上的“赞”按钮)。

Steve Marx 还在博客文章中详细讨论了这一点,并附有源代码:Architecting Scalable Counters with Windows Azure 。在此解决方案中,他们执行以下操作:

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

关于c# - 如何在Azure中构建高度可扩展的全局计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13578225/

相关文章:

c# - 使用 where 子句时排除字符串的一部分

c# - 如何判断一个Windows应用程序是否在屏幕外?

c# - 使用表达式创建带有嵌套类的谓词

azure - Azure Webapp 上的 Kudu 导致 "Invalid URI: The hostname could not be parsed."异常

python - 如何在 Microsoft Azure 上使用 web.py 提供静态内容?

c# - C# 中的 Concat 错误

c# - Web Config.Connection String 中的相对路径引用

c# - 如何在制作安装文件时将其他支持的安装文件附加到我的应用程序中?

c# - System.Net.Mail代码无法访问smtp服务器

azure - Azure Web App 重新启动后 SignalR 重新连接