[发明专利]交易日志收集方法、装置及系统在审
申请号: | 202111386072.0 | 申请日: | 2021-11-22 |
公开(公告)号: | CN114116632A | 公开(公告)日: | 2022-03-01 |
发明(设计)人: | 余佳齐 | 申请(专利权)人: | 中国建设银行股份有限公司 |
主分类号: | G06F16/172 | 分类号: | G06F16/172;G06F16/18;G06Q40/04 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 叶明川;董骁毅 |
地址: | 100033 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 交易 日志 收集 方法 装置 系统 | ||
本发明提供一种交易日志收集方法、装置及系统。该交易日志收集方法包括:将各应用服务器的日志文件放入缓存队列;根据尾交易时间与头消息交易时间确定时间差;根据时间差和头消息交易时间确定日志输出时间;将缓存队列中的日志文件按照日志文件中的交易时间进行排序,按照日志输出时间将排序后的日志文件放入输出消息队列。本发明可以有效应对短时间大量生成的日志,保证收集到的日志完整有序,避免交易失败,进而提高后续跟帐回放装置的回放效率和回放效果。
技术领域
本发明涉及大数据数据分析技术领域,具体地,涉及一种交易日志收集方法、装置及系统。
背景技术
图1是交易日志生成示意图。如图1所示,用户在银行提供的各个渠道端向后端发起请求,例如开户,放款等操作,服务端会记录每次的请求信息(Req,即请求报文)和响应信息(Rep,即响应报文)到日志中。交易回放系统根据日志进行交易复现。日志报文收集系统用于采集此报文信息并发送到Kafka消息队列中,供跟帐回放系统消费。
银行系统为分布式系统,日志分布在各个应用服务器(AP)上且实时更新,应用服务器上的采集代理端(agent)在扫描日志时具有扫描间隔,如果收集的日志文件对时序有强要求则可能出现问题。
图2是交易时序访问示意图。交易指银行系统从渠道端发起一次请求,如图2所示,在分布式系统中交易会通过负载均衡均匀地发送到各个应用服务器AP。假设发生了如下的交易调用:请求(Req)1-请求2-请求3,交易分布在不同应用服务器上且操作间隔小于1s,应用服务器的扫描间隔为1s。如果此时应用服务器1的扫描刚刚结束,则需要等待1s后才会开始扫描,此时应用服务器2的报文信息可能会被提前记录到消息队列中,同理应用服务器3的请求报文也有可能在请求1和请求2前被收集到,跟帐回放系统根据收到的报文做回放时会出现时序混乱,造成交易失败。
图3是现有技术的日志收集系统。如图3所示,每台应用服务器(AP)上都部署有采集代理端agent对系统日志进行扫描。采集日志时,代理端按照数据采集顺序直接存入目标存储系统,并不会对收集日志数据做时序上的处理。而在跟帐消费系统中,必须保证报文的执行顺序与原始执行顺序一致,因此对收集到的日志做时序上的处理是有必要的。
发明内容
本发明实施例的主要目的在于提供一种交易日志收集方法、装置及系统,以保证收集到的日志完整有序,避免交易失败。
为了实现上述目的,本发明实施例提供一种交易日志收集方法,包括:
将各应用服务器的日志文件放入缓存队列;
根据尾交易时间与头消息交易时间确定时间差;
根据时间差和头消息交易时间确定日志输出时间;
将缓存队列中的日志文件按照日志文件中的交易时间进行排序,按照日志输出时间将排序后的日志文件放入输出消息队列。
在其中一种实施例中,按照日志输出时间将排序后的日志文件放入输出消息队列包括:
根据日志输出时间与各日志文件的交易时间确定目标日志文件;
将排序后的目标日志文件放入输出消息队列。
在其中一种实施例中,将各应用服务器的日志文件放入缓存队列包括:
将各应用服务器的日志文件放入对应的消息队列;
将各消息队列中的日志文件并行放入缓存队列。
在其中一种实施例中,还包括:
根据各消息队列放入缓存队列的最后一个日志文件的交易时间确定尾交易时间。
在其中一种实施例中,还包括:
确定缓存队列的头日志文件的交易时间为头消息交易时间;或
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国建设银行股份有限公司,未经中国建设银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111386072.0/2.html,转载请声明来源钻瓜专利网。