CN104601489B - 一种日志块传输方法及设备 - Google Patents
一种日志块传输方法及设备 Download PDFInfo
- Publication number
- CN104601489B CN104601489B CN201510053697.3A CN201510053697A CN104601489B CN 104601489 B CN104601489 B CN 104601489B CN 201510053697 A CN201510053697 A CN 201510053697A CN 104601489 B CN104601489 B CN 104601489B
- Authority
- CN
- China
- Prior art keywords
- log blocks
- transmission channel
- transmission
- daily record
- 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.)
- Active
Links
Abstract
本发明公开了一种日志块传输方法及设备,涉及通信技术领域,能够解决现有技术中多个传输通道共享一个缓存队列,因一个传输通道发生堵塞,导致的系统日志块无法继续传输的问题。具体方案为:当检测到系统日志任务在通过某一传输通道传输日志块失败时,系统创建新的系统日志任务,通过创建新的系统日志任务将缓存队列中当前待传输的日志块向其对应的传输通道传输。本发明用于日志块传输。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种日志块传输方法及设备。
背景技术
在网络系统中,系统日志任务负责将设备产生的日志块分别显示在终端、写入日志文件、上传至日志服务器。由于终端或服务器的数目可能不止一个,所以,需要通过多个传输通道将日志块同时输出到多个终端或者多个服务器。
现有技术中,在通过多个传输通道同时进行日志块输出时,由于多个传输通道共享一个缓存队列,需要输出的日志块是以队列的方式保存在该缓存队列中的。因此,如果多个传输通道中任意一个传输通道发生堵塞,系统日志任务接收不到终端或服务器返回的确认消息,该日志块则会滞留在缓存队列中,导致系统日志块在一段时间内无法向其它终端或日志服务器进行输出,甚至可能导致系统后续产生的日志块由于系统日志缓存不足而丢失。
发明内容
本发明的实施例提供一种日志块传输方法及设备,以解决多个传输通道共享一个缓存队列,因一个传输通道发生堵塞,导致的系统日志块无法继续传输的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明提供了一种日志块传输方法,应用于多个传输通道共享一个缓存队列的场景中,所述缓存队列用于存储日志块,每个日志块包括指示其对应传输通道的通道标识,所述方法包括:
当检测到系统日志任务在通过某一传输通道传输日志块失败时,系统创建新的系统日志任务,通过创建新的系统日志任务将缓存队列中当前待传输的日志块向其对应的传输通道传输。
结合第一方面,在第一种可能的实现方式中,所述当检测到系统日志任务在通过某一传输通道传输日志块失败时,系统创建新的系统日志任务,具体包括如下步骤:
系统实时记录各个传输通道传输成功的日志块的总个数以及当前正在传输的日志块所对应的传输通道;
若在预设时间段内,记录的所述传输成功的日志块总个数未发生变化,且所述缓存队列中存储有日志块,则判断系统日志任务阻塞在当前正在传输的日志块对应的传输通道上,关闭所述传输通道的日志输出功能。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述实时记录各个传输通道传输成功的日志块的总个数包括:
设置日志块心跳计数器,所述缓存队列中存储的一个日志块在其对应的传输通道中成功传输后,所述日志块心跳计数器自加。
结合第一方面的第一种可能的实现方式或第二种可能的实现方式,在第三种可能的实现方式中,所述判断系统日志任务阻塞在当前传输的日志块对应的传输通道上包括:
设置标识当前正在传输日志块的传输通道的日志输出标识,所述日志输出标识的初始值为当前正在传输的日志块对应的传输通道的通道标识;
若判断所述日志输出标识的值为当前正在传输的日志块对应的传输通道的通道标识,且所述日志输出标识的值未发生变化,则判断系统日志任务阻塞在当前正在传输的日志块对应的传输通道上。
第二方面,本发明提供了一种日志块传输设备,包括多个传输通道和一个缓存队列,所述多个传输通道共享一个缓存队列,所述缓存队列用于存储日志块,每个日志块包括指示其对应传输通道的通道标识,所述设备包括:
日志阻塞检测模块,用于检测系统统日志任务在通过某一传输通道传输日志块时是否成功;
日志输出恢复模块,用于当所述日志阻塞检测模块检测到系统日志任务在通过某一传输通道传输日志块失败时,创建新的系统日志任务,通过创建新的系统日志任务将缓存队列中当前待传输的日志块向其对应的传输通道传输。
结合第二方面,在第一种可能的实现方式中,所述日志阻塞检测模块设备还具体包括:
记录单元,用于实时记录各个传输通道传输成功的日志块的总个数以及当前正在传输的日志块所对应的传输通道;
判断单元,用于若在预设时间段内,判断记录单元记录的传输成功的日志块的总个数未发生变化,且所述缓存队列中存储有日志块,则判断系统日志任务阻塞在当前传输的日志块对应的传输通道上,关闭该传输通道的日志输出功能。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,
所述记录单元包括日志块心跳计数器,用于实时记录各个传输通道传输成功的日志块的总个数;具体用于:在所述缓存队列中存储的一个日志块在其对应的传输通道中成功传输后,所述日志块心跳计数器自加。
结合第二方面的第一种可能的实现方式或第二种可能的实现方式,在第三种可能的实现方式中,所述设备还包括:
日志输出标识模块,用于设置标识当前正在传输日志块的传输通道的日志输出标识,所述日志输出标识的初始值为当前正在传输的日志块对应的传输通道的通道标识;
所述判断单元,具体还用于若判断所述传输通道的日志输出标识的值为当前正在传输的日志块对应的传输通道的通道标识,且所述日志输出标识的值未发生变化,则确定所述当前正在传输的日志块传输失败;则判断系统日志任务阻塞在当前正在传输的日志块对应的传输通道上对应的传输通道传输上。
本发明实施例提供的日志块传输方法及设备,当检测到系统日志任务在通过某一传输通道传输日志块失败时,系统创建新的系统日志任务,通过创建新的系统日志任务将缓存队列中当前待传输的日志块向其对应的传输通道传输。这样一来,在对缓存队列中的日志块进行传输时,因为待传输的日志块是以一个队列的形式存在于缓存队列中,是一个一个进行传输,所以即使系统日志任务在通过某一传输通道传输日志块失败,该日志块不能通过传输通道进行传输,可以创建新的日志任务,再对缓存队列中存储的当前待传输的日志块进行处理,就可以解决现有技术中多个传输通道共享一个缓存队列,因一个传输通道发生堵塞,导致的系统日志块无法继续传输的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种日志块传输方法流程示意图;
图2A本发明实施例提供的一种日志块传输方法流程示意图;
图2B本发明实施例提供的另一种日志块传输方法流程示意图;
图2C本发明实施例提供的又一种日志块传输方法流程示意图;
图2D本发明实施例提供的再一种日志块传输方法流程示意图;
图2E本发明另一实施例提供的一种日志块传输方法流程示意图;
图2F本发明另一实施例提供的另一种日志块传输方法流程示意图;
图2G本发明另一实施例提供的又一种日志块传输方法流程示意图;
图2H本发明另一实施例提供的再一种日志块传输方法流程示意图;
图2I本发明又一实施例提供的一种日志块传输方法流程示意图;
图3为本发明实施例提供的一种日志传输设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种日志块传输方法,优选的,应用于多个传输通道共享一个缓存队列的场景中,缓存队列用于存储日志块,每个日志块包括指示其对应传输通道的通道标识。在通过多个传输通道同时进行日志块输出时,由于多个传输通道共享一个缓存队列,需要输出的日志块可以以队列的方式保存在该缓存队列中,因此,如果多个传输通道中任意一个传输通道发生堵塞,则在该传输通道上传输的日志块就会滞留在队列中,导致系统日志块在一段时间内无法向其它终端或日志服务器进行输出,甚至可能导致系统后续产生的日志块由于系统日志缓存不足而丢失。
本发明实施例提供的日志块传输方法,如图1所示,可以包括以下步骤:
S101、当检测到系统日志任务在通过某一传输通道传输日志块失败时,系统创建新的系统日志任务,通过创建新的系统日志任务将缓存队列中当前待传输的日志块向其对应的传输通道传输。
在进行日志传输时,日志以日志块的形式在传输通道中进行传输。其中,缓存队列用于存储日志块,每个日志块包括指示其对应传输通道的通道标识。
优选地,在上述实施例中,步骤S101的“当检测到系统日志任务在通过某一传输通道传输日志块失败时,系统创建新的系统日志任务”具体包括如下步骤:
系统实时记录各个传输通道传输成功的日志块的总个数以及当前正在传输的日志块所对应的传输通道;
若在预设时间段内,记录的传输成功的日志块总个数未发生变化,且缓存队列中存储有日志块,则判断系统日志任务阻塞在当前正在传输的日志块对应的传输通道上,关闭传输通道的日志输出功能。
本发明实施例提供的日志块传输方法,当检测到系统日志任务在通过某一传输通道传输日志块失败时,系统创建新的系统日志任务,通过创建新的系统日志任务将缓存队列中当前待传输的日志块向其对应的传输通道传输。这样一来,在对缓存队列中的日志块进行传输时,因为待传输的日志块是以一个队列的形式存在于缓存队列中,是一个一个进行传输,所以即使系统日志任务在通过某一传输通道传输日志块失败,该日志块不能通过传输通道进行传输,可以创建新的日志任务,再对缓存队列中存储的当前待传输的日志块进行处理,就可以解决现有技术中多个传输通道共享一个缓存队列,因一个传输通道发生堵塞,导致的系统日志块无法继续传输的问题。
本发明另一实施例提供的日志块传输方法,应用于多个传输通道共享一个缓存队列的场景中。缓存队列用于存储日志块,每个日志块包括指示其对应传输通道的通道标识。下面用图2A-图2I对本实施例方案进行说明。如图2A所示,假设有四个传输通道用来传输日志块:传输通道1,传输通道2,传输通道3及传输通道4(四个传输通道只是举例,本实施例并不限于此)。缓存队列中存储有日志块A,日志块B,日志块C,日志块D及日志块E。其中,“日志块A(1、2)”表示日志块A要通过传输通道1及传输通道2传输,“1”、“2”为传输通道1及传输通道2的通道标识(此种表示方式,只是在本实施例中的举例,本实施例并不限于此),“日志块B(3、4)”表示日志块B要通过传输通道3及传输通道4传输,“日志块C(1、3)”表示日志块C要通过传输通道1及传输通道3传输,“日志块D(2)”表示日志块D要通过传输通道2传输,“日志块E(3、4)”表示日志块F要通过传输通道3及传输通道4传输。
本实施例的方法过程可以为:
S201、传输日志块A。
优选地,在对缓存队列中的日志块进行传输之前,可以设置一日志块心跳计数器,用来实时记录各个传输通道传输成功的日志块的总个数,当缓存队列中存储的一个日志块在其对应的传输通道中成功传输后,日志块心跳计数器自加。例如,初始时,日志块心跳计数器的值可以是0,也可以是一个随机值,本实施例中假设日志块心跳计数器的初始值为0,当日志块通过其对应的传输通道传输之后(即传输成功后),日志块心跳计数器自加1。
优选地,再设置标识当前正在传输日志块的传输通道的日志输出标识。有日志块要传输时,日志输出标识的初始值为当前正在传输的日志块对应的传输通道的通道标识,如果当前正在传输的日志块在其对应的传输通道传输成功,日志输出标识从该传输通道标识变为NULL或一特定值(本实施例中假设为NULL),如果当前正在传输的日志块在其对应的传输通道传输失败,则日志输出标识保持通道标识不变。
优选地,再设置一通道阻塞记录块,用来记录发生阻塞的传输通道的通道标识,当某一通道阻塞解除时,其通道标识会从通道阻塞记录块中删除。各个传输通道均未阻塞时,该通道阻塞记录块的记录值可以为NULL。
如图2A所示,日志块A传输前——即初始时,日志块心跳计数器=0,日志输出标识=NULL,通道阻塞记录块=NULL。日志块A为缓存队列中第一个待传输的日志块,即当前待传输的日志块,且日志块A包含传输通道1及传输通道2的通道标识,则日志块A要分别通过传输通道1及传输通道2进行传输。
首先,利用传输通道1传输日志块A。传输前,先通过通道阻塞记录块确定传输日志块A的通道是否发生了阻塞。由于通道阻塞记录块=NULL,表明当前没有传输通道发生阻塞,可以继续进行传输操作。利用传输通道1传输日志块A时,日志块心跳计数器=0,日志输出标识为日志块A当前的传输通道的通道标识,即日志输出标识=1,通道阻塞记录块=NULL。传输通道1正常,日志块A利用传输通道1传输成功后,日志块心跳计数器=0,日志输出标识=NULL,通道阻塞记录块=NULL。
接着,如图2B所示,利用传输通道2传输日志块A。此时,日志块心跳计数器=0。日志输出标识为日志块A当前的传输通道的通道标识,即日志输出标识=2,通道阻塞记录块=NULL。传输通道2正常,日志块A利用传输通道2传输成功后,即日志块A成功传输后,日志块心跳计数器自加1,即日志块心跳计数器=1,日志输出标识=NULL,通道阻塞记录块=NULL。
S202、传输日志块B。
如图2C所示,日志块B为缓存队列中当前待传输的日志块,日志块B包含传输通道3及传输通道4的通道标识,则日志块B分别通过传输通道3及传输通道4进行传输。
首先,利用传输通道3传输日志块B。传输前,先通过通道阻塞记录块确定传输日志块B的通道是否发生了阻塞。由于通道阻塞记录块=NULL,表明当前没有传输通道发生阻塞,可以继续进行传输操作。利用传输通道3传输日志块B时,日志块心跳计数器=1,日志输出标识为日志块B当前的传输通道的通道标识,即日志输出标识=3,通道阻塞记录块=NULL。传输通道3正常,日志块B利用传输通道3传输成功后,日志块心跳计数器=1,日志输出标识=NULL,通道阻塞记录块=NULL。
接着,如图2D所示,利用传输通道4传输日志块B。此时,日志块心跳计数器=1。日志输出标识为日志块B当前的传输通道的通道标识,即日志输出标识=4,通道阻塞记录块=NULL。传输通道4正常,日志块B利用传输通道4传输成功后,即日志块B成功传输后,日志块心跳计数器自加1,即日志块心跳计数器=2,日志输出标识=NULL,通道阻塞记录块=NULL。
S203、传输日志块C。
如图2E所示,日志块C为缓存队列中第三个待传输的日志块,日志块C包含传输通道1及传输通道3的通道标识,则日志块C分别通过传输通道1及传输通道3进行传输。
首先,利用传输通道1传输日志块C。传输前,先通过通道阻塞记录块确定传输日志块C的通道是否发生了阻塞。由于通道阻塞记录块=NULL,表明当前没有传输通道发生阻塞,可以继续进行传输操作。利用传输通道1传输日志块C时,日志块心跳计数器=2,日志输出标识为日志块C当前的传输通道的通道标识,即日志输出标识=1,通道阻塞记录块=NULL。传输通道1正常,日志块C利用传输通道1传输成功后,日志块心跳计数器=2,日志输出标识=NULL,通道阻塞记录块=NULL。
接着,如图2F所示,利用传输通道3传输日志块C。此时,日志块心跳计数器=2。日志输出标识为日志块C当前的传输通道的通道标识,即日志输出标识=3,通道阻塞记录块=NULL。此时,传输通道3发生阻塞,日志块C不能正常从传输通道3传输出去,日志块C在缓存队列中滞留。日志块C利用传输通道3传输失败后,日志块心跳计数器不变,仍为2,日志输出标识也仍为3。
由于系统实时记录各个传输通道传输成功的日志块的总个数以及当前正在传输的日志块所对应的传输通道;若在预设时间段内,记录的传输成功的日志块总个数未发生变化,且缓存队列中存储有日志块,则判断系统日志任务阻塞在当前正在传输的日志块对应的传输通道上,关闭传输通道的日志输出功能。例如本实施例中,此时日志块心跳计数器一直处于2,且确定缓存队列中存储有日志块(如日志块D、E、F),则确定有传输通道发生阻塞,需进一步确定发生阻塞的传输通道。
进一步地,若判断日志输出标识的值为当前正在传输的日志块对应的传输通道的通道标识,且日志输出标识的值未发生变化,则判断系统日志任务阻塞在当前正在传输的日志块对应的传输通道上。例如本实施例中,根据日志输出标识=3,即可确定当前是传输通道3发生了阻塞,将其记录在通道阻塞记录块中,即通道阻塞记录块=3。
当检测到系统日志任务在通过某一传输通道传输日志块失败时,系统创建新的系统日志任务,通过创建新的系统日志任务将缓存队列中当前待传输的日志块向其对应的传输通道传输。例如本实施例中,当检测到系统日志任务在通过传输通道3传输日志块C失败时,系统创建新的系统日志任务,通过创建新的系统日志任务将将缓存队列中存储的日志块C之后的日志块D向其对应的传输通道传输。
S204、传输日志块D。
如图2G所示,日志块D包含传输通道2的通道标识,则日志块D通过传输通道2进行传输。
利用传输通道2传输日志块D。传输前,先通过通道阻塞记录块确定传输日志块D的通道是否发生了阻塞。由于通道阻塞记录块=3,表明当前传输通道3发生阻塞,与传输日志块D的传输通道不同,可以继续进行传输操作。利用传输通道2传输日志块D时,日志块心跳计数器=2,日志输出标识为日志块D当前的传输通道的通道标识,即日志输出标识=2,通道阻塞记录块=3。传输通道2正常,日志块D利用传输通道2传输成功后,日志块心跳计数器=3,日志输出标识=NULL,通道阻塞记录块=3。
S205、传输日志块E。
在步骤S205之前,假设传输通道3的阻塞解除,则在收到传输通道3阻塞解除消息后,即之前阻塞的系统日志任务的阻塞状态解除,将传输通道3的通道标识从通道阻塞记录块中删除,通道阻塞记录块恢复为NULL,同时,恢复之前阻塞的系统日志任务的日志输出功能。
如图2H所示,日志块E包含传输通道3的通道标识及传输通道4的通道标识,则日志块E分别通过传输通道3及传输通道4进行传输。
在传输日志块E前,先通过通道阻塞记录块确定传输日志块E的通道是否发生了阻塞。由于通道阻塞记录块=NULL,表明当前没有传输通道发生阻塞,可以继续进行传输操作。利用传输通道3传输日志块E时,日志块心跳计数器=3,日志输出标识为日志块E当前的传输通道的通道标识,即日志输出标识=3,通道阻塞记录块=NULL。传输通道3正常,日志块E利用传输通道3传输成功后,日志块心跳计数器=3,日志输出标识=NULL,通道阻塞记录块=NULL。
接着,如图2I所示,利用传输通道4传输日志块E。此时,日志块心跳计数器=3。日志输出标识为日志块E当前的传输通道的通道标识,即日志输出标识=4,通道阻塞记录块=NULL。传输通道4正常,日志块E利用传输通道4传输成功后——即日志块E成功传输后,日志块心跳计数器自加1,即日志块心跳计数器=4,日志输出标识=NULL,通道阻塞记录块=NULL。
需要说明的是,本实施例中日志块心跳计数器、日志输出标识、通道阻塞记录块的记录顺序、记录方式、以及记录的具体值只是举例,本实施例并不限于此。
本发明实施例提供的日志块传输方法,当检测到系统日志任务在通过某一传输通道传输日志块失败时,系统创建新的系统日志任务,通过创建新的系统日志任务将缓存队列中当前待传输的日志块向其对应的传输通道传输。这样一来,在对缓存队列中的日志块进行传输时,因为待传输的日志块是以一个队列的形式存在于缓存队列中,是一个一个进行传输,所以即使系统日志任务在通过某一传输通道传输日志块失败,该日志块不能通过传输通道进行传输,可以创建新的日志任务,再对缓存队列中存储的当前待传输的日志块进行处理,就可以解决现有技术中多个传输通道共享一个缓存队列,因一个传输通道发生堵塞,导致的系统日志块无法继续传输的问题。
基于图1对应的实施例,本发明实施例提供一种日志传输设备30,用于执行图1对应的实施例。本发明提供的日志传输设备30包括多个传输通道和一个缓存队列,多个传输通道共享一个缓存队列,缓存队列用于存储日志块,每个日志块包括指示其对应传输通道的通道标识,该日志块传输设备包括:
日志阻塞检测模块301,用于检测系统统日志任务在通过某一传输通道传输日志块时是否成功。
日志输出恢复模块302,用于当日志阻塞检测模块301检测到系统日志任务在通过某一传输通道传输日志块失败时,创建新的系统日志任务,通过创建新的系统日志任务将缓存队列中当前待传输的日志块向其对应的传输通道传输。
可选的,日志阻塞检测模块还具体包括:
记录单元3011,用于实时记录各个传输通道传输成功的日志块的总个数以及当前正在传输的日志块所对应的传输通道。
判断单元3012,用于若在预设时间段内,判断记录单元3011记录的传输成功的日志块的总个数未发生变化,且缓存队列中存储有日志块,则判断系统日志任务阻塞在当前传输的日志块对应的传输通道上,关闭该传输通道的日志输出功能。
可选的,记录单元3011包括日志块心跳计数器,用于实时记录各个传输通道传输成功的日志块的总个数;具体用于:在缓存队列中存储的一个日志块在其对应的传输通道中成功传输后,日志块心跳计数器自加。
可选的,该日志块传输设备还包括:
日志输出标识模块303,用于设置标识当前正在传输日志块的传输通道的日志输出标识,日志输出标识的初始值为当前正在传输的日志块对应的传输通道的通道标识;
判断单元3012,具体还用于若判断传输通道的日志输出标识的值为当前正在传输的日志块对应的传输通道的通道标识,且日志输出标识的值未发生变化,则确定当前正在传输的日志块传输失败;则判断系统日志任务阻塞在当前正在传输的日志块对应的传输通道上对应的传输通道传输上。
本发明实施例提供的日志传输设备,日志阻塞检测模块用于检测系统统日志任务在通过某一传输通道传输日志块时是否成功;日志输出恢复模块用于当日志阻塞检测模块检测到系统日志任务在通过某一传输通道传输日志块失败时,创建新的系统日志任务,通过创建新的系统日志任务将缓存队列中当前待传输的日志块向其对应的传输通道传输。这样一来,在对缓存队列中的日志块进行传输时,因为待传输的日志块是以一个队列的形式存在于缓存队列中,是一个一个进行传输,所以即使系统日志任务在通过某一传输通道传输日志块失败,该日志块不能通过传输通道进行传输,可以创建新的日志任务,再对缓存队列中存储的当前待传输的日志块进行处理,就可以解决现有技术中多个传输通道共享一个缓存队列,因一个传输通道发生堵塞,导致的系统日志块无法继续传输的问题。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种日志块传输方法,应用于多个传输通道共享一个缓存队列的场景中,其特征在于,所述缓存队列用于存储日志块,每个日志块包括指示其对应传输通道的通道标识,所述方法包括:
当检测到系统日志任务在通过某一传输通道传输日志块失败时,关闭当前正在传输的日志块对应的传输通道的日志输出功能,并创建新的系统日志任务,通过创建新的系统日志任务将缓存队列中当前正在传输的日志块之后的待传输的日志块向其对应的非阻塞传输通道传输。
2.根据权利要求1所述的方法,其特征在于,所述当检测到系统日志任务在通过某一传输通道传输日志块失败时,关闭当前正在传输的日志块对应的传输通道的日志输出功能,并创建新的系统日志任务,具体包括如下步骤:
系统实时记录各个传输通道传输成功的日志块的总个数以及当前正在传输的日志块所对应的传输通道;
若在预设时间段内,记录的所述传输成功的日志块总个数未发生变化,且所述缓存队列中存储有日志块,则判断系统日志任务阻塞在当前正在传输的日志块对应的传输通道上,关闭所述当前正在传输的日志块对应的传输通道的日志输出功能。
3.根据权利要求2所述的方法,其特征在于,所述实时记录各个传输通道传输成功的日志块的总个数包括:
设置日志块心跳计数器,所述缓存队列中存储的一个日志块在其对应的传输通道中成功传输后,所述日志块心跳计数器自加。
4.根据权利要求2或3所述的方法,其特征在于,所述判断系统日志任务阻塞在当前正在传输的日志块对应的传输通道上包括:
设置标识当前正在传输日志块的传输通道的日志输出标识,所述日志输出标识的初始值为当前正在传输的日志块对应的传输通道的通道标识;
若判断所述日志输出标识的值为当前正在传输的日志块对应的传输通道的通道标识,且在预设时间段内所述日志输出标识的值未发生变化,则判断系统日志任务阻塞在当前正在传输的日志块对应的传输通道上。
5.一种日志块传输设备,包括多个传输通道和一个缓存队列,所述多个传输通道共享一个缓存队列,所述缓存队列用于存储日志块,每个日志块包括指示其对应传输通道的通道标识,其特征在于,所述设备包括:
日志阻塞检测模块,用于检测系统日志任务在通过某一传输通道传输日志块时是否传输成功;
日志输出恢复模块,用于当所述日志阻塞检测模块检测到系统日志任务在通过某一传输通道传输日志块失败时,关闭当前正在传输的日志块对应的传输通道的日志输出功能,并创建新的系统日志任务,通过创建新的系统日志任务将缓存队列中当前正在传输的日志块之后的待传输的日志块向其对应的非阻塞传输通道传输。
6.根据权利要求5所述的设备,其特征在于,所述日志阻塞检测模块还具体包括:
记录单元,用于实时记录各个传输通道传输成功的日志块的总个数以及当前正在传输的日志块所对应的传输通道;
判断单元,用于若在预设时间段内,判断记录单元记录的传输成功的日志块的总个数未发生变化,且所述缓存队列中存储有日志块,则判断系统日志任务阻塞在当前正在传输的日志块对应的传输通道上,关闭所述当前正在传输的日志块对应的传输通道的日志输出功能。
7.根据权利要求6所述的设备,其特征在于:
所述记录单元包括日志块心跳计数器;
所述日志块心跳计数器,用于实时记录各个传输通道传输成功的日志块的总个数;
所述记录单元具体用于:在所述缓存队列中存储的一个日志块在其对应的传输通道中成功传输后,所述日志块心跳计数器自加。
8.根据权利要求6或7所述的设备,其特征在于,所述设备还包括:
日志输出标识模块,用于设置标识当前正在传输日志块的传输通道的日志输出标识,所述日志输出标识的初始值为当前正在传输的日志块对应的传输通道的通道标识;
所述判断单元,具体还用于若判断所述传输通道的日志输出标识的值为当前正在传输的日志块对应的传输通道的通道标识,且在预设时间段内所述日志输出标识的值未发生变化,则判断系统日志任务阻塞在当前正在传输的日志块对应的传输通道上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510053697.3A CN104601489B (zh) | 2015-02-02 | 2015-02-02 | 一种日志块传输方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510053697.3A CN104601489B (zh) | 2015-02-02 | 2015-02-02 | 一种日志块传输方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104601489A CN104601489A (zh) | 2015-05-06 |
CN104601489B true CN104601489B (zh) | 2018-03-27 |
Family
ID=53127006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510053697.3A Active CN104601489B (zh) | 2015-02-02 | 2015-02-02 | 一种日志块传输方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104601489B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273266B (zh) * | 2017-06-09 | 2020-09-29 | 上海艾融软件股份有限公司 | 一种应用日志的处理方法及装置 |
CN108989314A (zh) * | 2018-07-20 | 2018-12-11 | 北京木瓜移动科技股份有限公司 | 一种流式数据传输、处理方法及装置 |
CN110245059B (zh) * | 2019-05-20 | 2022-11-08 | 平安普惠企业管理有限公司 | 一种数据处理方法、设备及存储介质 |
CN111858536A (zh) * | 2020-08-03 | 2020-10-30 | 聚好看科技股份有限公司 | 一种业务日志传输方法及终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699897A (zh) * | 2009-10-12 | 2010-04-28 | 中兴通讯股份有限公司 | 一种利用缓存进行数据补报的方法和装置 |
CN102891873A (zh) * | 2011-07-21 | 2013-01-23 | 腾讯科技(深圳)有限公司 | 一种存储日志数据的方法及日志数据存储系统 |
CN103036961A (zh) * | 2012-12-07 | 2013-04-10 | 蓝盾信息安全技术股份有限公司 | 一种日志分布式收集及存储方法 |
-
2015
- 2015-02-02 CN CN201510053697.3A patent/CN104601489B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699897A (zh) * | 2009-10-12 | 2010-04-28 | 中兴通讯股份有限公司 | 一种利用缓存进行数据补报的方法和装置 |
CN102891873A (zh) * | 2011-07-21 | 2013-01-23 | 腾讯科技(深圳)有限公司 | 一种存储日志数据的方法及日志数据存储系统 |
CN103036961A (zh) * | 2012-12-07 | 2013-04-10 | 蓝盾信息安全技术股份有限公司 | 一种日志分布式收集及存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104601489A (zh) | 2015-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104601489B (zh) | 一种日志块传输方法及设备 | |
CN102394796A (zh) | 链路时延检测方法、源端、宿端及系统 | |
CN106506310B (zh) | 一种列车车辆网络报文传输路由确定方法及装置 | |
CN102143018B (zh) | 消息循环的检测方法、路由代理设备及组网系统 | |
CN107948092A (zh) | 实时数据采集方法和实时数据采集系统 | |
CN104506548B (zh) | 一种数据包重定向装置、虚拟机安全保护方法及系统 | |
CN106502814A (zh) | 一种记录pcie设备错误信息的方法及装置 | |
CN108040039A (zh) | 一种识别攻击源信息的方法、装置、设备及系统 | |
CN108470039A (zh) | 区块链中的数据处理方法和装置 | |
CN107294767A (zh) | 一种直播网络传输故障监测方法及系统 | |
CN106980647A (zh) | 一种分布式文件系统数据分布方法及装置 | |
CN104283730B (zh) | 环路检测方法和系统 | |
CN104539348B (zh) | Pon系统链路环回检测的方法及装置 | |
CN106791679A (zh) | 一种视频传输路径的确定方法及装置 | |
CN106656653A (zh) | 注册与保活处理方法及装置 | |
CN107025737A (zh) | 一种自助服务终端安防系统安全联动方法和系统 | |
CN106648949B (zh) | 一种存储系统及数据传输方法 | |
CN102571783A (zh) | 钓鱼网站检测方法、装置及系统、网络站点 | |
CN107391036A (zh) | 一种存储的vpd信息访问方法及系统 | |
CN106878990A (zh) | 一种信息推送方法及装置 | |
CN104506239B (zh) | 光模块以及用于光模块的信息传输方法 | |
CN104283724B (zh) | 一种聚合组状态的管理方法和设备 | |
CN103618630B (zh) | 一种基于双上行链路的数据安全传输方法及设备 | |
CN106446311A (zh) | Cpu告警电路及告警方法 | |
CN103312621A (zh) | 流量控制系统和流量控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |