服务器架构设计 -- 玩家数据集中管理

 玩家有选服务器的操作,玩家全世界只有一份游戏资料。
 玩家的id全世界唯一。名字唯一。
 无法支持合服。出现村服,鬼服务是没有好的办法的。
 玩家的数据统一放到一个数据库集群中,dbserver根据玩家id直接散列写入到不同的数据库中。
 后期考虑加入redis集群。加入redis的好处是服务器意外崩溃,玩家的关键数据不会丢失。缓解数据库的查询的压力。写入的速度会变慢。
redis只是单独的缓存。不进行序列化。
 关于单点问题:某一个数据库有一问题时,与之关联的玩家数据会写不上去。服务器注意清理对应的玩家。

    bool User::addMoney(int val)
    {
       int money = GetCach(this,"money");
        money = money + val;
        WriteCache(this,"money",money);
   }
   bool User::save()
   {

        bool ret = WriteCache(this, "all");
       ret = WriteDB(this,)  
   }
    User::update()
   {
        if(now_time - last_time > 300)
       {
          if(modify_)
          {
                save();
          }
       }
   }

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值