gpt4 book ai didi

c++ - 多个应用程序之间的数据库状态

转载 作者:太空宇宙 更新时间:2023-11-04 13:21:33 25 4
gpt4 key购买 nike

我有一个使用 SQL 数据库存储/检索玩家数据的游戏服务器。游戏服务器有一个待处理的数据库请求/查询队列,以避免阻塞网络线程轮询。如果有太多玩家在玩,数据库就会承受压力并开始减慢查询速度。

如果我有多个服务器在运行,我担心一个玩家可能会断开连接,并且在其信息被保存到数据库之前,同一个玩家连接到另一个游戏服务器(多个房间)并加载旧信息(使他失去游戏进度)。

我想知道是否有任何方法可以管理多个应用程序实例(游戏服务器)之间的这种类型的同步。

我考虑过事务,但如果队列没有足够快地出队(查询在服务器内存上挂起 - 而不是在数据库服务器上挂起),这仍然会导致问题。

创建一个所有游戏服务器都连接并请求数据库操作(从而避免多个队列)的“数据库服务器”不是一个选项

假设数据库已完美优化,解决方案必须在应用程序本身上制定。

我有哪些选择?

最佳答案

当玩家连接时,在数据库中创建一个“打开”记录。当他断开连接时,创建一个“关闭”记录。

当玩家重新连接时,在所有现有“打开”记录都具有匹配的“关闭”记录之前,不允许创建新的“打开”记录。

关于c++ - 多个应用程序之间的数据库状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35087274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com