开发者社区 问答 正文

如何才能把每个用户访问的url及时间记录下来,但又不影响系统性能

一个web系统,客户有这样的要求:把每个登录人员访问的url地址及时间全部记录下来, 系统是jsp 实现,我的想法是加一个Filter ,在这个Filter中做记录, 当在线人员多时,所有的操作都要被这个filter 过一遍,如果在Filte中做过多的操作,估计会影响性能,那么有没有什么办法实现这个需求呢? 我能想到的是:

1 内存中放一个 ArrayList , 记录下url+时间+用户ID,当记录条数达到一定数量时,比如1000条时,再保存到数据库中

2 使用第三方的缓存框架,让它们来缓存并序列化到磁盘中

各位能给点什么建议吗。谢谢

展开
收起
长安归故里. 2020-01-07 21:06:20 889 分享 版权
1 条回答
写回答
取消 提交回答
  • 用filter可以,用过滤后缀名来保证只记录一次就好了,开销不会很大,不推荐用数据库,这种日志信息直接写日志文件最合适,把日志信息缓存在内存里,再搞一个后台线程做集中写入,可以做到对性能影响最小

    2020-01-07 21:06:29
    赞同 展开评论
问答分类:
问答标签:
问答地址: