求高访问量广告曝光次数和点击次数的统计实现方法。
实现是提供一段广告代码,连接到我们自己的统计页面上,每次打开带有广告的页面,就执行了我们的统计页面,统计曝光次数。点击广告连接,也连接到我们的统计页面上,统计点击次数。
由于广告将在各大网站发布,每个网站的访问量也很大,这样同一时间访问我们统计页面的次数就更大。如果每次连接都连接一次数据库,进行一次入库操作的话,必将导致服务器瘫痪。另一种办法就是计数保存在application变量或cache中,然后一定时间内入库一次。但是需要一个定时器(timer)长期运行,是否服务器也不堪重负。
请大家帮忙分析分析,求一个高效率的解决方案。
问题点数:100、回复次数:12Top
1 楼anantnt203120(阿南)回复于 2005-12-07 13:29:46 得分 0
顶一下啊!Top
2 楼anantnt203120(阿南)回复于 2005-12-07 13:51:48 得分 0
可是
1. 一旦统计服务器挡了,统计的数据还没来得及保存就丢失了。
2. 为了一定时间内保存到数据库一次,就需要有一个TIMER无限循环,一天两天,一年两年 ....服务器是否也承受不了。Top
3 楼yishan116(哈哈)回复于 2005-12-07 14:03:06 得分 10
那可以不可以不要一定时间插入一下,你可以判断application 达到了多少 比如达到了50 你就插入一下,
这样可以避免在 application 在0或 很小数的时候也执行一下sql插入操作,!!!!!!!!!!!!Top
4 楼gyf19(秋天的云)回复于 2005-12-07 14:31:06 得分 20
1.利用单件模式做Cache吧!!添加一个Cache,设置上移除的时间并设置从缓存中移除对象时所调用的委托。
把计数保存在一个设置时间的cache,
一个服务器连一个小小定时器(timer)都不能运行,你可以把服务器扔了Top
5 楼owenbeckham()回复于 2005-12-07 14:36:32 得分 1
同意<秋天的云>Top
6 楼anantnt203120(阿南)回复于 2005-12-07 14:38:45 得分 0
楼上的意见很好,谢谢!
但仍然需要一个TIMER在无限循环调用自己,定时去判断application达到了多少,服务器是否能承受长期运行这个循环,一旦程序停止了,统计就不做了。
另外无法考虑window service,因为需要用户点击连接,所以只能是一个B/S的页面。
不知道有更好的意见没有?Top
7 楼xczgb(TJJTDS)回复于 2005-12-07 14:46:00 得分 67
用cache吧Top
8 楼alanzhou(为什么)回复于 2005-12-07 16:23:40 得分 1
markTop
9 楼ye_zi(行到水穷处·坐看云起时)回复于 2005-12-07 17:50:51 得分 1
秋天的云说的不错,呵呵Top
10 楼anantnt203120(阿南)回复于 2005-12-08 09:20:56 得分 0
秋天的云,能不能把用Cache说详细些。Top
11 楼anantnt203120(阿南)回复于 2005-12-08 10:40:47 得分 0
能详细解释下用Cache实现的原理吗?和Application有什么区别,当服务器荡掉后,统计的数据时候还保存,怎么恢复?Top
12 楼anantnt203120(阿南)回复于 2005-12-08 11:39:24 得分 0
关于入库方式不用TIMEER有更好的意见吗?asp.net有什么机制可以实现定期执行?
Top




