【问题标题】:A good approch to writing a heavily concurrent application编写高并发应用程序的好方法
【发布时间】:2012-06-21 21:54:44
【问题描述】:

我正在设计一个 Web 应用程序(游戏)并计划使用 C#/.Net 来实现。考虑到我想要实现的目标,我对可扩展性和性能感到担忧。这里是应用程序。 有一个由许多王国组成的虚拟世界。这些王国之间发生了争夺霸权的战争。随着游戏的进行,我想实时显示世界的确切人口,即当人们出生时人口增加,而当他们死于战争(或其他)时,人口减少。因此,我的问题归结为一个可能由成千上万的游戏玩家更新并显示在网页上的数字。你如何实时管理这个。将数字存储在数据库中可能不起作用,因为它需要同时更新很多次。还可以使用哪些其他技术?这是 No-SQL 数据库、memcached、Hadoop 的候选者吗?有什么建议吗?
非常感谢。

【问题讨论】:

  • 你为什么不模拟预期的负载,看看你的数据库是否能处理它?

标签: .net concurrency nosql social-gaming


【解决方案1】:

将更新“推送”到客户端可能不是一个好主意,因为这会在流量变高时阻塞网络。相反,您应该每隔一秒左右查询一次人口,因此这会将任何瓶颈转移到服务器的 CPU 上,这通常比网络连接要快。

您可能需要某种数据库来存储人口数据,因为您需要在查询之间跟踪人口。

这种方法还可以防止客户端的数据被破坏,因为每次都替换数据而不是递增/递减。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-21
    • 2014-06-21
    • 2011-01-12
    • 2010-09-20
    • 2019-11-16
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多