一种日志数据异步处理方法及装置制造方法及图纸

技术编号:19744948 阅读:25 留言:0更新日期:2018-12-12 04:41
本发明专利技术公开了一种日志数据异步处理方法及装置,该方法包括:创建一个daemon进程作为管理者;根据配置信息创建工作进程,形成工作进程群,并根据工作进程群的实时运行情况灵活自动的控制工作进程群中工作进程的个数;多个工作进程循环监听设定的接收数据端口,工作进程接收数据后,在数据库连接正常时,将接收到的银行系统的交易日志信息作为交易日志数据写入数据库;否则工作进程将接收到的交易日志数据写入本地日志文件,待所述数据库恢复后,将所述本地日志文件中的所述交易日志数据导入所述数据库。本发明专利技术去除银行系统对数据库的依赖,有效应对可能面临的,诸如数据库故障、高并发等种种情况,为银行系统提供可靠日志记录服务。

【技术实现步骤摘要】
一种日志数据异步处理方法及装置
本专利技术涉及数据处理
,更具体的,涉及一种日志数据异步处理方法及装置。
技术介绍
商业银行系统具有高并发性、不可中断性等特点,每笔交易需要完整、准确并及时记入交易数据库中。但是,由于交易量巨大或其他不可控因素,交易数据库不可避免的可能出现故障或者升级的情况。若采用同步日志机制,受数据库性能(包括数据库连接数限制、数据库写入速率等)及运行情况的限制,导致应用系统运行情况严重依赖数据库的运行情况,无法去除数据库依赖,一旦数据库不可用或拥堵,则会导致交易数据的丢失或应用系统中交易运行堵塞,造成应用系统崩溃;另外,银行网关系统需要处理亿级别的交易,属于高并发性系统,同步日志结构不具备高并发性的特点,无法满足银行系统的需求。为此,需要设计合理有效,并且有针对性的异步日志机制,去除银行系统对数据库的依赖,持续有效的提供交易接入服务。目前,现有异步日志机制利用生产者-消费者模型,通过多个进程或线程(消费者)互斥地将交易信息存储到共享内存中的消息队列中,当共享内存满时,一个进程或线程(生产者)从消息队列中读取日志信息写入联机数据库。但是,这种异步日志机制不具备实时性,无法应对银行客户的实时查询需求,同时,在高并发情况下,生产者-消费者模式由于单个生产者压力比较大,存在性能瓶颈并且是整个系统的单点,一旦出现问题,整个网关系统将不能正常工作。
技术实现思路
本专利技术的目的在于提出一种日志数据异步处理方法及装置,以解决现有异步日志机制不具备实时性,无法应对银行客户的实时查询需求,以及在高并发情况下,生产者-消费者模式由于单个生产者压力比较大,并且是整个系统的单点,成为了整个系统的性能瓶颈,一旦出现问题,整个网关系统将不能正常工作的问题。为达到上述目的,本专利技术提供了以下技术方案:一种日志数据异步处理方法,基于管理者-工作者模型,应用于异步日志系统,所述异步日志系统分别与银行系统和数据库通信相连,该方法包括:创建一个daemon进程作为管理者;根据配置信息创建工作进程,形成工作进程群,并根据所述工作进程群的实时运行情况控制所述工作进程群中工作进程的个数,所述工作进程群包括至少一个工作进程;多个所述工作进程循环监听接收数据的端口,所述工作进程接收数据后,连接数据库,在所述数据库连接正常时,将接收到的所述银行系统的交易日志信息作为交易日志数据写入所述数据库;否则,将所述交易日志数据写入本地日志文件,待所述数据库恢复后,将所述本地日志文件中的所述交易日志数据导入所述数据库。进一步地,所述创建一个daemon进程作为管理者的步骤,包括:创建所述daemon进程的共享内存和互斥信号量,所述共享内存用于加载非可重加载与可重加载的配置信息;读取配置文件,并将所述配置文件中的配置信息加载至所述共享内存;设置第一signal处理函数并初始化工作进程池,绑定所述接收数据的端口;根据所述配置文件中的配置信息创建工作进程群,形成初始工作进程群,所述初始工作进程群包含至少一个工作进程。进一步地,还包括:对所述daemon进程进行主循环的工作过程。进一步地,对所述daemon进程进行主循环的工作过程的步骤,包括:清理所述daemon进程产生的所述工作进程群中已经退出的工作进程;检查所述daemon进程产生的所述工作进程群中工作进程的数量,根据所述工作进程群的运行情况减少或指数性增加所述工作进程的数量,并检查是否需要替换所有工作进程;当存在所述工作进程登记超时或所述工作进程运行时间超过预设时长时,设置对应的所述工作进程退出。进一步地,还包括:接收所述daemon进程的程序终止信号或者所述daemon进程的程序结束信号,执行所述daemon进程及所述工作进行群的清理并退出。进一步地,所述根据配置信息创建工作进程群的步骤,包括:创建所述工作进程的共享内存和互斥信号量,对所述工作进程进行初始化,并设置第二signal处理函数,完成单个工作进程的创建与设置工作;根据所述配置信息中设定的工作进程个数,依据所述创建工作进程的方法,依次创建工作进程,构成所述工作进程群。进一步地,还包括:对所述工作进程进行主循环的工作过程。进一步地,对所述工作进程进行主循环的工作过程的步骤,包括:所述工作进程获取从接收数据端口读取数据的所述互斥信号量;所述工作进程在所述数据接收端口处接收对应的所述银行系统的交易日志信息,接收完成后,释放所述工作进程持有的所述互斥信号量;连接所述数据库,在所述数据库连接正常时,将所述交易日志信息写入所述数据库;否则,将所述交易日志数据写入所述本地日志文件,待所述数据库恢复后,将所述本地日志文件中的所述交易日志数据导入所述数据库;所述工作进程更新登记时间,并提供给所述daemon进程进行检查。进一步地,还包括:接收所述工作进程的程序终止信号或者所述工作进程的程序结束信号,执行所述工作进程的强制退出或执行完当前轮次工作后退出,并设置所述工作进程群中所述工作进程对应的结构体的退出标志位。一种日志数据异步处理装置,包括:第一创建单元,用于创建一个daemon进程作为管理者;第二创建单元,用于根据配置信息创建工作进程,形成工作进程群,并根据所述工作进程群的实时运行情况控制所述工作进程的个数,所述工作进程群包括至少一个工作进程;日志数据写入单元,用于多个所述工作进程循环监听接收数据的端口,所述工作进程接收数据后,连接数据库,在所述数据库连接正常时,将接收到的所述银行系统的交易日志信息作为交易日志数据写入所述数据库;否则,将所述交易日志数据写入本地日志文件,待所述数据库恢复后,将所述本地日志文件中的所述交易日志数据导入所述数据库。经由上述的技术方案可知,与现有技术相比,本专利技术公开了一种日志数据异步处理方法及装置,该方法包括:创建一个daemon进程作为管理者;根据配置信息创建工作进程群,并根据实时运行情况控制工作进程的个数;多个工作进程循环监听接收数据的端口,工作进程接收数据后,在数据库连接正常时,将接收到的银行系统的交易日志信息作为交易日志数据写入数据库;否则,将所述交易日志数据写入本地日志文件,待所述数据库恢复后,将本地日志文件中的交易日志数据导入所述数据库。本专利技术通过使用工作进程控制、非停机情况下加载配置信息等机制,在最大限度保证日志数据实时性的前提下,去除银行系统对数据库的依赖,提高系统内存吞吐率,节省CPU资源,有效应对可能面临的,诸如数据库故障、高并发等种种情况,为银行系统提供可靠日志记录服务。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例公开的一种日志数据异步处理方法流程图;图2为本专利技术实施例公开的步骤S101的一种具体实施方式的流程图;图3为本专利技术实施例公开的步骤S205的一种具体实施方式的流程图;图4为本专利技术实施例公开的步骤S102的一种具体实施方式的流程图;图5为本专利技术实施例公开的步骤S403的一种具体实施方式的流程图;图6为本专利技术实施例公开的一种日志数据异步处理装置结构图;图本文档来自技高网...

