CN108984378A - 一种日志数据异步处理方法及装置 - Google Patents
一种日志数据异步处理方法及装置 Download PDFInfo
- Publication number
- CN108984378A CN108984378A CN201810737031.3A CN201810737031A CN108984378A CN 108984378 A CN108984378 A CN 108984378A CN 201810737031 A CN201810737031 A CN 201810737031A CN 108984378 A CN108984378 A CN 108984378A
- Authority
- CN
- China
- Prior art keywords
- work
- progress
- database
- data
- transaction log
- 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.)
- Granted
Links
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 (10)
1.一种日志数据异步处理方法,其特征在于,基于管理者-工作者模型,应用于异步日志***,所述异步日志***分别与银行***和数据库通信相连,该方法包括:
创建一个daemon进程作为管理者;
根据配置信息创建工作进程,形成工作进程群,并根据所述工作进程群的实时运行情况控制所述工作进程群中工作进程的个数,所述工作进程群包括至少一个工作进程;
多个所述工作进程循环监听接收数据的端口,所述工作进程接收数据后,连接数据库,在所述数据库连接正常时,将接收到的所述银行***的交易日志信息作为交易日志数据写入所述数据库;否则,将所述交易日志数据写入本地日志文件,待所述数据库恢复后,将所述本地日志文件中的所述交易日志数据导入所述数据库。
2.根据权利要求1所述的方法,其特征在于,所述创建一个daemon进程作为管理者的步骤,包括:
创建所述daemon进程的共享内存和互斥信号量,所述共享内存用于加载非可重加载与可重加载的配置信息;
读取配置文件,并将所述配置文件中的配置信息加载至所述共享内存;
设置第一signal处理函数并初始化工作进程池,绑定所述接收数据的端口;
根据所述配置文件中的配置信息创建工作进程群,形成初始工作进程群,所述初始工作进程群包含至少一个工作进程。
3.根据权利要求2所述的方法,其特征在于,还包括:
对所述daemon进程进行主循环的工作过程。
4.根据权利要求3所述的方法,其特征在于,对所述daemon进程进行主循环的工作过程的步骤,包括:
清理所述daemon进程产生的所述工作进程群中已经退出的工作进程;
检查所述daemon进程产生的所述工作进程群中工作进程的数量,根据所述工作进程群的运行情况减少或指数性增加所述工作进程的数量,并检查是否需要替换所有工作进程;
当存在所述工作进程登记超时或所述工作进程运行时间超过预设时长时,设置对应的所述工作进程退出。
5.根据权利要求4所述的方法,其特征在于,还包括:
接收所述daemon进程的程序终止信号或者所述daemon进程的程序结束信号,执行所述daemon进程及所述工作进行群的清理并退出。
6.根据权利要求1所述的方法,其特征在于,所述根据配置信息创建工作进程群的步骤,包括:
创建所述工作进程的共享内存和互斥信号量,对所述工作进程进行初始化,并设置第二signal处理函数,完成单个工作进程的创建与设置工作;
根据所述配置信息中设定的工作进程个数,依据所述创建工作进程的方法,依次创建工作进程,构成所述工作进程群。
7.根据权利要求6所述的方法,其特征在于,还包括:
对所述工作进程进行主循环的工作过程。
8.根据权利要求7所述的方法,其特征在于,对所述工作进程进行主循环的工作过程的步骤,包括:
所述工作进程获取从接收数据端口读取数据的所述互斥信号量;
所述工作进程在所述数据接收端口处接收对应的所述银行***的交易日志信息,接收完成后,释放所述工作进程持有的所述互斥信号量;
连接所述数据库,在所述数据库连接正常时,将所述交易日志信息写入所述数据库;否则,将所述交易日志数据写入所述本地日志文件,待所述数据库恢复后,将所述本地日志文件中的所述交易日志数据导入所述数据库;
所述工作进程更新登记时间,并提供给所述daemon进程进行检查。
9.根据权利要求8所述的方法,其特征在于,还包括:
接收所述工作进程的程序终止信号或者所述工作进程的程序结束信号,执行所述工作进程的强制退出或执行完当前轮次工作后退出,并设置所述工作进程群中所述工作进程对应的结构体的退出标志位。
10.一种日志数据异步处理装置,其特征在于,包括:
第一创建单元,用于创建一个daemon进程作为管理者;
第二创建单元,用于根据配置信息创建工作进程,形成工作进程群,并根据所述工作进程群的实时运行情况控制所述工作进程的个数,所述工作进程群包括至少一个工作进程;
日志数据写入单元,用于多个所述工作进程循环监听接收数据的端口,所述工作进程接收数据后,连接数据库,在所述数据库连接正常时,将接收到的所述银行***的交易日志信息作为交易日志数据写入所述数据库;否则,将所述交易日志数据写入本地日志文件,待所述数据库恢复后,将所述本地日志文件中的所述交易日志数据导入所述数据库。
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 true CN108984378A (zh) | 2018-12-11 |
CN108984378B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347059A (zh) * | 2020-09-04 | 2021-02-09 | 北京浪潮数据技术有限公司 | 存储***数据缩减业务日志管理方法及相关组件 |
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 | 广州华多网络科技有限公司 | 进程内部日志上报的方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347059A (zh) * | 2020-09-04 | 2021-02-09 | 北京浪潮数据技术有限公司 | 存储***数据缩减业务日志管理方法及相关组件 |
CN112347059B (zh) * | 2020-09-04 | 2023-12-22 | 北京浪潮数据技术有限公司 | 存储***数据缩减业务日志管理方法及相关组件 |
Also Published As
Publication number | Publication date |
---|---|
CN108984378B (zh) | 2021-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100361096C (zh) | 交叉比较***和方法 | |
CN100430945C (zh) | 动态切换将事务数据写入盘中的模式的设备和方法 | |
CN103345470B (zh) | 一种数据库容灾方法、***及服务器 | |
CN104468521B (zh) | 在线迁移方法、装置和*** | |
CN101079896B (zh) | 一种构建并行存储***多可用性机制并存架构的方法 | |
CN102088490B (zh) | 数据存储方法、设备和*** | |
EP3382526B1 (en) | Multi-node storage operation | |
CN102761528A (zh) | 数据管理***及方法 | |
CN102033889A (zh) | 分布式数据库并行处理*** | |
CN108334396A (zh) | 一种数据处理方法和装置、资源组的创建方法和装置 | |
CN101667181A (zh) | 一种数据容灾的方法、装置及*** | |
CN103198122B (zh) | 重启内存数据库的方法和装置 | |
CN101441582A (zh) | 计算机数据对象的备份和恢复方法及实现该方法的***和程序产品 | |
CN102932444A (zh) | 金融实时交易***中的负载均衡模块 | |
CN104102535B (zh) | 进程迁移方法和可迁移操作*** | |
CN104160378A (zh) | 用于复杂的分布式计算操作的容错功能 | |
CN100370759C (zh) | 一种热备份***和方法 | |
CN110807064A (zh) | Rac分布式数据库集群***中的数据恢复装置 | |
CN109446169A (zh) | 一种双控磁盘阵列共享文件*** | |
CN106503020A (zh) | 日志数据处理方法及装置 | |
CN111711526A (zh) | 一种区块链节点的共识方法及*** | |
CN100485629C (zh) | 群聚式计算机***高速缓存数据备份处理方法及*** | |
CN106569751A (zh) | 一种多控制器缓存镜像方法及*** | |
CN111061748A (zh) | 一种热点账户的记账方法及装置 | |
CN110535924A (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 |
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 |
|
TR01 | Transfer of patent right |