回来学校15天了.毕业周,应酬比较多,但是还是做了一点东西.
记录下来,一个完整的流程.
游戏网关的设计:
其实阅读过一些游戏源代码,基本方案都是如下:
client 通过 socket到一个网关点--->获取节点ip信息--->client 与节点sokcet通讯.
这个方案不是很好,socket网关是单点的.我要的是网关集群,这样的服务更加可靠.
dika的网关设计如下:
游戏后端节点都暴露http接口,用nginx 做负载均衡,和http集群.
client 通过http请求--->通过json把节点信息全部返回.(这里返回节点信息时候,可以加入一些简单的算法,例如把负载低的节点顺序放前)
dika使用了什么第三方开源库
socket链接池:cowboy (可以自己些,参考着rabitmmq,cowboy的实现,因为感觉自己做出来的也是这个模样,所以省事,使用cowboy,然后自己写个协议扩展)
http实现: cowboy (很多选择的,mochiweb都可以,我只是因为上面用了cowboy了.所以顺便吧.http 压力不大)
日志模块 : lagger (我要求就几个, 简单可以用, 可以运行时调等级, 可以日志汇总.)
数据库:mysql
缓存数据库:mnesia
数据库驱动 :emysql (这个比较新,有个事务的补丁.)
先记这么多,
~~by dp
- 1楼lqg11223天前 13:23
- 下一个游戏我们都自己写。。。。威武