visitrank网站计数器
适合站点使用的计数器,统计分析。
作者在oschina写了一篇博客:http://my.oschina.net/jianglibo/blog/215890
注意,只有out=wholesite的请求会将referer保存到数据库中,所以必须确保每个页面都存在这个请求。其它类型的out不会再次将referer保存到数据库中去。也就是说,同一张页面中,只要保证out=wholesite出现一次,其它类型可以多次出现。
性能
在目前的架构下,在仅仅实现目前功能的情况下,以下是用 apache jmeter 测试的结果。
由于运行 jmeter 机器的限制,只能采用 10000 并发,throughout:10000,即每秒钟完成 10000 个请求,运行2天产生16亿条记录。(36002410000*2)
作者用其它机器短时测试,并发 10000,throughout 基本也是10000。对于这个系统来说并发不是瓶颈,主要在于 mongodb的插入,如果请求的速度一直大于 mongodb 的插入,那么数据库的实时性会越来越远。在实际使用中,考虑到后半夜流量变小,mongodb 的插入速度会大于前端输入, 可能会达成平衡。(但不管怎么狡辩,这个瓶颈理论上是存在的。)
如何在自己的站点运行?
安装java 和 vertx之后,在命令行输入:vertx runmod com.m3958visitrank0.0.3 -conf -conf.json
conf.json可复制源文件内的内容,更多配置参数可查看源文件中的AppConstants.java
注意:机器必须联网,因为visitrank是从中央maven库中自动下载的。
用来统计站点的文章访问数,同时记录详细的客户端信息,包括ip,ua。引入的数据可以在后台通过mongodb的MapReduce或者hadoop分析处理。