首页 新闻 搜索 专区 学院

弹窗PV统计~~

0
悬赏园豆:100 [已关闭问题]

目前我们公司在联合运营游戏。。在推广游戏,做弹窗广告。。。因为我们这边也要记录弹窗数量。因为每秒并发太多。。插入数据库服务器总是报错。。。~~有没有什么好的解决方案。。。我们3台服务器。。每台服务器放3个广告联盟。。。  插入数据的时候 是直接插入好~还是缓存一段时间 在一起插入~~ 希望高手解决下~~~面对每秒并发数据很多~技术上怎么处理好。。~~??? 

于国民的主页 于国民 | 初学一级 | 园豆:80
提问于:2010-07-13 16:15
< >
分享
其他回答(4)
0

当然是缓存到服务器内存里,每隔XX秒插一次了

LanceZhang | 园豆:857 (小虾三级) | 2010-07-13 16:27
在服务器上开一个线程,专门负责定时往数据库里插就行了,再提供一个js接口来统计pv次数
支持(0) 反对(0) LanceZhang | 园豆:857 (小虾三级) | 2010-07-13 16:28
@LanceZhang: 能说具体点吗~~事关重大啊~~
支持(0) 反对(0) 于国民 | 园豆:80 (初学一级) | 2010-07-13 16:30
可以这样理解:服务端有个静态类C,里面有个 List<浏览记录> L,如果小窗口被浏览了,就把这条浏览记录添加到L里,这个C类里面有个线程t,线程t每隔100秒将L中的记录插到数据库中,并清空当前的L。
支持(0) 反对(0) LanceZhang | 园豆:857 (小虾三级) | 2010-07-13 16:36
如果你每次浏览都直接往数据库里插数据,我的天,会挂掉的
支持(0) 反对(0) LanceZhang | 园豆:857 (小虾三级) | 2010-07-13 16:37
能不能写个例子给我啊。。你QQ多少啊 我加你QQ和你交流好吗~~
支持(0) 反对(0) 于国民 | 园豆:80 (初学一级) | 2010-07-13 16:43
不好意思,时间有限,平时也不上QQ,匆匆写了个例子程序,请到这个链接下载:http://files.cnblogs.com/blodfox777/WebSite1.rar
支持(0) 反对(0) LanceZhang | 园豆:857 (小虾三级) | 2010-07-13 17:26
理论上来说,这样用内存中的对象做缓冲队列的话,支持的最大并发数==web服务器的最大并发数,也就是最大值了。
支持(0) 反对(0) LanceZhang | 园豆:857 (小虾三级) | 2010-07-13 17:27
@LanceZhang: 同意
支持(0) 反对(0) eract | 园豆:200 (初学一级) | 2010-07-13 18:07
谢谢你了~~热心人。。。。~~
支持(0) 反对(0) 于国民 | 园豆:80 (初学一级) | 2010-07-13 18:14
0

不会吧...

要是我,可以先拿第三方统计试试,由其得拿google Analytics试试。

Astar | 园豆:40805 (高人七级) | 2010-07-13 16:28
第三方统计会严重影响加载广告页面的速度啊。。。这个方案行不通啊~~
支持(0) 反对(0) 于国民 | 园豆:80 (初学一级) | 2010-07-13 16:31
他们这算是商业数据了,一般不让用google Analytics吧
支持(0) 反对(0) LanceZhang | 园豆:857 (小虾三级) | 2010-07-13 16:31
是呀~~~肯定不能用~~~我们一秒钟广告弹窗页面同时有几百人访问~~~加别人的代码~性能也不好啊~
支持(0) 反对(0) 于国民 | 园豆:80 (初学一级) | 2010-07-13 16:44
@于国民:每次访问写到一个文本文件中,名称用GUID。文本文件放置单次访问时的信息,服务器开发一个小软件,定时访问所有文本文件并入库,并做定时删除。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-07-13 17:28
@Astar:用文本文件性能上的去吗?为什么不直接放在内存里呢?
支持(0) 反对(0) LanceZhang | 园豆:857 (小虾三级) | 2010-07-13 17:46
@Astar: 创建一个文件,比往数据库中插入一条数据还要慢~
支持(0) 反对(0) eract | 园豆:200 (初学一级) | 2010-07-13 18:00
0

可以写入文本...每天晚上处理文本一起写入数据库...

冬眠 | 园豆:285 (菜鸟二级) | 2010-07-13 17:17
写入文本也是并发啊~会抛出异常 说这个文件访问正在访问。。~~
支持(0) 反对(0) 于国民 | 园豆:80 (初学一级) | 2010-07-13 17:19
@于国民:别实时写...先缓存...到一定数量再写入文本...把文本内容写入数据库可以用sqlldr
支持(0) 反对(0) 冬眠 | 园豆:285 (菜鸟二级) | 2010-07-13 17:25
嗯,其实也不必要文本,直接批量写入数据库里就可以了,只要写入频率在10秒或以上,再怎么烂的服务器也扛得住啊
支持(0) 反对(0) LanceZhang | 园豆:857 (小虾三级) | 2010-07-13 17:30
0

你是哪个联盟的?哪个公司的?37Wan?你告诉我我就告诉你。

