两个后端的赛车状况

时间:2016-04-15 20:01:59

标签: node.js mongodb socket.io race-condition aws-ec2

我正在写一个多人实时游戏。我有一个用于注册和玩家统计显示的网站,以及一个实际游戏数据的游戏。以下是我在后端设计和我关注的一些选项():

  1. 对游戏和网站使用相同的后端:不安全。
  2. 为游戏和网站使用不同的后端但相同的数据库,因此用户将在网站上注册并玩游戏:当两个后端都写入Mongodb时,此设计会导致竞争情况(如新用户注册和用户统计信息同时更改)两端的时间?)?
  3. 使用不同的后端和不同的数据库:这两个数据库必须同步,因为游戏玩家来自网站,网站统计数据来自游戏。

1 个答案:

答案 0 :(得分:0)

使用一个包含三个集合的数据库。第一个集合有玩家注册(注册,登录,注销,会话)。第二个系列保持玩家统计数据,第三个系列具有游戏玩法。如果您使用Event Sourcing存储游戏数据,您可以使用MongoDB聚合框架生成您的统计数据,这些数据可以写入第二个集合。

然后,您可以在负载增加时对集合进行分片(您可能需要首先对游戏集合进行分片)。