QQ用户在线统计系统是如何实现的
QQ一亿多的在线用户,统计服务器不可能只有一台
那么,QQ是如果实际多台统计服务器间的统计数据汇总呢?
比如当前有多少用户在线,每天有多少用户登陆过等数据
------最佳解决方案--------------------做过TX的笔试题 里面是个哈希一致性问题 每个用户登录的时候都会通过QQ号哈希到一台server的ip上,你的所有用户信息都缓存在这个server上面,统计在线用户我想也是从这些server上面统计的
------其他解决方案--------------------腾讯是登录时是首先启用的一个tcp连接至各分区服务器。
这样可以精确的知道有多少客户端连接。
打完洞后再采用udp连接。
各个分服务器再把数据上传至总服务器就好了。各个服务器只要从主服务缓存一些数据就好了。
算了一下。10服务器作为登录用应该就可以了。
------其他解决方案--------------------
那只是一个大概的数据,不一定是实时的,也不一定是准确的。
所以应该很好做。3分钟轮询统计一次都没什么问题。
------其他解决方案--------------------和人口普查的原理一样。十几亿人,很多地方还没有电脑,怎么统计?不是一样统计嘛?
------其他解决方案--------------------上线 -> 某个数据字段的某个值+1
下线 -> -1
不保证正确。
------其他解决方案--------------------QQ一亿多的在线用户?哪那么多
------其他解决方案--------------------3万万客户端登录。10台服务器完全可以应付了。
------其他解决方案--------------------嗯,有大概的思路了,谢谢大家