globalserver 报错 RMIInitArmyBackObject InitError 根据报错信息一路追查下来,发现某个帮派的数据解析 json 的时候报错.监视变量,找出这段字符串,大致结构如下: { "army_name":"\u98ce\u4e91\u805a\u53d8", "army_level":1, "notice":"\u6b22\u8fce\u5404\u4f4d\u52a0\u5165\…
表结构: CREATE TABLE IF NOT EXISTS `user` ( `) NOT NULL COMMENT '主键', `user_level` ) COMMENT '等级', `) COMMENT '名称', `server_id` ) COMMIT '服务器编号', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 示例sql: UPDATE user a, ( ) b WHERE a.user_name…
玩家数据全部保存在redis,对合服来绝对是个坑.因为一直都是做开发,合库这事还是第一次操作. 首先,合服要做哪些事情,当然不同的游戏肯定不一样.合服的目的是为了增加同个服务器上活跃玩家的数量.合服有另外一种叫法数据互通,按这种理解就是要合并的那几个服务器,玩家可以进行交互,主要指排行榜数据和一下全服玩法.数据互通很明显前端的入口是不变的.有一个问题就是要合并的服务器,同个玩家不同角色的数据是否要删除.这次合并是按照不删除的做法进行的.这个根据不同的游戏采取不同的策略. 其次,数据合并.这次比较…
作者 风河 发布于 2016年1月13日 | 讨论   编者按:YY游戏的页游早在2013年就在云平台上运行,其Cloud 1.0已经支撑几十万的同时在线用户.日前,YY游戏云平台进行了Cloud 2.0的改造,其主要目标是支撑端游,同时也将继续服务页游.手游的运营. 这次架构升级是一次完全重构——抛弃OpenStack,网络.计算.存储业务都是自己实现.作为YY游戏云平台的负责人,风河在本文里主要描述了YY游戏需要建设一个什么样的云平台,以及如何建设这个云平台的. YY游戏的业务需求变迁 YY…
不知不觉我们的项目开发有2年了,这两年来走了很多弯路,也收获了很多,今天在这里做一个总结. 项目基本情况: 服务器端采用c++和c#混合开发,网络层采用c++开发,业务逻辑用c#开发.客户端采用silverlight.数据库采用mysql.GM工具用Asp.net,GM工具盒服务器通讯用wcf,基本把微软的东西都用遍了. 服务器端在开始的时候,使用了某位同事之前开发的一款服务器端引擎,改引擎曾经开源但现在基本不再更新.引擎地址:http://mmorpg.codeplex.com/ 这款引擎在使…
在服务器系统开发时,为了适应数据大并发的请求,我们往往需要对数据进行异步存储,特别是在做分布式系统时,这个时候就不能等待插入数据库返回了取自动id了,而是需要在插入数据库之前生成一个全局的唯一id,使用全局的唯一id,在游戏服务器中,全局唯一的id可以用于将来合服方便,不会出现键冲突.也可以将来在业务增长的情况下,实现分库分表,比如某一个用户的物品要放在同一个分片内,而这个分片段可能是根据用户id的范围值来确定的,比如用户id大于1000小于100000的用户在一个分片内.目前常用的有以下几种:…
(深度好文)重构CMDB,避免运维之耻 CMDB,几乎是每个运维人都绕不过去的字眼,但又是很多运维人的痛,因为CMDB很少有成功的,因此我也把它称之为运维人的耻辱. 那么到底错在哪儿了?该如何去重构它? 今天我想从我的角度来和大家探讨一下业务失败的原因,基于失败再去看重构的逻辑,也许会成功. 从失败中寻找成功的逻辑,往往是最有效的,那我们就来逐一看看: 1.组织的设计问题 我必须把核心原因归结成这一条,很多公司把CMDB的建设责任放到基础设施建设部门,由他们主导承建.最后他们梳理出来的核心逻辑是…
一,某游戏公司例行上线与更新流程示例 例行维护/更新流程 1.1 更新前天 提前确认好要更新的是什么,更新会有人通知你,一般是运营人员 比如:我们明天做什么什么更新 1.2 第2天更新 一般固定点更新,会先收到更新邮件 运营人员会发公告给玩家,说我们什么什么游戏,几点进行维护 比如:10点更新: (1)关闭游戏端口,禁止外部访问,对自己公司开放(更新完要测试) 通过防火墙脚本实现(参考公司已有并在线上正常使用的脚本) (2)停止游戏程序 如果做了监控,停服前可以关闭监控,如果你知道是自己在停服,…
CMDB,几乎是每个运维人都绕不过去的字眼,但又是很多运维人的痛,因为CMDB很少有成功的,因此我也把它称之为运维人的耻辱. 那么到底错在哪儿了?该如何去重构它? 今天我想从我的角度来和大家探讨一下业务失败的原因,基于失败再去看重构的逻辑,也许会成功. 从失败中寻找成功的逻辑,往往是最有效的,那我们就来逐一看看: 1.组织的设计问题 我必须把核心原因归结成这一条,很多公司把CMDB的建设责任放到基础设施建设部门,由他们主导承建.最后他们梳理出来的核心逻辑是面向基础设施资源的管理,你在他们的CMD…
前段时间写游戏合服工具时出现过一个问题,源DB和目标DB角色表中主键全部都不相同,从源DB取出玩家数据再使用 replace into 写入目标DB中,结果总有几条数据插入时会导致目标DB中原有的角色数据丢失了.仔细排查之后发现时replace into使用错误造成的.在这里总结下replace into的使用方式,可以帮助有幸看到这篇文章的朋友避开replace into 使用的坑.   replace into 执行流程 1. 尝试向表中插入新行 2. 插入失败,因为表中存在相同的主键或唯一…