涉及技术:C++,PHP7,Swoole,mysql
主要分为三大块,后面一块一块来说。sql
1. 通信网关数据库
全部游戏Server均会主动注册和全部通信网关创建链接,并监听协议,缓存
每一个Server均有一个独立的ServerID,客户端在选择游戏时,会在每条消息协议中增长此ServerID,告诉通信网关消息往哪发。并发
涉及技术:C++\libevent实现异步消息处理转发,采用自定头+Protobuf协议。composer
细节:须要支持WebSocket及心跳处理。负载均衡
2.Web异步
提供API接口,主要用于玩家登陆、支付、活动、配置等。分布式
涉及技术:Phalcon,PHP7,Redis消息队列,分表分库。微服务
PS:通常业务操做基本都是先操做缓存,再经过消息队列写入Mysql数据库,提升并发能力,[不过现实中有点悲催,没量]
3.微服务模块,主要用于提供游戏Server和Web间共用数据,解除依赖。
基于Redis+mysql+消息队列进行数据高并发处理,利用云服务的负载均衡作分布式扩展。
主要涉及技术:Swoole+PHP7+Socket
注:Web和微服务以前的依赖代码,经过composer来管理实现共用。
简图:
近来无事,后面再根据时间,一块块来写写,也回顾复盘下,看看有什么改进的地方。