soleds | 园豆:55 (初学一级) | 2010-07-13 17:41
..这个很重要吗~~技术交流而已。。
支持(0) 反对(0) 于国民 | 园豆:80 (初学一级) | 2010-07-13 17:43
回得好快。你要说明你的数据量,而且你这样使用服务器,一台服务器3个联盟,3台服务器岂不是9个联盟了? 如果你流量大点,服务器顶得住吗?真是奇怪。。。。。。。就算你不考虑数据库,只考虑IIS,都是问题。 至于实时插入还是怎么做,各有利弊,要看你目前的数据量,索引,CPU情况。 麻烦说明白点。
支持(0) 反对(0) soleds | 园豆:55 (初学一级) | 2010-07-13 17:52
@炸药3: IIS并发1000不成问题吧?再大的话就要考虑NBL之类的方案,这么小一个问题,暂时还不用考虑cpu、索引之类的吧。
支持(0) 反对(0) LanceZhang | 园豆:857 (小虾三级) | 2010-07-13 17:58
IIS并发是一个问题,还有呢?数据库会影响IIS的处理。而且他们一定是大表。
支持(0) 反对(0) soleds | 园豆:55 (初学一级) | 2010-07-13 18:01
弹窗PV还好,因为大多数时候能弹出来,你记录的PV不会白费,如果是CPC呢?大量的PV要记录。。。而只有少量产生点击和计费,但又不得不做。
支持(0) 反对(0) soleds | 园豆:55 (初学一级) | 2010-07-13 18:03
数据量 一秒一个联盟估计最大100个用户并发~~~3个联盟就是300/秒了~~~~
支持(0) 反对(0) 于国民 | 园豆:80 (初学一级) | 2010-07-13 18:16
是呀。。少量产生点击和计费,但又不得不做 这个说的很有理。。不得不做啊。。。~~
支持(0) 反对(0) 于国民 | 园豆:80 (初学一级) | 2010-07-13 18:17
直接写数据库里就行了。重复的直接过滤掉,弹窗不需要详细的PV,反作弊要看其他数据,一个IP对应一个广告,在同一天有重复的就过滤掉,不写库。没重复就插入。如果你这个300是在高峰上网时间发生的话,这个量级很小。直接写数据库。 用上面的写文本文件的方式,太麻烦了。 默认插入一条记录的时候,弹出状态为否,成功弹出后,修改状态为是。结算的时候看这列。 一天的话,按照你这样的量级的话,应该不会超过2000万条记录/单表/天
支持(0) 反对(0) soleds | 园豆:55 (初学一级) | 2010-07-13 18:20
如果你非要保存详细的PV,你加一列,PV列,用来统计一个IP对应一个广告,产生了多少次PV,但我觉得意义不是很明显。可能你想通过这个来辅助查作BI,但我相信你能做到这个量级,应该有相当的反作BI经验。这个量虽然不大,但也不是一个月就能做上来的。 所以我不建议你对弹窗广告每次PV就插一条记录。会累死你的。。。。
支持(0) 反对(0) soleds | 园豆:55 (初学一级) | 2010-07-13 18:22
没办法啊 公司需求~ 非要插入啊~~IP重复的都要插入~~~~~~就是插入并发太多了~~承受不住啊~
支持(0) 反对(0) 于国民 | 园豆:80 (初学一级) | 2010-07-13 18:41
是IIS顶不住,还是数据库服务器顶不住?你看看WEB的CPU和数据库服务器的CPU,看看。 如果不行的话,把数据库服务器拆成三台,每台对应一个联盟。
支持(0) 反对(0) soleds | 园豆:55 (初学一级) | 2010-07-13 18:49
公司总不能给你一个鸡蛋要求你在一个月内变成一窝鸡吧。
支持(0) 反对(0) soleds | 园豆:55 (初学一级) | 2010-07-13 18:50
Web可以负载均衡,数据库服务器可以分开,如果一台顶不住,考虑参数类似中国电信的做法。也可以用远程分区视图,这个麻烦点,主要是后期要横向增加服务器有点麻烦。
支持(0) 反对(0) soleds | 园豆:55 (初学一级) | 2010-07-13 18:51
我感觉你们是不是把弹出的记录到另一个表了?和PV表不在一个表?
支持(0) 反对(0) soleds | 园豆:55 (初学一级) | 2010-07-13 18:52
是呀~!~PV一个表。。。点击注册一个表。。注册成功一个表。。。3个表啊。。。
支持(0) 反对(0) 于国民 | 园豆:80 (初学一级) | 2010-07-13 19:05
弹窗哪有注册的说法哦。。。你们和站长结算,是按CPM吧。不是按CPA吧?所以你还要统计弹出数。 注册的数据量很有限。。。不可怕。 你就考虑把数据库服务器拆成两三个吧,看看你之所以承受不起并发是WEB的原因还是数据库的原因。所以你要看CPU。确定了,咱们再说。。
支持(0) 反对(0) soleds | 园豆:55 (初学一级) | 2010-07-13 19:08
我晕,上面不是给了代码吗?那段代码我们现在在用,30W pv每天根本就是小case,考虑什么数据库啊?!暂时在内存队列里面做缓冲的,10秒钟才访问一次数据库,有什么压力?!不要把人扯远了
支持(0) 反对(0) LanceZhang | 园豆:857 (小虾三级) | 2010-07-14 08:58
你放到内存队列,我不知道实时性方面的查询怎么处理。 而且你的是30W,他的是30万吗?
支持(0) 反对(0) soleds | 园豆:55 (初学一级) | 2010-07-14 12:19
0

学习了·!

肆季风 | 园豆:250 (菜鸟二级) | 2010-07-13 18:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册