用一首歌的时间落地10万个用户数据
为啥是一首歌,因为新的需求是极端情况可以忍受玩家回档5分钟。哪些极端情况呢?redis完全不能用了,只能走mysql来落地。来保护玩家数据。
不过有个明显的问题是:mysql到底能不能抗此大责任?
调查redis的protocal error
去年年底封测的第一个晚上,晚高峰时候,本来一切平和。但是在毫无征兆的情况下,突然线上redis断了。检查了机房连接没有问题,并且线上10多个实例,只有一台机器的redis断掉了。十分诡异!排查了一个小时没有任何结果,此次问题造成了大概800人回档。对于当时近万人的同时在线,还算损失比较小。
Random函数罢工了
今天下午,突然线上出现大量高级掉落重复出现。
正常的概率是1%,结果部分玩家出现了很多。导致了群里炸了锅。于是开始分析掉落部分代码:
redis 大key处理
最近压测登陆接口,发现处理超过1k的byte对象(我们初始化就有3k,跑起来后可以达到40k)时候,整体的tqs下降得十分厉害。从一般几千得并发掉落倒了不到一千,还有不少得错误。
filebeat踩坑inode
最近我们游戏调整了服务器架构,所以涉及到一些文件系统的改动。类似于文件重命名之类。按照之前的理解这种操作在停服时候做,通过脚本应该是比较安全快捷的。不过正式由于这个操作,让我花了一个通宵才查明一个filebeat的问题。
docker 日志处理
docker 启动后有一个需求便是如何处理以及收集它产生的日志。
这里的日志可以分为3类: docker的引擎日志, docker 容器日志, docker 应用日志
如何跳过heroselection
背景
最近研究dota2rpg时候发现一个问题:游戏流程如果使用官方的做法会比较死板。比如你必须选完队伍,然后再去选择英雄,然后再开始游戏。当然这个不是说它不好,但对于一款高度定制化的地图编辑器来说,这着实会束缚开发者的能力。很多优秀的rpg地图都可以定制整个游戏前的流程。
基于docker搭建centos模板环境
背景
我们已经基于标准shell建立了一整套服务器环境搭建体系,在平常运维中,其实只要记住那一步执行哪个shell脚本就好了。但是执行了一段时间后,还是觉得不够灵活。想象如下场景:有一天你刚回收完一套环境,这个时候来了个需求需要尽快搭建一套独立环境之类。这个时候需要重新执行一次所有的脚本,时间比较慢,并且数据可靠性也无法保证。这个时候我想到了docker,虽然我们有在测试环境部分使用它的功能,但并没有真正拿他做到开箱即用