etcd clientv3的lease keepalive租约频繁续期bug 排查小记

在使用 coreos etcd的 lease 租约特性过程中,遇到一次集群负载极高的现象,表现是leader 节点大量的TIME-WAIT状态TCP 连接,系统内存逐渐上升,CPU 居高不下的问题,本文记录了我排查这个 bug 的经历,最终定位到是 etcd client v3包里的lease keepalive函数的一处 bug,这个 bug 存在与clientv3的所有版本上,如果你也用了相同的版本跟用法,可以关注一下…

Continue reading


golang游戏项目中使用 tls、https 与etcd v3服务通讯

在全球同服的游戏架构中,网络结构一般设计成集群的形式,用户随便在哪个服务器节点上都可以玩,也就要求每个节点的环境都是一致的,节点之间是可以自由下线上线的,用户是可以在每个节点自由注册的…等等,各种需求的出现,会需要一款能主动发现节点上线线,能统计全局所有服务器负载、状态,能实时下发配置等信息到所有节点的这么一款软件,那么就用到ETCD了。这里给大家介绍 ETCD 在游戏服务器集群中的使用场景,以及环境配置。

Continue reading


Clash Royale皇室战争的黑盒技术分析

今年开春,Clash Royale《皇室战争》在国内上架,又是SuperCell公司的大作,想必会非常火。在去年年底我层玩过封测版本,掉线比较严重,但仍没影响到我对它的好奇,我很想知道它的网络同步是如何实现的,战斗那块是帧同步吗?全是客户端计算的吗?这些疑问一直困扰着我,这次在国内上线了,网络状况也好,调试起来会更会舒心,更方便。

Continue reading


osx平台上lol英雄联盟launcher启动器的分析实现

LOL在OSX上有版本,只能玩RIOT运营的服务器大区,国内是腾讯运营的,玩不了。上了游戏瘾的我,为此大费周折,在OSX上实现了自己的LOL launcher启动器来管理LolClient跟League of legends两个进程,从业务关系分析,到协议格式分析,协议command指令含义确认,到功能实现,环境变量,当前目录等一系列功能实现,本以为终于可以在osx上玩LOL国服了,没想到,我还是太年轻,想的太简单了,没搞定。。。

Continue reading