CN108984378B - 一种日志数据异步处理方法及装置 - Google Patents
一种日志数据异步处理方法及装置 Download PDFInfo
- Publication number
- CN108984378B CN108984378B CN201810737031.3A CN201810737031A CN108984378B CN 108984378 B CN108984378 B CN 108984378B CN 201810737031 A CN201810737031 A CN 201810737031A CN 108984378 B CN108984378 B CN 108984378B
- Authority
- CN
- China
- Prior art keywords
- database
- work
- working
- data
- work process
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种日志数据异步处理方法及装置,该方法包括:创建一个daemon进程作为管理者;根据配置信息创建工作进程,形成工作进程群,并根据工作进程群的实时运行情况灵活自动的控制工作进程群中工作进程的个数;多个工作进程循环监听设定的接收数据端口,工作进程接收数据后,在数据库连接正常时,将接收到的银行系统的交易日志信息作为交易日志数据写入数据库;否则工作进程将接收到的交易日志数据写入本地日志文件,待所述数据库恢复后,将所述本地日志文件中的所述交易日志数据导入所述数据库。本发明去除银行系统对数据库的依赖,有效应对可能面临的,诸如数据库故障、高并发等种种情况,为银行系统提供可靠日志记录服务。
Description
技术领域
本发明涉及数据处理技术领域,更具体的,涉及一种日志数据异步处理方法及装置。
背景技术
商业银行系统具有高并发性、不可中断性等特点,每笔交易需要完整、准确并及时记入交易数据库中。但是,由于交易量巨大或其他不可控因素,交易数据库不可避免的可能出现故障或者升级的情况。若采用同步日志机制,受数据库性能(包括数据库连接数限制、数据库写入速率等)及运行情况的限制,导致应用系统运行情况严重依赖数据库的运行情况,无法去除数据库依赖,一旦数据库不可用或拥堵,则会导致交易数据的丢失或应用系统中交易运行堵塞,造成应用系统崩溃;另外,银行网关系统需要处理亿级别的交易,属于高并发性系统,同步日志结构不具备高并发性的特点,无法满足银行系统的需求。为此,需要设计合理有效,并且有针对性的异步日志机制,去除银行系统对数据库的依赖,持续有效的提供交易接入服务。
目前,现有异步日志机制利用生产者-消费者模型,通过多个进程或线程(消费者)互斥地将交易信息存储到共享内存中的消息队列中,当共享内存满时,一个进程或线程(生产者)从消息队列中读取日志信息写入联机数据库。但是,这种异步日志机制不具备实时性,无法应对银行客户的实时查询需求,同时,在高并发情况下,生产者-消费者模式由于单个生产者压力比较大,存在性能瓶颈并且是整个系统的单点,一旦出现问题,整个网关系统将不能正常工作。
发明内容
本发明的目的在于提出一种日志数据异步处理方法及装置,以解决现有异步日志机制不具备实时性,无法应对银行客户的实时查询需求,以及在高并发情况下,生产者-消费者模式由于单个生产者压力比较大,并且是整个系统的单点,成为了整个系统的性能瓶颈,一旦出现问题,整个网关系统将不能正常工作的问题。
为达到上述目的,本发明提供了以下技术方案:
一种日志数据异步处理方法,基于管理者-工作者模型,应用于异步日志系统,所述异步日志系统分别与银行系统和数据库通信相连,该方法包括:
创建一个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为本发明实施例公开的一种日志数据异步处理装置结构图;
图7为本发明实施例公开的异步日志系统与银行系统和数据库之间的关系图;
图8为本发明实施例公开的star模块流程图;
图9为本发明实施例公开的工作进程流程图;
图10为本发明实施例公开的stop模块流程图;
图11为本发明实施例公开的status模块流程图;
图12为本发明实施例公开的reload模块流程图;
图13为本发明实施例公开的relog模块流程图;
图14为本发明实施例公开的help模块流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种日志数据异步处理方法,该方法具体包括如下步骤:
S101、创建一个daemon进程作为管理者。
本发明实施例中,star模块用于创建一个daemon进程作为管理者,daemon进程创建一个互斥信号和共享内存,共享内容会加载非可重加载与可重加载配置信息,daemon进程根据配置信息创建多个工作进程,形成工作进程群,并根据工作进程群的实时运行情况控制工作进程群中工作进程的个数;多个工作进程循环监听设定的接收数据的端口,工作进程接收数据后,在数据库连接正常时,将接收到的银行系统的交易日志信息作为交易日志数据写入数据库中,在写数据库失败或数据库连接不正常时,将交易日志数据写入本地日志文件。
如图2所示,为本发明实施例提供的步骤S101的一种具体实施方式,具体的,所述创建一个daemon进程作为管理者的步骤,具体包括如下步骤:
S201、创建daemon进程的共享内存和互斥信号量,所述共享内存用于加载非可重加载与可重加载的配置信息;
S202、读取配置文件,并将配置文件中的配置信息加载至共享内存;
S203、设置第一signal处理函数并初始化工作进程池,绑定接收数据的端口;
S204、根据配置文件中的配置信息创建工作进程群,形成初始的工作进程群,所述初始工作进程群包含至少一个工作进程。
具体的,在创建daemon进程之后,还包括:
S205、对daemon进程进行主循环的工作过程。
如图3所示,为本发明实施例提供的步骤S205的一种具体实施方式,具体的,对daemon进程进行主循环的工作过程的步骤,具体包括如下步骤:
S301、清理daemon进程创建的工作进程群中已经退出的工作进程;
S302、检查daemon进程产生的工作进程群中工作进程数量,根据工作进程群的运行情况减少或指数性增加工作进程的数量,并检查是否需要替换所有工作进程;
具体的,工作进程的数量不得小于规定的工作进程个数的下限值,不得大于规定的工作进程个数的上限值。
S303、当存在工作进程登记超时或工作进程运行时间超过预设时长时,设置对应的工作进程退出;
S304、接收daemon进程的程序终止信号或者daemon进程的程序结束信号,执行daemon进程的清理并退出。
S102、根据配置信息创建工作进程,形成工作进程群,并根据工作进程群的实时运行情况控制工作进程的个数,所述工作进程群包括至少一个工作进程。
如图4所示,为本发明实施例提供的步骤S102的一种具体实施方式,具体的,根据配置信息创建工作进程群步骤,具体包括如下步骤:
S401、创建工作进程的共享内存和互斥信号量,对工作进程进行初始化,并设置第二signal处理函数,完成单个工作进程的创建与设置工作;
S402、根据配置信息中设定的工作进程个数,依据上述创建单个工作进程的方法,依次创建工作进程,构成工作进程群。
具体的,在创建工作进程群之后,还包括:
S403、对工作进程进行主循环的工作过程。
如图5所示,为本发明实施例提供的步骤S403的一种具体实施方式,具体的,对工作进程进行主循环的工作过程的步骤,具体包括如下步骤:
S501、工作进程获取从接收数据端口读取数据的互斥信号量;
S502、工作进程在数据接收端口处接收对应的银行系统的交易日志信息,数据接收完毕后,释放工作进程持有的的互斥信号量;
S503、连接数据库,在数据库连接正常时,将交易日志信息写入数据库;否则,将交易日志数据写入本地日志文件,待数据库恢复后,将本地日志文件中的交易日志数据导入数据库;
S504、工作进程更新登记时间,并提供给daemon进程进行检查。
S505、接收工作进程的程序终止信号或者工作进程的程序结束信号,执行工作进程的强制退出或完成当前轮次工作后退出,并设置工作进程群中工作进程对应的结构体的退出标志位。
S103、多个工作进程循环监听接收数据的端口,工作进程接收数据后,连接数据库,在数据库连接正常时,将接收到的银行系统的交易日志信息作为交易日志数据写入数据库;否则,将交易日志数据写入本地日志文件,待数据库恢复后,将本地日志文件中的交易日志数据导入数据库。
本发明保证了银行系统在数据库系统正常连接时,日志数据是实时写入数据库的,保证了交易的实时可查性,在数据库系统连接不正常时,将日志数据写入本地存储的日志文件,不会丢失交易日志数据。该机制去除了银行系统对数据库的依赖,在对大限度保证交易信息实时性的情况下,不会丢失交易数据。
本发明使用管理者-工作者模式,一个daemon进程(管理者)产生多个工作进程(工作者),通过判断系统的实时情况控制工作进程的个数,在高并发情况下,可以通过指数性增加工作进程个数,不得大于设定的工作进程个数的上限值,并发记录交易日志;在交易量少时,通过减少工作进程的数量以降低CPU资源消耗,工作进程个数不得小于设定的工作进程个数的下限值。此机制可以完美应对系统的高并发情况,提高内存吞吐率,也可以有效减少CPU资源消耗。
另外,由于配置信息中设置了工作进程的基本信息、接收数据的端口等配置信息,本发明在不停机的情况,可重新加载配置信息到共享内存,保证了相应配置信息可以根据实际情况随时进行设置。
本发明实施例提供的一种日志数据异步处理方法,该方法包括:创建一个daemon进程作为管理者;根据配置信息创建工作进程,形成工作进程群,并根据工作进程群的实时运行情况控制工作进程群中工作进程的个数;多个工作进程循环监听接收数据的端口,工作进程接收数据后,在数据库连接正常时,将接收到的银行系统的交易日志信息作为交易日志数据写入数据库;或者,将交易日志数据写入本地日志文件,待数据库恢复后,将本地日志文件中的交易日志数据导入所述数据库。本发明通过使用工作进程控制、非停机情况下加载配置信息等机制,在最大限度保证日志数据实时性的前提下,去除银行系统对数据库的依赖,提高系统内存吞吐率,节省CPU资源,有效应对可能面临的,诸如数据库故障、高并发等种种情况,为银行系统提供可靠日志记录服务。
本发明在上述公开的方法的基础上,还公开了对应的装置。
下面对本发明实施例提供的一种日志数据异步处理装置进行介绍,需要说明的是,有关该日志数据异步处理装置的说明可参照上文提供的日志数据异步处理方法,以下并不做赘述。
如图6所示,本发明实施例提供了一种日志数据异步处理装置,该装置具体包括:第一创建单元601、第二创建单元602和日志数据写入单元603,其中:
第一创建单元601,用于创建一个daemon进程作为管理者;
本发明实施例中,star模块用于创建一个daemon进程作为管理者,daemon进程创建一个互斥信号和共享内存,共享内容会加载非可重加载与可重加载配置信息,daemon进程根据配置信息创建多个工作进程,形成工作进程群,并根据工作进程群的实时运行情况控制工作进程群中工作进程的个数;多个工作进程循环监听设定的接收数据的端口,工作进程接收数据后,在数据库连接正常时,将接收到的银行系统的交易日志信息作为交易日志数据写入数据库中,在写数据库失败或数据库连接不正常时,将交易日志数据写入本地日志文件。
第二创建单元602,用于根据配置信息创建工作进程,形成工作进程群,并根据工作进程群的实时运行情况控制工作进程的个数,工作进程群包括至少一个工作进程;
日志数据写入单元603,用于多个所述工作进程循环监听接收数据的端口,工作进程接收数据后,连接数据库,在数据库连接正常时,将接收到的银行系统的交易日志信息作为交易日志数据写入数据库;否则,将交易日志数据写入本地日志文件,待数据库恢复后,将本地日志文件中的交易日志数据导入数据库。
本发明保证了银行系统在数据库系统正常连接时,日志数据是实时写入数据库的,保证了交易的实时可查性,在数据库系统连接不正常时,将日志数据写入本地存储的日志文件,不会丢失交易日志数据。该机制去除了银行系统对数据库的依赖,在对大限度保证交易信息实时性的情况下,不会丢失交易数据。
本发明使用管理者-工作者模式,一个daemon进程(管理者)产生多个工作进程(工作者),通过判断系统的实时情况控制工作进程的个数,在高并发情况下,可以通过指数性增加工作进程个数,不得大于设定的工作进程个数的上限值,并发记录交易日志;在交易量少时,通过减少工作进程的数量以降低CPU资源消耗,工作进程个数不得小于设定的工作进程个数的下限值。此机制可以完美应对系统的高并发情况,提高内存吞吐率,也可以有效减少CPU资源消耗。
另外,由于配置信息中设置了工作进程的基本信息、接收数据的端口等配置信息,本发明在不停机的情况,可重新加载配置信息到共享内存,保证了相应配置信息可以根据实际情况随时进行设置。
本发明公开了一种日志数据异步处理装置,通过第一创建单元创建一个daemon进程作为管理者;第二创建单元根据配置信息创建工作进程,形成工作进程群,并根据工作进程群的实时运行情况控制所述工作进程的个数;多个所述工作进程循环监听接收数据的端口,工作进程接收数据后,连接数据库,日志数据写入单元在数据库连接正常时,将银行系统的交易日志信息作为交易日志数据写入数据库;否则,将交易日志数据写入本地日志文件,待数据库恢复后,将本地日志文件中的交易日志数据导入数据库。本发明通过使用工作进程控制、非停机情况下加载配置信息等机制,在最大限度保证日志数据实时性的前提下,去除银行系统对数据库的依赖,提高系统内存吞吐率,节省CPU资源,有效应对可能面临的,诸如数据库故障、高并发等种种情况,为银行系统提供可靠日志记录服务。
本发明实施例提供的异步日志系统与银行系统和数据库之间的关系,如图7所示,异步日志系统102分别与银行系统101和数据库103之间通信相连。其中,异步日志系统共有6个模块:start模块、stop模块、status模块、reload模块、relog模块和help模块,分别负责启动系统、停止系统、查看系统状态、更新动态配置信息、重建日志文件和显示帮助信息,具体的:
star模块用于创建一个daemon进程作为管理者,daemon进程创建一个互斥信号和共享内存,共享内容会加载非可重加载与可重加载配置信息,daemon进程根据配置信息创建工作进程,形成工作进程群,并根据工作进程群的实时运行情况控制工作进程个数;多个工作进程循环监听接收数据的端口,工作进程接收数据后,在数据库连接正常时,将日志数据写入数据库中,在写数据库失败或数据库连接不正常时,将日志数据写入本地日志文件,具体的,如图8和图9所示,图8为star模块流程图;图9为工作进程流程图。
stop模块用于通过共享内存的配置信息,获取daemon进程的id,通知daemon进程退出,此时异步日志机制停止日志记录工作,具体的,如图10为stop模块流程图。
status模块用于获取daemon进程与工作进程的运行状态信息,具体的,如图11为status模块流程图。
reload模块用于在不影响联机交易的情况下,获取配置文件,并将配置文件加载入共享内存,根据配置信息创建新的工作进程逐渐替代现有工作进程,具体的,如图12为reload模块流程图。
relog模块用于当日志文件被移动或删除,创建新的日志文件,如图13为relog模块流程图。
help模块用于显示异步日志系统的命令等相关帮助信息,如图14为help模块流程图。
本发明提供的日志数据异步处理方法在联机交易数据库没有问题的情况下,异步日志系统将交易日志实时写入联机数据库中;在交易量较大的情况下,通过指数性增加工作进程并发记录交易数据,具体的工作进程数量不得大于设定的工作进程个数的上限值;当交易量少时,可以自动减少工作进程的数量以降低系统资源消耗,具体的工作进程数量不得小于设定的工作进程个数的下限值;在数据库不可提供服务时,异步日志系统可以通过将交易数据写入本地日志文件,记录交易日志数据,待数据库恢复时,再将交易日志数据导入数据库;在不影响联机交易的情况下,重新加载配置信息。本发明通过使用工作进程控制、非停机情况下加载配置信息等机制,在最大限度保证日志数据实时性的前提下,去除银行系统对数据库的依赖,提高系统内存吞吐率,节省CPU资源,有效应对可能面临的,诸如数据库故障、高并发等种种情况,为银行系统提供可靠日志记录服务。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (5)
1.一种日志数据异步处理方法,其特征在于,基于管理者-工作者模型,应用于异步日志系统,所述异步日志系统分别与银行系统和数据库通信相连,该方法包括:
创建一个daemon进程作为管理者,包括:创建所述daemon进程的共享内存和互斥信号量,所述共享内存用于加载非可重加载与可重加载的配置信息;读取配置文件,并将所述配置文件中的配置信息加载至所述共享内存;设置第一signal处理函数并初始化工作进程池,绑定接收数据的端口;根据所述配置文件中的配置信息创建工作进程群,形成初始工作进程群,所述初始工作进程群包含至少一个工作进程;
根据配置信息创建工作进程,形成工作进程群,并根据所述工作进程群的实时运行情况控制所述工作进程群中工作进程的个数,所述工作进程群包括至少一个工作进程;
多个所述工作进程循环监听接收数据的端口,所述工作进程接收数据后,连接数据库,在所述数据库连接正常时,将接收到的所述银行系统的交易日志信息作为交易日志数据写入所述数据库;否则,将所述交易日志数据写入本地日志文件,待所述数据库恢复后,将所述本地日志文件中的所述交易日志数据导入所述数据库。
2.根据权利要求1所述的方法,其特征在于,还包括:
对所述daemon进程进行主循环的工作过程,包括:
清理所述daemon进程产生的所述工作进程群中已经退出的工作进程;
检查所述daemon进程产生的所述工作进程群中工作进程的数量,根据所述工作进程群的运行情况减少或指数性增加所述工作进程的数量,并检查是否需要替换所有工作进程;
当存在所述工作进程登记超时或所述工作进程运行时间超过预设时长时,设置对应的所述工作进程退出;
接收所述daemon进程的程序终止信号或者所述daemon进程的程序结束信号,执行所述daemon进程及所述工作进程群的清理并退出。
3.根据权利要求1所述的方法,其特征在于,所述根据配置信息创建工作进程群的步骤,包括:
创建所述工作进程的共享内存和互斥信号量,对所述工作进程进行初始化,并设置第二signal处理函数,完成单个工作进程的创建与设置工作;
根据所述配置信息中设定的工作进程个数,依据所述创建工作进程的方法,依次创建工作进程,构成所述工作进程群。
4.根据权利要求3所述的方法,其特征在于,还包括:
对所述工作进程进行主循环的工作过程,包括:
所述工作进程获取从接收数据端口读取数据的所述互斥信号量;
所述工作进程在所述接收数据端口处接收对应的所述银行系统的交易日志信息,接收完成后,释放所述工作进程持有的所述互斥信号量;
连接所述数据库,在所述数据库连接正常时,将所述交易日志信息写入所述数据库;否则,将所述交易日志数据写入所述本地日志文件,待所述数据库恢复后,将所述本地日志文件中的所述交易日志数据导入所述数据库;
所述工作进程更新登记时间,并提供给所述daemon进程进行检查;
接收所述工作进程的程序终止信号或者所述工作进程的程序结束信号,执行所述工作进程的强制退出或执行完当前轮次工作后退出,并设置所述工作进程群中所述工作进程对应的结构体的退出标志位。
5.一种日志数据异步处理装置,其特征在于,包括:
第一创建单元,用于创建一个daemon进程作为管理者,包括:创建所述daemon进程的共享内存和互斥信号量,所述共享内存用于加载非可重加载与可重加载的配置信息;读取配置文件,并将所述配置文件中的配置信息加载至所述共享内存;设置第一signal处理函数并初始化工作进程池,绑定接收数据的端口;根据所述配置文件中的配置信息创建工作进程群,形成初始工作进程群,所述初始工作进程群包含至少一个工作进程;
第二创建单元,用于根据配置信息创建工作进程,形成工作进程群,并根据所述工作进程群的实时运行情况控制所述工作进程的个数,所述工作进程群包括至少一个工作进程;
日志数据写入单元,用于多个所述工作进程循环监听接收数据的端口,所述工作进程接收数据后,连接数据库,在所述数据库连接正常时,将接收到的银行系统的交易日志信息作为交易日志数据写入所述数据库;否则,将所述交易日志数据写入本地日志文件,待所述数据库恢复后,将所述本地日志文件中的所述交易日志数据导入所述数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810737031.3A CN108984378B (zh) | 2018-07-02 | 2018-07-02 | 一种日志数据异步处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810737031.3A CN108984378B (zh) | 2018-07-02 | 2018-07-02 | 一种日志数据异步处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108984378A CN108984378A (zh) | 2018-12-11 |
CN108984378B true CN108984378B (zh) | 2021-09-07 |
Family
ID=64536359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810737031.3A Active CN108984378B (zh) | 2018-07-02 | 2018-07-02 | 一种日志数据异步处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108984378B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347059B (zh) * | 2020-09-04 | 2023-12-22 | 北京浪潮数据技术有限公司 | 存储系统数据缩减业务日志管理方法及相关组件 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1642104A (zh) * | 2004-01-05 | 2005-07-20 | 华为技术有限公司 | 一种系统日志实现方法和装置 |
CN102331991A (zh) * | 2011-03-18 | 2012-01-25 | 北京神州数码思特奇信息技术股份有限公司 | 基于java语言通过异步方式存储日志的方法 |
CN104050074A (zh) * | 2013-03-12 | 2014-09-17 | 中国银联股份有限公司 | 一种在系统中异步记录日志的方法和装置 |
US9223843B1 (en) * | 2013-12-02 | 2015-12-29 | Amazon Technologies, Inc. | Optimized log storage for asynchronous log updates |
CN106649071A (zh) * | 2016-12-30 | 2017-05-10 | 广州华多网络科技有限公司 | 进程内部日志上报的方法和装置 |
-
2018
- 2018-07-02 CN CN201810737031.3A patent/CN108984378B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1642104A (zh) * | 2004-01-05 | 2005-07-20 | 华为技术有限公司 | 一种系统日志实现方法和装置 |
CN102331991A (zh) * | 2011-03-18 | 2012-01-25 | 北京神州数码思特奇信息技术股份有限公司 | 基于java语言通过异步方式存储日志的方法 |
CN104050074A (zh) * | 2013-03-12 | 2014-09-17 | 中国银联股份有限公司 | 一种在系统中异步记录日志的方法和装置 |
US9223843B1 (en) * | 2013-12-02 | 2015-12-29 | Amazon Technologies, Inc. | Optimized log storage for asynchronous log updates |
CN106649071A (zh) * | 2016-12-30 | 2017-05-10 | 广州华多网络科技有限公司 | 进程内部日志上报的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108984378A (zh) | 2018-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108737548B (zh) | 分布式web微服务容器集群架构系统及其实现方法 | |
CN101102281B (zh) | 移动通信系统中大量数据上报时的数据处理方法 | |
CN104160378A (zh) | 用于复杂的分布式计算操作的容错功能 | |
CN100538646C (zh) | 一种在分布式系统中执行sql脚本文件的方法和装置 | |
US20230098190A1 (en) | Data processing method, apparatus, device and medium based on distributed storage | |
CN111061748A (zh) | 一种热点账户的记账方法及装置 | |
CN101216792B (zh) | 实时操作系统的任务管理方法、装置 | |
CN110210845B (zh) | 用于区块链数据迁移的方法、装置、介质和计算设备 | |
CN110222535A (zh) | 区块链配置文件的处理装置、方法及存储介质 | |
CN108984378B (zh) | 一种日志数据异步处理方法及装置 | |
CN115617908A (zh) | 一种MySQL数据同步方法、装置、数据库终端、介质及系统 | |
CN108710646A (zh) | 一种数据同步的方法及装置 | |
CN107861878A (zh) | Java应用程序性能问题定位的方法、装置和设备 | |
CN107357809A (zh) | 海量平台海迅实时库量测数据接入系统 | |
CN104021033B (zh) | 一种繁忙处理节点的散列方法和系统 | |
CN101771562A (zh) | 操作恢复方法、设备及系统 | |
CN103297264A (zh) | 一种云平台故障恢复方法和系统 | |
CN106776153B (zh) | 作业控制方法及服务器 | |
CN111475334A (zh) | TiDB数据库的维护方法、装置、计算机设备及存储介质 | |
CN111611104B (zh) | 一种InfluxDB数据备份方法、系统及终端设备 | |
CN102339305A (zh) | 基于偏序关系日志的数据库集群故障恢复方法 | |
CN105204975A (zh) | 基于JavaEE体系架构的性能监控系统及方法 | |
CN102811154B (zh) | 资源获取方法与网络服务器系统 | |
CN115456634A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN109918176B (zh) | 对账方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221107 Address after: 100005 No. 69, inner main street, Dongcheng District, Beijing, Jianguomen Patentee after: AGRICULTURAL BANK OF CHINA Patentee after: Agricultural Bank of China Financial Technology Co.,Ltd. Address before: 100005 No. 69, inner main street, Dongcheng District, Beijing, Jianguomen Patentee before: AGRICULTURAL BANK OF CHINA |