游戏统计整体架构(不定期更新)

游戏公司统计留存,ltv等数据需要以下几个系统


logserver 日志接收系统(接收游戏服务端推送过来的数据)


collection 采集系统(统计汇总游戏端的log数据)


platform 平台系统(将汇总好的数据展示使用,其中包括数据查询----实时,数据统计查询---T+1,数据监控---如踢人,发消息等功能)


1. Logserver

该系统主要功能将游戏服务端推送过来的日志保存在一台数据库服务器中(日志主),该数据服务器中有许多数据库一个游戏区对应一个数据库,依照不同的游戏区号分别插入对应的数据库中,如下图


图中log_db_**表示不同区的游戏id,与此同时,配置一个从数据服务器,里面的数据库与主数据库相对应



主从之间采用 mysql 数据库的master/slave模式配置,通过log同步ddl和dml操作


游戏服务器通过mina搭建的NIO传输数据,规定每个日志的消息号,通过对象传输数据


2.Collection


采集系统通过定时任务汇总不同游戏区的统计数据,将不同的游戏区存入表中,通过区id,游戏id,数据库类型(采集库或日志库)作为主键,采集程序启动后,通过获得不同区的数据源加载ibatis的DAO


package ibatis;

import java.io.IOException;
import java.io.Reader;
import java.util.Properties;

import org.apache.log4j.Logger;
import com.ibatis.common.resources.Resources;
import com.ibatis.dao.client.DaoManagerBuilder;

public class DaoManager {
	
	public static final Logger logger = Logger.getLogger(DaoManager.class);
	
	public DaoManager(Properties props,String res){
		try {
			//res为sqlmap的位置 如 com/***/dao.dao.xml,props为数据库查询出来的数据,添加方法转化为配置文件格式 如 
			//url=jdbc:mysql://192.168.100.114:4307/log?useUnicode=true&characterEncoding=utf8
			Reader reader = Resources.getResourceAsReader(res);
			
			DaoManagerBuilder.buildDaoManager(reader, props);
		} catch (Exception e) {
			logger.error("error",e);
		} 
	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值