为了账号安全,请及时绑定邮箱和手机立即绑定

Java日志分析的方案?

Java日志分析的方案?

侃侃尔雅 2019-03-14 14:15:10
Spring+MyBatis+SNMP+Postgresql的监控系统,需要处理日志里的交易信息,日志形如:----交易开始----(交易信息)----交易结束----日志按小时分文件。我的需求是5分钟扫一次日志,把交易成功数汇总,把失败交易写入监控数据库,目前我是把log文件映射为数据库表,用for循环每次取一个交易的信息解析,尝试了一下每个log里有5K个交易,5分钟别说解析完,就连映射到数据库表的时间都不够。映射用的是PG创建外部表的功能:CREATE SERVER pglog FOREIGN DATA WRAPPER file_fdw;CREATE FOREIGN TABLE pglog SERVER pglog OPTIONS (filename 'xxxx', format...;在不上内存数据库、NoSQL的前提下,有没有最简单的方案能提高日志分析的速度?或者说我需要放弃映射为数据库表这条路,走别的路?
查看完整描述

2 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

  1. 记录上次文件解析的位置。第二次解析日志时使用InputStream.skip跳过可避免重复分析数据

  2. 一个线程解析日志将解析的数据存放在内存中,由额外的线程专门处理数据(这样解析的速度会很快5K的数据应该也是秒级的)


查看完整回答
反对 回复 2019-04-25
?
萧十郎

TA贡献1815条经验 获得超13个赞

日志分析已经有很多成熟的产品,比如Logstash,不用非得入库,并且入库还涉及服务器io性能,入库频次高的时候,反而影响正常业务。


查看完整回答
反对 回复 2019-04-25
  • 2 回答
  • 0 关注
  • 510 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信