首页新闻找找看学习计划

如何设计一个高性能的日志系统

0
悬赏园豆:80 [已解决问题] 解决于 2015-08-18 01:25

需求:
1、系统采用B/S架构,要求能够记录客户端的任何事件,比如单击了某个按钮或者链接;
2、要求能够记录用户每次操作时后台代码使用到的SQL和参数,比如添加数据时的SQL语句和具体的Parameter;
3、将1和2串联或者合并起来,意思就是我在分析日志时,能够在查询客户端事件时也能看到后台的SQL语句和参数;
4、2年内数据达到20亿条记录,采用什么样的数据库比较合适,非关系行的MongoDB还是关系型的Oracle;


非常感谢!

屌丝大叔的笔记的主页 屌丝大叔的笔记 | 初学一级 | 园豆:48
提问于:2015-02-03 09:47
< >
分享
最佳答案
0

HBase+RabbitMQ+MVC+jQuery

后台的sql和参数可通过aop的方式进行处理,用户客户端操作交给一个公共嗅探js搞定,某些高度敏感日志还需要过滤处理

收获园豆:30
JeffWong | 老鸟四级 |园豆:2021 | 2015-02-03 10:34

客户端我是这么做的,可以不?

$(':button, a').click(function () {
//ajax post到后台记录日志代码
});

屌丝大叔的笔记 | 园豆:48 (初学一级) | 2015-02-03 11:30

@苏本东: 当然可以,每个页面元素绑定一个自定义公共事件,专门嗅探操作了什么,事件内部post数据至后台,后端记录日志

JeffWong | 园豆:2021 (老鸟四级) | 2015-02-03 11:38
其他回答(6)
0

大量日志这种(完整性要求不高),个人觉得还是Nosql比较适合。你提供的两者中,个人推荐Mongo。而且性能上比Oracle有优势。

幻天芒 | 园豆:36522 (高人七级) | 2015-02-03 09:51
0

日志写入要队列化。

收获园豆:10
Launcher | 园豆:45030 (高人七级) | 2015-02-03 10:05

有道理!马上着手这样搞!

支持(0) 反对(0) 吴瑞祥 | 园豆:28731 (高人七级) | 2015-02-03 10:41
0

关键的挑战还是如何将1和2关联到一起,这个系统结构得支持。

收获园豆:10
爱编程的大叔 | 园豆:29788 (高人七级) | 2015-02-03 10:10

说的在理。

支持(0) 反对(0) 幻天芒 | 园豆:36522 (高人七级) | 2015-02-03 10:11

大叔说到重点了。

支持(0) 反对(0) 屌丝大叔的笔记 | 园豆:48 (初学一级) | 2015-02-03 10:56
0

支持楼上的aop方式记录日志

日志建议使用hadoop存储,只要硬盘够,不存在性能问题

收获园豆:20
茂茂 | 园豆:2860 (老鸟四级) | 2015-02-03 16:08

能举例说下不?

支持(0) 反对(0) 屌丝大叔的笔记 | 园豆:48 (初学一级) | 2015-02-03 17:22
0

平均每天两百多万条,两个数据库任何一个都支持,看自己喜好。

喜欢用那个都用那个,把表给横切,比如每天创建一个表。轻松的跑起来

查询是关键,存储两个数据库都无所谓。查询就看功能怎么设计。

如果查询是最近的多少天倒也还好,反正不能够拿全集,拿指定的日期的记录都不大。

````` | 园豆:14268 (专家六级) | 2015-02-28 13:37
0

HBase+redis+MVC+jQuery 

方式很多 考虑集群是必要的

 

收获园豆:10
Chaoa | 园豆:643 (小虾三级) | 2015-03-11 11:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册