美文网首页
dbserver重连导致的宕机

dbserver重连导致的宕机

作者: 李相赫的乐芙兰 | 来源:发表于2018-07-24 18:25 被阅读7次

    dbserver在最老的版本里只起到缓冲sql指令的作用,而不会对数据做缓存,后来有大佬想:对于玩家的数据,如果有这样两步操作:

    1.更新A玩家数据

    2.读取A玩家的数据

    在做第二步的时候,如果我们事先在第一步时把A玩家的数据缓存在内存里,那么不需要执行select就可以返回给游戏服务器正确的数据了

    于是加了一组新的接口XXXCache(),这组接口会把玩家数据缓存下来优化读取速率

    但是老版本里有这样一段逻辑:

    dbserver在处理sql请求时,如果发现与mysql服务器断开连接,需要等待重连,并且在重连成功后重新执行一次之前的请求

    由于XXXCache()在执行完请求后会将暂存在内存中的请求对象销毁(暂存的原因是等到sql执行成功后才能将数据覆盖更新),于是如果断开连接时执行的是XXXCache()请求,

    重连回来第二次执行时,请求对象已经被销毁了,会导致访问空指针对象宕机

    相关文章

      网友评论

          本文标题:dbserver重连导致的宕机

          本文链接:https://www.haomeiwen.com/subject/pfpymftx.html