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


ububtu server 14.04上,PHP5-FPM服务的启动方式变更

在一位前辈微博上看到,他总是给自己找点事做,让自己忙碌起来,严于律己。我甚有感触,相比之下自惭形秽,一直做不到,这应该就是大神跟我等小菜之间的差距吧。这次遇到的问题是ubuntu 14.04上,/etc/init.d/php5-fpm 不能正常管理php5-fpm?而12.04老的版本可以,是php5-fpm启动脚本的bug,还是操作系统更新带来的bug?

Continue reading


TCP SOCKET中backlog参数的用途是什么?

tcp ack rto在前年时,业务中遇到好多次因为PHP-FPM的backlog参数引发的性能问题,一直想去详细研究一番,还特意在2013年总结里提到这事《为何PHP5.5.6中fpm backlog Changed default listen() backlog to 65535》,然而,我稍于懒惰,一拖再拖,直至今日,才动脑去想,动笔去写。PHP-FPM的配置中,backlog默认值从128改为65535,又从65535改为511,可能很多人都没有在意,我也是因为遇到过类似错误,才决定去认真理理其中知识点的。

Continue reading