如何在Web数据挖掘中保证用户访问速度的一点实践(SQLite+Quartz)
这个问题一直纠结我很久,以前也想过很多很多想法如下:
1)记录在WebDb中;
2)采用异步线程记录;
3)采用js像cnzz,google那样;
4) 等等记得的就这些了
但是都被我扼杀在脑海中了,第一种方式,本来webdb就已经负载不小了,每次请求都记录太不实际,而且采集的数据结构也会时常变化,通常根据当前的研究方向等来确定。第二种方式,比较好,但是怎么让线程在当前环境下存活也是个问题。第三种方式,很多js ajax无法记录。
这个时候SQLite我觉得是个不错的选择,跑在web端,不会对数据库服务器造成压力,而且在负载均衡中我只要有一台开启采集就可以了。
要更改数据结构也很方便,改好了把原来的拿下来就可以了,备份等也很方便,文件化的好处显而易见。
效率上面对高负载写入还是很吃力的,但是Quartz解决这个问题了,在它的帮助下就跟异步一样我不需要关心它什么时候执行,也不会影响当前请求,还可以对写入任务进行统一管理,添加侦听器等。
目前跑的还是很不错的,效果有待观察。