多数据库管理
Multiple database management
我目前正在开发一款多人游戏,该游戏将使用两个数据库 (MONGODB)。一个用于身份验证(登录),另一个用于包含所有特定于游戏的数据。
我所做的是将用户和游戏特定数据分开。这样我以后就可以围绕用户构建微服务了。
我有点不确定如何 handle/validate 游戏特定的数据库操作。
当我登录我的游戏时,我向我的休息 api 执行 POST 请求,它验证用户和 returns 一些数据。
然而,游戏本身正在使用 TCP 套接字连接来处理实时游戏,并将特定于游戏的数据保存到权威服务器上的数据库中(所有游戏逻辑都在服务器上完成)。您将如何 link 将特定于游戏的数据库中的数据发送给在身份验证数据库中找到的特定用户?
理论上,最好的选择是不共享数据,只共享唯一标识符(主键)。
实际上,你不应该这样划分数据。部分用户属于游戏,其他部分可能会在不同游戏之间共享。我假设这就是你将两者分开的原因。
查看限界上下文的 DDD 原则以及如何 should/could 通过这种方式创建单独的服务。话虽如此,以正确的方式定义限界上下文是 SOA and/or 微服务中最难做的事情。
我目前正在开发一款多人游戏,该游戏将使用两个数据库 (MONGODB)。一个用于身份验证(登录),另一个用于包含所有特定于游戏的数据。 我所做的是将用户和游戏特定数据分开。这样我以后就可以围绕用户构建微服务了。
我有点不确定如何 handle/validate 游戏特定的数据库操作。 当我登录我的游戏时,我向我的休息 api 执行 POST 请求,它验证用户和 returns 一些数据。
然而,游戏本身正在使用 TCP 套接字连接来处理实时游戏,并将特定于游戏的数据保存到权威服务器上的数据库中(所有游戏逻辑都在服务器上完成)。您将如何 link 将特定于游戏的数据库中的数据发送给在身份验证数据库中找到的特定用户?
理论上,最好的选择是不共享数据,只共享唯一标识符(主键)。
实际上,你不应该这样划分数据。部分用户属于游戏,其他部分可能会在不同游戏之间共享。我假设这就是你将两者分开的原因。
查看限界上下文的 DDD 原则以及如何 should/could 通过这种方式创建单独的服务。话虽如此,以正确的方式定义限界上下文是 SOA and/or 微服务中最难做的事情。