【技术保护点】
1.一种日志数据异步处理方法,其特征在于,基于管理者‑工作者模型,应用于异步日志系统,所述异步日志系统分别与银行系统和数据库通信相连,该方法包括:创建一个daemon进程作为管理者;根据配置信息创建工作进程,形成工作进程群,并根据所述工作进程群的实时运行情况控制所述工作进程群中工作进程的个数,所述工作进程群包括至少一个工作进程;多个所述工作进程循环监听接收数据的端口,所述工作进程接收数据后,连接数据库,在所述数据库连接正常时,将接收到的所述银行系统的交易日志信息作为交易日志数据写入所述数据库;否则,将所述交易日志数据写入本地日志文件,待所述数据库恢复后,将所述本地日志文件中的所述交易日志数据导入所述数据库。

【技术特征摘要】
1.一种日志数据异步处理方法,其特征在于,基于管理者-工作者模型,应用于异步日志系统,所述异步日志系统分别与银行系统和数据库通信相连,该方法包括:创建一个daemon进程作为管理者;根据配置信息创建工作进程,形成工作进程群,并根据所述工作进程群的实时运行情况控制所述工作进程群中工作进程的个数,所述工作进程群包括至少一个工作进程;多个所述工作进程循环监听接收数据的端口,所述工作进程接收数据后,连接数据库,在所述数据库连接正常时,将接收到的所述银行系统的交易日志信息作为交易日志数据写入所述数据库;否则,将所述交易日志数据写入本地日志文件,待所述数据库恢复后,将所述本地日志文件中的所述交易日志数据导入所述数据库。2.根据权利要求1所述的方法,其特征在于,所述创建一个daemon进程作为管理者的步骤,包括:创建所述daemon进程的共享内存和互斥信号量,所述共享内存用于加载非可重加载与可重加载的配置信息;读取配置文件,并将所述配置文件中的配置信息加载至所述共享内存;设置第一signal处理函数并初始化工作进程池,绑定所述接收数据的端口;根据所述配置文件中的配置信息创建工作进程群,形成初始工作进程群,所述初始工作进程群包含至少一个工作进程。3.根据权利要求2所述的方法,其特征在于,还包括:对所述daemon进程进行主循环的工作过程。4.根据权利要求3所述的方法,其特征在于,对所述daemon进程进行主循环的工作过程的步骤,包括:清理所述daemon进程产生的所述工作进程群中已经退出的工作进程;检查所述daemon进程产生的所述工作进程群中工作进程的数量,根据所述工作进程群的运行情况减少或指数性增加所述工作进程的数量,并检查是否需要替换所有工作进程;当存在所述工作进程登记超时或所述工作进程运行时间超过预设时长时,设置对应的所述工作进程退出。5.根据权利要求4所述的方法,其特征在于,还包括:接收所述daemon进程的程序终止信号或者所述daemon进程的程序结束信号,执行所述daemon进程及所述工作进行群的清理...

【专利技术属性】
技术研发人员:周鹏霞程密常严罗占海马晓祯张志玮
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1