CN111866130B - 基于zookeeper的日志处理方法、装置、计算机设备和存储介质 - Google Patents
基于zookeeper的日志处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111866130B CN111866130B CN202010698574.6A CN202010698574A CN111866130B CN 111866130 B CN111866130 B CN 111866130B CN 202010698574 A CN202010698574 A CN 202010698574A CN 111866130 B CN111866130 B CN 111866130B
- Authority
- CN
- China
- Prior art keywords
- task
- server
- list
- registration server
- zookeeper
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 41
- 238000012545 processing Methods 0.000 claims description 140
- 238000012544 monitoring process Methods 0.000 claims description 20
- 230000000903 blocking effect Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000012958 reprocessing Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及云技术领域,提供一种基于zookeeper的日志处理方法、装置、计算机设备和存储介质。所述方法包括:zookeeper主节点监听失败任务列表从节点,当捕捉到所述失败任务列表从节点接收到服务器列表从节点中的注册服务器提交的失败日志时,查询所述服务器列表从节点中当前负载最低的注册服务器;所述zookeeper主节点将所述失败日志分配至任务实施列表从节点中与当前负载最低的注册服务器对应的任务子节点中,使得当前负载最低的注册服务器确定所述失败日志属于本地任务时,处理所述失败日志。采用本方法能够提高效率。
Description
技术领域
本申请涉及云技术领域,特别是涉及一种基于zookeeper的日志处理方法、装置、计算机设备和存储介质。
背景技术
日志是用于记录计算机系统的运行状态的记录,通过分析日志提取的重要价值信息可以用于分析人类行为、安全防患和修复缺陷等。由于日志通常都是海量和复杂的,并且每一个计算机系统所产生的日志又各不相同。所以,高效地对日志进行管理处理都是极大的技术难度,传统大多通过开发日志管理平台专用于对日志进行管理处理。
然而,现有的日志管理平台虽然在日志处理和存储都有自己的特点,但是对于处理失败日志消息大多都是通过队列存储重试或重新发送至输入端。但是,由于这种处理方式只是单纯的进行重试动作,容易导致效率低下并且影响后续消息的处理,进而降低了整个平台的效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高效率的基于zookeeper方法、装置、计算机设备和存储介质。
一种基于zookeeper的日志处理方法,所述方法包括:
zookeeper主节点监听失败任务列表从节点,当捕捉到所述失败任务列表从节点接收到服务器列表从节点中的注册服务器提交的失败日志时,查询所述服务器列表从节点中当前负载最低的注册服务器;
所述zookeeper主节点将所述失败日志分配至任务实施列表从节点中与当前负载最低的注册服务器对应的任务子节点中,使得当前负载最低的注册服务器确定所述失败日志属于本地任务时,处理所述失败日志。
在其中一个实施例中,所述方法还包括:
所述zookeeper主节点监听任务状态列表从节点,通过监听获取所述任务状态列表从节点接收的处理信息;所述处理信息由所述服务器列表从节点中注册服务器根据处理所述失败日志的处理结果生成和发送;
当所述zookeeper主节点确定所述处理信息为处理失败信息时,返回查询所述服务器列表从节点中当前负载最低的注册服务器的步骤。
在其中一个实施例中,所述方法还包括:
当所述zookeeper主节点确定所述处理信息为处理成功信息时,将所述任务实施列表从节点中的所述失败日志标记为已处理,并从所述失败任务列表从节点中将所述失败日志删除。
在其中一个实施例中,所述查询所述服务器列表从节点中当前负载最低的注册服务器,包括:
从所述任务实施列表从节点中的各所述任务子节点中查询所述服务器列表从节点中各所述注册服务器当前的任务量;
将所述任务量最少的所述任务子节点对应的注册服务器作为所述服务器列表从节点当前负载最低的注册服务器。
一种基于zookeeper的日志处理装置,所述装置包括:
服务器列表从节点,用于管理注册服务器;
失败任务列表从节点,用于接收所述服务器列表从节点中的所述注册服务器提交的失败日志;
zookeeper主节点,用于监听所述失败任务列表从节点,当捕捉到所述失败任务列表从节点接收到所述失败日志时,查询所述服务器列表从节点中当前负载最低的注册服务器;以及,将所述失败日志分配至任务实施列表从节点中与当前负载最低的注册服务器对应的任务子节点中,使得当前负载最低的注册服务器确定所述失败日志属于本地任务时,处理所述失败日志;
所述任务实施列表从节点,用于接收zookeeper主节点分配的失败日志。
在其中一个实施例中,所述装置还包括:
任务状态列表从节点,用于接收所述服务器列表从节点中注册服务器根据处理所述失败日志的处理结果生成和发送的处理信息;
所述zookeeper主节点还用于,监听所述任务状态列表从节点获取所述任务状态列表从节点接收的处理信息;当确定所述处理信息为处理失败信息时,返回查询所述服务器列表从节点中当前负载最低的注册服务器的步骤。
一种基于zookeeper的日志处理系统,所述系统包括zookeeper服务器和注册服务器,所述注册服务器为注册到所述zookeeper服务器中服务器列表从节点的日志处理服务器;
所述注册服务器,用于当处理日志失败时,将处理失败的日志通过阻塞队列提交到zookeeper服务器中的失败任务列表从节点;
所述zookeeper服务器,用于利用zookeeper主节点监听所述失败任务列表从节点,当zookeeper主节点捕捉到所述失败任务列表从节点接收到所述失败日志时,查询所述服务器列表从节点中当前负载最低的注册服务器;以及,利用所述zookeeper主节点将所述失败日志分配至任务实施列表从节点中与当前负载最低的注册服务器对应的任务子节点中;
所述注册服务器还用于,当确定所述zookeeper服务器分配至对应的所述任务子节点中的所述失败日志属于本地任务时,处理所述失败日志。
在其中一个实施例中,所述注册服务器还用于,
将处理失败的失败日志写入阻塞队列中;
当确定所述阻塞队列满足提交要求时,将所述阻塞队列中的所述失败日志提交至所述zookeeper服务器的所述失败任务列表从节点中。
在其中一个实施例中,所述注册服务器还用于,
监听确定所述zookeeper服务器将所述失败日志分配至对应的任务子节点时,获取所述失败日志对应的任务标识;所述任务标识由所述zookeeper服务器的zookeeper主节点根据确定的当前负载最低的注册服务器生成;
根据所述任务标识确定所述失败日志属于本地任务时,处理所述失败日志。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下上述任一项所述基于zookeeper的日志处理方法的步骤。
上述基于zookeeper的日志处理方法、装置、计算机设备和存储介质,通过zookeeper主节点监听捕捉失败任务列表从节点接收到服务器列表从节点中的注册服务器提交的失败日志时,查询服务器列表从节点中当前负载最低的注册服务器,进而将失败日志分配至任务实施列表从节点中与当前负载最低的注册服务器对应的任务子节点中,使得当前负载最低的注册服务器确定失败日志属于本地任务时,处理失败日志。该方法通过zookeeper服务的主从节点实现分布式处理失败日志,使得将处理失败的日志快速发送到zookeeper,进而通过zookeeper服务选择负载最低的服务器去处理失败日志,避免在负载较高的机器上做无谓的等待和重试,有效提升负载均衡,提高处理的效率。
附图说明
图1为一个实施例中基于zookeeper的日志处理系统;
图2为一个实施例中基于zookeeper的日志方法的流程示意图;
图3为另一个实施例中基于zookeeper的日志方法的流程示意图;
图4为一个实施例中zookeeper服务的主从节点工作流程示意图;
图5为一个实施例中基于zookeeper的日志装置的结构框图;
图6为另一个实施例中基于zookeeper的日志装置的结构框图;
图7为一个实施例中zookeeper服务器的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于zookeeper的日志处理方法,可以应用于如图1所示的基于zookeeper的日志处理系统中。其中,注册服务器104是注册至zookeeper服务器102中用于处理日志的日志处理服务器,zookeeper服务器102通过网络与注册服务器104通过网络进行通信。
具体地,注册服务器104在处理日志时发生日志处理失败时,将处理失败的失败日志通过阻塞队列提交到zookeeper服务器102的失败任务列表从节点中。zookeeper服务器102中的zookeeper主节点监听失败任务列表从节点,当捕捉到失败任务列表从节点接收到服务器列表从节点中的注册服务器104提交的失败日志时,查询服务器列表从节点中当前负载最低的注册服务器;zookeeper服务器102的zookeeper主节点将失败日志分配至任务实施列表从节点中与当前负载最低的注册服务器对应的任务子节点中。当前负载最低的注册服务器104确定任务子节点中的失败日志属于本地任务时,处理失败日志。其中,zookeeper服务器102和注册服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。应当理解的是,由多个zookeeper服务器102组成的zookeeper服务器集群,该zookeeper服务器集群中各个zookeeper服务器102中均包括zookeeper主节点、失败任务列表从节点、任务实施列表从节点、服务器列表从节点以及任务状态列表从节点。失败任务列表从节点、任务实施列表从节点、服务器列表从节点以及任务状态列表从节点是zookeeper服务中的从节点。
在一个实施例中,注册服务器104将处理失败的失败日志通过阻塞队列提交到zookeeper服务器102的失败任务列表从节点中,包括:将处理失败的失败日志写入阻塞队列中;当确定阻塞队列满足提交要求时,将阻塞队列中的失败日志提交至zookeeper服务器102的失败任务列表从节点中。
具体地,当注册服务器104确定日志处理失败时,将失败日志提交到本地的阻塞队列LinkedBlockingQueue中。然后,当阻塞队列中写满或者超过预设的时间阈值时,确定阻塞队列满足提交要求。注册服务器104将阻塞队列中的失败日志提交到zookeeper服务器102的失败任务列表从节点中。
在一个实施例中,注册服务器104确定任务子节点中的失败日志是否属于本地任务,包括:监听确定zookeeper服务器将失败日志分配至对应的任务子节点时,获取失败日志对应的任务标识;任务标识由zookeeper服务器的zookeeper主节点根据确定的当前负载最低的注册服务器生成;根据任务标识确定失败日志属于本地任务时,处理失败日志。
具体地,注册服务器104监听zookeeper服务器102中任务实施列表从节点中与各自对应的任务子节点,当注册服务器104监听到对应的任务子节点中分配到失败日志时,获取失败日志的任务标识。失败日志的任务标识由zookeeper主节点分配至任务子节点之前,根据查询选定的注册服务器104生成并与失败日志关联。然后,注册服务器104根据失败日志的任务标识判断该任务属于自己的任务时,实施处理该任务。其中,任务标识可以是注册服务器的IP地址、名称等,只要确保任务标识唯一即可。而当注册服务器104确定分配到对应的任务子节点的失败日志不属于本地任务时,通知zookeeper服务器102重新进行分配。
本实施例中,注册服务器通过进一步判断分配到自身对应的任务子节点的失败日志属于自身的任务后再进行处理,避免因zookeeper主节点分配出错而导致失败日志迟迟不被处理,通过保证分配的准确性而提高处理的效率。
在一个实施例中,如图2所示,提供了一种基于zookeeper的日志处理方法,以该方法应用于图1中的zookeeper服务器为例进行说明,包括以下步骤:
步骤S202,zookeeper主节点监听失败任务列表从节点,当捕捉到失败任务列表从节点接收到服务器列表从节点中的注册服务器提交的失败日志时,查询服务器列表从节点中当前负载最低的注册服务器。
其中,zookeeper服务器是部署了zookeeper服务的服务器,zookeeper主节点是zookeeper服务器中zookeeper服务的主节点,在整个zookeeper服务中起领导作用。zookeeper服务器中的zookeeper服务还包括失败任务列表从节点、服务器列表从节点、任务实施列表从节点以及任务状态列表从节点。
具体地,当某一台注册服务器在处理日志时发生异常或处理超时,可以确定该日志处理失败。然后,注册服务器将处理失败的失败日志提交到zookeeper服务器中zookeeper服务中用于接收失败日志的失败任务列表从节点。而zookeeper服务器中的zookeeper主节点实时监听失败任务列表从节点,当监听通过getChildren事件捕捉到失败任务列表从节点从注册服务器接收到其提交的失败日志时,开始协调注册服务器重新处理该失败日志。zookeeper服务器通过zookeeper主节点从服务器列表从节点所管理的各个注册服务器中查询当前负载最低的注册服务器。将查询到的负载最低的注册服务器作为选定重新处理该失败日志的服务器。
在一个实施例中,当前负载最低的注册服务器是指当前需要处理的任务量最低的注册服务器。
步骤S204,zookeeper主节点将失败日志分配至任务实施列表从节点中与当前负载最低的注册服务器对应的任务子节点中,使得当前负载最低的注册服务器确定所述失败日志属于本地任务时,处理所述失败日志。
其中,任务实施列表从节点用于接收zookeeper主节点分配的需要重新处理的失败日志。任务实施列表从节点中包括与服务器列表从节点中各注册服务器对应的任务子节点。每个任务子节点用于接收分配给对应注册服务器处理的失败日志。
具体地,当zookeeper服务器中zookeeper主节点在捕捉到提交的失败日志,以及查询确定处理该失败日志的当前负载最低的注册服务器之后,将该失败日志分配至任务实施列表从节点中与该负载最低的注册服务器对应的任务子节点中。例如,任务实施例表从节点中包括注册服务器1、注册服务器2和注册服务器3对应的任务子节点1、任务子节点2和任务子节点3,当确定注册服务器2为当前负载最低的注册服务器,则将失败日志分配至任务子节点2中,表示由注册服务器2负责重新处理当前接收到的失败日志。在注册服务器2确定分配至任务子节点2的失败日志属于本地任务时,该注册服务器2开始处理该失败日志。本地任务可以理解为是属于自己处理的失败日志任务。
上述基于zookeeper的日志处理方法,通过zookeeper主节点监听捕捉失败任务列表从节点接收到服务器列表从节点中的注册服务器提交的失败日志时,查询服务器列表从节点中当前负载最低的注册服务器,进而将失败日志分配至任务实施列表从节点中与当前负载最低的注册服务器对应的任务子节点中,使得当前负载最低的注册服务器确定失败日志属于本地任务时,处理失败日志。该方法通过zookeeper服务的主从节点实现分布式处理失败日志,使得将处理失败的日志快速发送到zookeeper,进而通过zookeeper服务选择负载最低的服务器去处理失败日志,避免在负载较高的机器上做无谓的等待和重试,有效提升负载均衡,提高处理的效率。
在一个实施例中,如图3所示,提供另一种基于zookeeper的日志处理方法,在步骤S204之后,还包括步骤:
步骤S206,zookeeper主节点监听任务状态列表从节点,通过监听获取任务状态列表从节点接收的处理信息;处理信息由服务器列表从节点中注册服务器根据处理失败日志的处理结果生成和发送。
步骤S208,判断处理信息是否为处理成功信息,当zookeeper主节点确定处理信息为处理失败信息时,返回步骤S202,重新查询服务器列表从节点中当前负载最低的注册服务器的步骤。
步骤S210,当zookeeper主节点确定处理信息为处理成功信息时,将任务实施列表从节点中的失败日志标记为已处理,并从失败任务列表从节点中将所述失败日志删除。
其中,任务状态列表从节点用于从注册服务器处接收并存储各失败日志的重新处理完成情况,处理信息即用于表示处理完成情况的信息,由注册服务器根据实际处理情况生成。
具体地,zookeeper服务器中的zookeeper主节点通过监听任务状态列表,获取各失败日志的处理完成情况,得到处理信息。zookeeper主节点进一步判断处理信息是否为表示处理成功的信息。当zookeeper主节点确定失败日志对应的处理信息是处理成功信息,表示该失败日志被选定的注册服务器重新处理成功,zookeeper将该失败日志标记为已处理,用于标记该失败日志已处理完成。并且,将该任务从失败任务列表节点中删除。而当zookeeper主节点确定失败日志对应的处理信息是处理失败信息,则表示该失败日志被所选定的注册服务器再次处理失败了。zookeeper主节点则再次查询当前负载最低的注册服务器,通过再次查询再次选择一个服务器来处理该失败日志,直至该失败日志被处理成功为止。
在一个实施例中,被分配至任务实施列表节点中的失败日志可以是一个处理该失败日志的待实施任务,而并非将实际的失败日志分配至任务子节点中。因此,当zookeeper主节点分配至任务子节点中的是失败日志对应的待实施任务时,注册服务器在处理该失败日志时就根据分配的待实施任务从失败任务列表从节点中获取该待实施任务对应的失败日志进行处理。同时,在该任务子节点中的待实施任务处理成功之后,将任务子节点中的待实施任务标记为已处理,并且从失败列表从节点中删除该待实施任务对应的失败日志。
在一个实施例中,处理信息可以是通过不同的信号或者不同的标记,通过不同的信号或者标记表示该处理信息是处理成功信息还是处理失败信息。
本实施例中,通过监听用于获取任务处理状态的任务状态列表从节点,实时监控失败日志的处理情况,根据不同的处理情况快速进行不同的响应,对于再次处理失败的日志尽快选择下一个注册服务器进行处理,从而确保处理的有序性,以及确保失败日志能够被重新处理成功。而对于已处理成功的失败日志,在任务实施列表从节点中标记已处理和从失败任务列表从节点中删除,避免失败日志被处理成功之后还重复被调用处理。
在一个实施例中,查询服务器列表从节点中当前负载最低的注册服务器,包括:从任务实施列表从节点中的各任务子节点中查询服务器列表从节点中各注册服务器当前的任务量;将任务量最少的任务子节点对应的注册服务器作为服务器列表从节点当前负载最低的注册服务器。
具体地,由于本申请zookeeper服务中的任务实施列表从节点中根据注册服务器的数量部署了多个存储该注册服务器所要处理的失败日志的任务子节点。因此,当zookeeper主节点从服务器列表中注册服务器查询当前负载最低的服务器时,zookeeper主节点从任务实施列表节点中的各个任务子节点中获取存储在该任务子节点中的任务量,得到各个注册服务器的任务量。然后,由于任务量最少的注册服务器负载为最低,因此zookeeper主节点选取任务量最少的注册服务器为当前负载最低的注册服务器。应当理解的是,当存储在任务子节点中的失败日志或者待实施任务被处理成功之后,将该任务子节点中的失败日志或待实施任务标记为已处理,避免存储在任务子节点中的失败日志或者待实施任务被重复处理。
本实施例中,通过任务量选取负载最低的注册服务器,确保注册服务器选取的合理性和准确性,从而提高处理的效率。
在一个实施例中,如图4所示,提供一种zookeeper服务的主从节点工作流程图,根据图4所示的主从节点示意图对基于zookeeper的日志处理方法进行详细解释说明。
其中,参考图4,zookeeper服务包括master节点(zookeeper主节点)、失败任务列表从节点、服务器机器列表从节点、任务实施列表从节点以及任务状态列表从节点。master节点分别监控失败任务列表从节点、服务器机器列表从节点、任务实施列表从节点以及任务状态列表从节点。
具体地,①当注册到服务器机器列表从节点的注册服务器(server)在处理日志时发生异常或超时,确定该日志处理失败。服务器机器列表从节点的注册服务器将失败日志写入到本地的阻塞队列中。然后,当阻塞队列写满或者超过预设的时间阈值时,服务器机器列表从节点的注册服务器将阻塞队列中的失败日志提交至失败任务列表从节点中。其中,失败任务列表从节点中包括与注册服务器数量对应的失败任务子节点。因此,服务器机器列表从节点的注册服务器所提交的失败日志被存储至该注册服务器对应的失败任务子节点(tasklist)中。
②zookeeper主节点监听失败任务列表从节点,当捕捉到失败任务列表从节点中任意一个失败任务子节点接收到注册服务器提交的失败日志时,选取当前任务量最小的注册服务器作为当前负载最低的注册服务器。然后,zookeeper主节点将失败日志分配到任务实施列表从节点中,由于任务实施列表从节点中同样包括与注册服务器对应的任务子节点(assing),因此将失败日志分配至选取的当前负载最低的注册服务器对应的任务子节点。
另外,为了确保分配的准确性以及注册服务器能够验证被分配的失败日志属于本地任务,zookeeper主节点将失败日志分配到任务实施列表从节点之前,根据当前负载最低的注册服务器的名称、IP地址中任一项或多项生成任务标识。然后,zookeeper主节点将任务标识与所述失败日志关联后分配至任务实施列表从节点中与当前负载最低的注册服务器对应的任务子节点中。以及,还可以在给当前负载最低的注册服务器分配失败日志之前,从任务状态列表节点中获取该当前负载最低的注册服务器的运行逻辑信号。通过判断运行逻辑信号确定当前负载最低的注册服务器是否处于宕机状态。而当前负载最低的注册服务器处于宕机状态时,表示该注册服务器无法进行日志处理工作,zookeeper主节点则从剩余的注册服务器中重新查询确定当前负载最低的注册服务器。
③zookeeper主节点同时监控任务状态列表从节点,实时从任务状态列表从节点中获取失败日志的处理信息。当处理信息为处理成功信息时,将任务实施列表从节点中的失败日志标记为已处理,将失败任务列表从节点中的失败日志删除。
④服务器列表从节点中的注册服务器监听各自对应的任务子节点,当任务子节点中分配到失败日志时,获取失败日志的任务标识。失败日志的任务标识由zookeeper主节点分配至任务子节点之前,根据查询选定的注册服务器生成并与失败日志关联。然后,注册服务器根据失败日志的任务标识判断该任务属于自己的任务时,实施处理该任务。其中,任务标识可以是注册服务器的IP地址、名称等,只要确保任务标识唯一即可。
⑤当注册服务器对该失败日志处理完成之后,根据处理的情况生成处理信息给到任务状态列表从节点。由zookeeper主节点根据处理信息进行后续处理。同样的,任务状态列表从节点中同样有多个与各注册服务器一一对应的状态子节点(status),因此注册服务器将处理信息提交到对应的状态子节点中。
应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种基于zookeeper的日志处理装置,包括:服务器列表从节点502、失败任务列表从节点504、zookeeper主节点506和任务实施列表从节点508,其中:
服务器列表从节点502,用于管理注册服务器。
失败任务列表从节点504,用于接收服务器列表从节点中的注册服务器提交的失败日志。
zookeeper主节点506,用于监听失败任务列表从节点,当捕捉到失败任务列表从节点接收到失败日志时,查询服务器列表从节点中当前负载最低的注册服务器;以及,将失败日志分配至任务实施列表从节点中与当前负载最低的注册服务器对应的任务子节点中,使得当前负载最低的注册服务器确定失败日志属于本地任务时,处理失败日志。
任务实施列表从节点508,用于接收zookeeper主节点分配的失败日志。
在一个实施例中,如图6所示,基于zookeeper的日志处理装置还包括任务状态列表从节点510。
任务状态列表从节点510,用于接收服务器列表从节点中注册服务器根据处理所述失败日志的处理结果生成和发送的处理信息;
zookeeper主节点506还用于,监听任务状态列表从节点获取任务状态列表从节点接收的处理信息;当确定处理信息为处理失败信息时,返回查询服务器列表从节点中当前负载最低的注册服务器的步骤。
在一个实施例中,zookeeper主节点506还用于确定处理信息为处理成功信息时,将任务实施列表从节点中的失败日志标记为已处理,并从失败任务列表从节点中将所述失败日志删除。
在一个实施例中,zookeeper主节点506还用于从任务实施列表从节点中的各任务子节点中查询服务器列表从节点中各注册服务器当前的任务量;将任务量最少的任务子节点对应的注册服务器作为服务器列表从节点当前负载最低的注册服务器。
关于基于zookeeper的日志处理装置的具体限定可以参见上文中对于基于zookeeper的日志处理方法的限定,在此不再赘述。上述基于zookeeper的日志处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种基于zookeeper服务器,该zookeeper服务器其内部结构图可以如图7所示。该zookeeper服务器包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该zookeeper服务器的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该zookeeper服务器的数据库用于存储失败日志数据。该计算机设备的网络接口用于与注册的注册服务器通过网络连接通信。该计算机程序被处理器执行时以实现一种基于zookeeper的日志处理方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的zookeeper服务器的限定,具体的zookeeper服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
zookeeper主节点监听失败任务列表从节点,当捕捉到失败任务列表从节点接收到服务器列表从节点中的注册服务器提交的失败日志时,查询服务器列表从节点中当前负载最低的注册服务器;
zookeeper主节点将失败日志分配至任务实施列表从节点中与当前负载最低的注册服务器对应的任务子节点中,使得当前负载最低的注册服务器确定失败日志属于本地任务时,处理失败日志。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
zookeeper主节点监听任务状态列表从节点,通过监听获取任务状态列表从节点接收的处理信息;处理信息由服务器列表从节点中注册服务器根据处理失败日志的处理结果生成和发送;
当zookeeper主节点确定处理信息为处理失败信息时,返回查询服务器列表从节点中当前负载最低的注册服务器的步骤。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
当zookeeper主节点确定处理信息为处理成功信息时,将任务实施列表从节点中的失败日志标记为已处理,并从失败任务列表从节点中将失败日志删除。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
从任务实施列表从节点中的各任务子节点中查询服务器列表从节点中各注册服务器当前的任务量;
将任务量最少的任务子节点对应的注册服务器作为服务器列表从节点当前负载最低的注册服务器。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于zookeeper的日志处理方法,其特征在于,所述方法包括:
zookeeper主节点监听失败任务列表从节点,当捕捉到所述失败任务列表从节点接收到服务器列表从节点中的注册服务器提交的失败日志时,查询所述服务器列表从节点中当前负载最低的注册服务器;所述失败日志在所述注册服务器的阻塞队列中写满失败日志,或,超过预设时间阈值时被提交;
所述zookeeper主节点从任务状态列表节点中获取当前负载最低的注册服务器的运行逻辑信号,通过所述运行逻辑信号确定当前负载最低的注册服务器是否处于宕机状态,若当前负载最低的注册服务器处于所述宕机状态,则从剩余的各注册服务器中选择负载最低的注册服务器更新为当前负载最低的注册服务器;
将所述失败日志分配至任务实施列表从节点中与当前负载最低的注册服务器对应的任务子节点中,使得当前负载最低的注册服务器确定所述失败日志属于本地任务时,处理所述失败日志;
所述zookeeper主节点监听任务状态列表从节点,通过监听获取所述任务状态列表从节点接收的处理信息;所述处理信息由所述服务器列表从节点中注册服务器根据处理所述失败日志的处理结果生成和发送;
当所述zookeeper主节点确定所述处理信息为处理失败信息时,返回查询所述服务器列表从节点中当前负载最低的注册服务器的步骤。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述zookeeper主节点确定所述处理信息为处理成功信息时,将所述任务实施列表从节点中的所述失败日志标记为已处理,并从所述失败任务列表从节点中将所述失败日志删除。
3.根据权利要求1所述的方法,其特征在于,所述查询所述服务器列表从节点中当前负载最低的注册服务器,包括:
从所述任务实施列表从节点中的各所述任务子节点中查询所述服务器列表从节点中各所述注册服务器当前的任务量;
将所述任务量最少的所述任务子节点对应的注册服务器作为所述服务器列表从节点当前负载最低的注册服务器。
4.根据权利要求1所述的方法,其特征在于,所述将所述失败日志分配至任务实施列表从节点中与当前负载最低的注册服务器对应的任务子节点中,包括:
根据当前负载最低的注册服务器的名称和/或IP地址生成任务标识,将所述任务标识与所述失败日志关联后分配至任务实施列表从节点与当前负载最低的注册服务器对应的任务子节点中。
5.一种基于zookeeper的日志处理装置,其特征在于,所述装置包括:
服务器列表从节点,用于管理注册服务器;
失败任务列表从节点,用于接收所述服务器列表从节点中的所述注册服务器提交的失败日志;
zookeeper主节点,用于监听所述失败任务列表从节点,当捕捉到所述失败任务列表从节点接收到所述失败日志时,查询所述服务器列表从节点中当前负载最低的注册服务器;所述失败日志在所述注册服务器的阻塞队列中写满失败日志,或,超过预设时间阈值时被提交;以及,从任务状态列表节点中获取当前负载最低的注册服务器的运行逻辑信号,通过所述运行逻辑信号确定当前负载最低的注册服务器是否处于宕机状态,若当前负载最低的注册服务器处于所述宕机状态,则从剩余的各注册服务器中选择负载最低的注册服务器更新为当前负载最低的注册服务器;将所述失败日志分配至任务实施列表从节点中与当前负载最低的注册服务器对应的任务子节点中,使得当前负载最低的注册服务器确定所述失败日志属于本地任务时,处理所述失败日志;监听任务状态列表从节点,通过监听获取所述任务状态列表从节点接收的处理信息;所述处理信息由所述服务器列表从节点中注册服务器根据处理所述失败日志的处理结果生成和发送;当所述zookeeper主节点确定所述处理信息为处理失败信息时,返回查询所述服务器列表从节点中当前负载最低的注册服务器的步骤;
所述任务状态列表从节点,用于接收所述服务器列表从节点中注册服务器根据处理所述失败日志的处理结果生成和发送的处理信息;
所述任务实施列表从节点,用于接收zookeeper主节点分配的失败日志。
6.根据权利要求5所述的装置,其特征在于,所述zookeeper主节点还用于,确定所述处理信息为处理成功信息时,将所述任务实施列表从节点中的所述失败日志标记为已处理,并从所述失败任务列表从节点中将所述失败日志删除。
7.根据权利要求5所述的装置,其特征在于,所述zookeeper主节点还用于,从所述任务实施列表从节点中的各所述任务子节点中查询所述服务器列表从节点中各所述注册服务器当前的任务量;将所述任务量最少的所述任务子节点对应的注册服务器作为所述服务器列表从节点当前负载最低的注册服务器。
8.一种基于zookeeper的日志处理系统,其特征在于,所述系统包括zookeeper服务器和注册服务器,所述注册服务器为注册到所述zookeeper服务器中服务器列表从节点的日志处理服务器;
所述注册服务器,用于当处理日志失败时,将处理失败的日志通过阻塞队列提交到zookeeper服务器中的失败任务列表从节点;
所述zookeeper服务器,用于利用zookeeper主节点监听所述失败任务列表从节点,当zookeeper主节点捕捉到所述失败任务列表从节点接收到所述失败日志时,查询所述服务器列表从节点中当前负载最低的注册服务器;所述失败日志在所述注册服务器的阻塞队列中写满失败日志,或,超过预设时间阈值时被提交;以及,利用所述zookeeper主节点从任务状态列表节点中获取当前负载最低的注册服务器的运行逻辑信号,通过所述运行逻辑信号确定当前负载最低的注册服务器是否处于宕机状态,若当前负载最低的注册服务器处于所述宕机状态,则从剩余的各注册服务器中选择负载最低的注册服务器更新为当前负载最低的注册服务器;将所述失败日志分配至任务实施列表从节点中与当前负载最低的注册服务器对应的任务子节点中;
所述注册服务器还用于,当确定所述zookeeper服务器分配至对应的所述任务子节点中的所述失败日志属于本地任务时,处理所述失败日志;
所述zookeeper服务器还用于,利用所述zookeeper主节点监听任务状态列表从节点,通过监听获取所述任务状态列表从节点接收的处理信息;所述处理信息由所述服务器列表从节点中注册服务器根据处理所述失败日志的处理结果生成和发送;当确定所述处理信息为处理失败信息时,返回利用所述zookeeper主节点查询所述服务器列表从节点中当前负载最低的注册服务器的步骤。
9.根据权利要求8所述的系统,其特征在于,所述注册服务器还用于,
监听确定所述zookeeper服务器将所述失败日志分配至对应的任务子节点时,获取所述失败日志对应的任务标识;所述任务标识由所述zookeeper服务器的zookeeper主节点根据确定的当前负载最低的注册服务器生成;
根据所述任务标识确定所述失败日志属于本地任务时,处理所述失败日志。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010698574.6A CN111866130B (zh) | 2020-07-20 | 2020-07-20 | 基于zookeeper的日志处理方法、装置、计算机设备和存储介质 |
PCT/CN2020/119369 WO2021139280A1 (zh) | 2020-07-20 | 2020-09-30 | 基于zookeeper的日志处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010698574.6A CN111866130B (zh) | 2020-07-20 | 2020-07-20 | 基于zookeeper的日志处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111866130A CN111866130A (zh) | 2020-10-30 |
CN111866130B true CN111866130B (zh) | 2023-04-18 |
Family
ID=73001119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010698574.6A Active CN111866130B (zh) | 2020-07-20 | 2020-07-20 | 基于zookeeper的日志处理方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111866130B (zh) |
WO (1) | WO2021139280A1 (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341051A (zh) * | 2016-05-03 | 2017-11-10 | 北京京东尚科信息技术有限公司 | 集群任务协调方法、系统和装置 |
CN110661844A (zh) * | 2019-08-16 | 2020-01-07 | 北京旷视科技有限公司 | 自动发布调度系统、方法和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8387064B2 (en) * | 2008-10-09 | 2013-02-26 | International Business Machines Corporation | Balancing a data processing load among a plurality of compute nodes in a parallel computer |
CN102025630A (zh) * | 2010-12-14 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 负载均衡方法及负载均衡系统 |
CN109327509B (zh) * | 2018-09-11 | 2022-01-18 | 武汉魅瞳科技有限公司 | 一种主/从架构的低耦合的分布式流式计算系统 |
-
2020
- 2020-07-20 CN CN202010698574.6A patent/CN111866130B/zh active Active
- 2020-09-30 WO PCT/CN2020/119369 patent/WO2021139280A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341051A (zh) * | 2016-05-03 | 2017-11-10 | 北京京东尚科信息技术有限公司 | 集群任务协调方法、系统和装置 |
CN110661844A (zh) * | 2019-08-16 | 2020-01-07 | 北京旷视科技有限公司 | 自动发布调度系统、方法和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021139280A1 (zh) | 2021-07-15 |
CN111866130A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109032824B (zh) | 数据库校验方法、装置、计算机设备和存储介质 | |
CN112395140B (zh) | 去中心化的任务调度方法、装置、设备及介质 | |
CN108959385B (zh) | 数据库部署方法、装置、计算机设备和存储介质 | |
CN108446172B (zh) | 数据调取方法、装置、计算机设备和存储介质 | |
CN111159233B (zh) | 分布式缓存方法、系统、计算机设备以及存储介质 | |
CN110955506A (zh) | 一种分布式作业调度处理方法 | |
CN110968478A (zh) | 日志采集方法、服务器及计算机存储介质 | |
CN113656473A (zh) | 接口访问方法、装置、设备及介质 | |
CN113946427A (zh) | 用于多操作系统的任务处理方法、处理器及存储介质 | |
CN111966461B (zh) | 虚拟机集群节点守护方法、装置、设备及存储介质 | |
CN111866130B (zh) | 基于zookeeper的日志处理方法、装置、计算机设备和存储介质 | |
CN112070585A (zh) | 订单状态统一管理方法、装置、计算机设备和存储介质 | |
CN117195129A (zh) | 一种基于沙箱系统的异常处理方法及相关设备 | |
CN110955460A (zh) | 一种服务进程启动方法、装置、电子设备和存储介质 | |
CN111506388A (zh) | 容器性能探测方法、容器管理平台及计算机存储介质 | |
CN116319421A (zh) | 基于云平台的故障检测方法、装置、故障检测系统及介质 | |
CN112905322B (zh) | 资源加锁的方法、计算设备及计算机存储介质 | |
CN110489208B (zh) | 虚拟机配置参数核查方法、系统、计算机设备和存储介质 | |
CN114490681A (zh) | 服务请求响应方法、装置以及服务器集群 | |
CN110188008B (zh) | 作业调度主备切换方法、装置、计算机设备及存储介质 | |
CN114816656A (zh) | 容器组迁移方法、电子设备及存储介质 | |
CN111221847B (zh) | 监控数据存储方法、装置及计算机可读存储介质 | |
CN111752786A (zh) | 压力测试过程中的数据存储方法、汇总方法、设备及介质 | |
CN111338752B (zh) | 容器调整方法及装置 | |
CN113516541B (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: 20231030 Address after: Room 301-2, No. 206 Kaibin Road, Xuhui District, Shanghai, 200030 Patentee after: Ping An Technology (Shanghai) Co.,Ltd. Address before: 518000 Guangdong, Shenzhen, Futian District Futian street Fu'an community Yitian road 5033, Ping An financial center, 23 floor. Patentee before: PING AN TECHNOLOGY (SHENZHEN) Co.,Ltd. |