架设游戏服务器出现函数错误
来源:蜘蛛抓取(WebSpider)
时间:2019-04-17 00:39
标签:
该经验图片、文字中可能存在外站链接或电话号码等请注意识别,谨防上当受骗!
经验内容仅供参考如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士
作者声明:本篇经验系本人依照真实经历原创,未经许可谢绝转载。
关于游戏服务器dbserver存储的问题 [问题點数:40分结帖人y]
本功能为VIP专享开通VIP获取答案速率将提升10倍哦!
-
最近被要求搭建游戏服务器dbServer,但是有一个问题想不通想请教一下
dbserver采用多线程那么从其他服务器过来两条消息(这两条消息是有先后依赖顺序的,比如消息一:是人物升到了5级消息二:是人物升到了6级,虽然例子不是很恰当但是的确会有这种互斥的情况发生
),消息来到dbserver的时候因为有tcp的原因消息是有保障的假设服务器上有2个工作线程,消息一分给了工作线程一消息二分给了工作线程2,那么这2个线程对数据库从操作是怎么保证消息的执行顺序呢完铨有可能线程2 先执行,之后才执行线程1那么角色的等级就是错误数据,请问这种情况应该怎么避免啊感觉上dbServer 不会只启动一个线程去对數据库操作吧?
-
2个线程,分别 向DB写入数据 数据库只会保证同一条数据在写时,保证它的事务特性
确保更新同一条记录,分配到同一個线程内 根据 UserID 或者 其它逻辑,确定分配到哪一个线程执行
尽量不要 A和B线程更新 同一个表的同一条记录, 应该是根据玩家ID分配玩家所屬线程。
-
线程池模式这个你由控制线程去处理,一旦接收到消息由控制线程来选择并唤醒一个处理线程来处理这个消息,处理完进入睡眠
-
解析存储业务的逻辑可以分线程写入数据库的话,分线程也是跟一个线程效果一样
如果写入数据库非要分线程可以参考2L的方法
-
你哽新数据的时候,玩家的userid肯定是会告诉你的一般这个userid都是主键
-
可以考虑用1个线程对应某1个或几个表,这样既可以解决你有序的要求也會避免不同线程操作同一个表时候出现争抢等待的问题。
或者就如上面所说根据KEY来分配线程
匿名用户不能发表回复!
不知道这是什么意思而且应该怎么解决,用的是PHPSTUDY但是应该不是这个的事,我清空了数据库重新开始还是偶尔出现这个问题也不知道应该怎么找,这个是别人发的压縮包我直接用的... 不知道这是什么意思而且应该怎么解决,用的是PHP
STUDY但是应该不是这个的事,我清空了数据库重新开始还是偶尔出现这个問题也不知道应该怎么找,这个是别人发的压缩包我直接用的