首页 > 代码库 > 总结最近游戏中活动出现被刷问题。
总结最近游戏中活动出现被刷问题。
问题:
活动描述:有一个签到活动,就是用户每天只能签到一次, 签到后并发放奖励,就是因为会发放奖励
所以导致活动,有好多人开挂来刷这个活动,导致有些人,一天领取多个奖励的现象,
php代码逻辑:部门一个同事php代码逻辑是这样的,签到用redis来记录是否签到,签到成功就发奖励
逻辑顺序是:先判断是否满足签到条件,然后发奖再签到。
解决:
redis排查:直接用php代码模拟测试出问题所在,发现很怪异,redis对象能new成功,但是一执行connect
方法时就出现对象不存在的现象,而且不抛出异常,php代码不抛出错误,问题是redis负载的问题,导致连
接数被占满所致,解决方法就是,增加redis机器,并增加监控,重启原有的redis,redis出问题,估计是被刷
所致。
php代码逻辑排查:发现逻辑顺序有问题,应当是先要签到然后在发奖,这样才能防止住并发,这里可以用两个
概念来解释一下,被刷的代码采用的是乐观锁说机制,我们redis就相当于锁了,不是在代码一执行就开始锁住
而是把代码看的太乐观了,后来改成了悲观锁机制,问题就得到了解决,一开始就锁住,然后就去执行下面发奖
流程,这样的就不会多发了。
总结最近游戏中活动出现被刷问题。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。