需求背景:开发一套游戏打点分析系统,游戏打点就是:游戏服务器/游戏客户端通过打点接口上报玩家游戏数据,这个过程会非常高的并发以及非常大的数据量,因暂时没考虑使用大数据Bi之类,所以目前暂定架构选择如图(省略开发细节中Redis的使用):
![image.png](https://static.golangjob.cn/221123/63e5117766ce33075b61a98d855a53d6.png)
**后台分析系统**:使用PHP、Nginx、Mysql实现,因为后台分析系统计算量比较小(最多就是一些求和、求比例操作)且数据都已计算好,支持把Mysql中的数据查出来就好了,所以使用PHP实现,压力应该不会太大
**打点接口**:使用Golang、Kafka、Mysql实现,这部分主要是游戏打点会有很大的并发和数据计算量,所以考虑的使用Go,因为数据量很大,同时并发计算都很大,所以引入了Kafka,也就是异步计算
**具体的流程:**
1.Client客户端打点通过GoLang开发的接口将打点数据上报至打点平台,存入KafKa
2.Go同时消费Kafka内数据,将消费结果写入Dot Mysql的同时,将对应结果写入后台分析系统的Mysql主库中
3.后台分析系统Mysql 通过主从同步将数据从Mysql 主库中同步到从库中
4.使用PHP查询从库,展示数据
我是后端小白,求各位高人指点,哪里需要改进或者有什么坑,或者有更好的方式
有疑问加站长微信联系(非本文作者)