CN115037595B - 网络恢复方法、装置、设备及存储介质 - Google Patents

网络恢复方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115037595B
CN115037595B CN202210476307.3A CN202210476307A CN115037595B CN 115037595 B CN115037595 B CN 115037595B CN 202210476307 A CN202210476307 A CN 202210476307A CN 115037595 B CN115037595 B CN 115037595B
Authority
CN
China
Prior art keywords
node
network
message queue
state information
queue system
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
Application number
CN202210476307.3A
Other languages
English (en)
Other versions
CN115037595A (zh
Inventor
王畅
王力
贝少峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Huayao Technology Co ltd
Original Assignee
Beijing Huayao Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Huayao Technology Co ltd filed Critical Beijing Huayao Technology Co ltd
Priority to CN202210476307.3A priority Critical patent/CN115037595B/zh
Publication of CN115037595A publication Critical patent/CN115037595A/zh
Application granted granted Critical
Publication of CN115037595B publication Critical patent/CN115037595B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开实施例提供一种网络恢复方法、装置、设备及存储介质。该方法包括获取消息队列系统中每个节点的状态信息,状态信息包括分区状态信息;在分区状态信息表征消息队列系统存在网络分区的情况下,基于消息队列系统中每个节点各自对应的修订号依次确定每个节点的分布式锁的获取顺序;根据每个节点各自对应的分布式锁的获取顺序在消息队列系统的节点中确定主节点;基于主节点对消息队列系统执行网络分区恢复操作。通过获取消息队列系统中每个节点的状态信息以及分布式锁机制,能够自动化识别网络分区并执行恢复操作,降低了集群运维的复杂度,提高了系统的可靠性。

Description

网络恢复方法、装置、设备及存储介质
技术领域
本公开实施例涉及分布式消息系统技术领域,尤其涉及一种网络恢复方法、装置、设备及存储介质。
背景技术
消息队列是一种进程间通信或同一进程的不同线程间的通信方式。RabbitMQ集群作为消息队列中间件的一种,应用非常广泛,尤其是在需要跨系统异步通信的应用场景。
当多节点出现网络抖动时,集群容易出现网络分区,而RabbitMQ集群自身无法很好的应对网络分区情况,在进行网络分区恢复时自动化程度较低,需要手工干预。
发明内容
本公开实施例提供一种网络恢复方法、装置、设备及存储介质,用以解决现有技术中消息队列集群在恢复网络分区时自动化程度较低的问题。
第一方面,本公开实施例中提供了一种网络恢复方法,应用于存储系统,所述存储系统连接有消息队列系统,所述方法包括:
获取所述消息队列系统中每个节点的状态信息,所述状态信息包括分区状态信息;
在所述分区状态信息表征所述消息队列系统存在网络分区的情况下,基于所述消息队列系统中每个节点各自对应的修订号依次确定所述每个节点的分布式锁的获取顺序;
根据所述每个节点各自对应的分布式锁的获取顺序在所述消息队列系统的节点中确定主节点;
基于所述主节点对所述消息队列系统执行网络分区恢复操作。
根据本公开的实施例,所述基于所述消息队列系统中每个节点各自对应的修订号依次确定所述每个节点的分布式锁的获取顺序,包括:
获取所述消息队列系统中每个节点各自对应的所述修订号;
基于所述每个节点各自对应的所述修订号的数值大小,对所述每个节点的分布式锁的获取顺序进行排序。
根据本公开的实施例,所述基于所述主节点对所述消息队列系统执行网络分区恢复操作,包括:
执行重启所述主节点的消息队列服务的命令,以使所述主节点重新启动所述消息队列服务;
将所述消息队列系统中除所述主节点之外的其他节点以从节点的方式添加至所述主节点所属的网络分区中。
根据本公开的实施例,在将所述消息队列系统中除所述主节点之外的其他节点以从节点的方式添加至所述主节点所属的网络分区中之后,所述方法还包括:
基于所述主节点和所述从节点生成网络分区数据;
将所述网络分区数据存储至所述主节点对应的数据库中,以便通过所述主节点对应的数据库将所述网络分区数据同步至所述从节点各自对应的数据库中。
根据本公开的实施例,所述存储系统包括etcd存储系统,所述消息队列系统包括RabbitMQ系统。
根据本公开的实施例,所述状态信息还包括节点网络状态信息和服务运行状态信息,所述方法还包括:
基于所述节点网络状态信息和所述服务运行状态信息确定所述消息队列系统中存在网络故障的故障节点及所述故障节点的网络故障原因;
基于与所述故障原因相对应的网络恢复方案对所述故障节点执行网络恢复操作。
根据本公开的实施例,所述方法还包括:
在所述网络状态信息表征所述故障节点存在网络异常的情况下,对所述故障节点执行网络修复操作;
在所述服务运行状态信息表征所述故障节点存在服务异常的情况下,重新启动所述故障节点运行的消息队列服务。
第二方面,本公开实施例中提供了一种网络恢复装置,设置于存储系统,所述存储系统连接有消息队列系统,所述装置包括:
获取模块,被配置为执行获取所述消息队列系统中每个节点的状态信息,所述状态信息包括分区状态信息;
网络恢复模块,被配置为执行在所述分区状态信息表征所述消息队列系统存在网络分区的情况下,基于所述消息队列系统中每个节点各自对应的修订号依次确定所述每个节点的分布式锁的获取顺序;根据所述每个节点各自对应的分布式锁的获取顺序在所述消息队列系统的节点中确定主节点;基于所述主节点对所述消息队列系统执行网络分区恢复操作。
第三方面,本公开实施例中提供了一种电子设备,包括:存储器、处理器;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如第一方面所述的网络恢复方法。
第四方面,本公开实施例中提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如第一方面所述的网络恢复方法。
本公开实施例中,为解决消息队列集群在在发生网络故障时,进行网络分区恢复需要人工介入,自动化程度低的问题,首先,通过存储系统获取消息队列系统中每个节点的状态信息,其中,状态信息包括每个节点的分区状态信息,这样,存储系统就可以根据上述分区状态信息确定消息队列系统中的节点是否存在网络分区。然后,在消息队列系统中的节点存在网络分区的情况下,通过分布式锁机制在消息队列系统中确定用于网络分区恢复的主节点。最后,可以基于主节点对消息队列系统执行网络分区恢复操作。通过获取消息队列系统中每个节点的状态信息以及分布式锁机制,能够自动化识别网络分区并执行恢复操作,降低了集群运维的复杂度,提高了系统的可靠性。
本公开的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种网络恢复方法的流程图。
图2为本公开实施例提供的一种网络恢复方法的示意图。
图3为本公开实施例提供的一种分布式锁获取顺序的确定方法示意图。
图4为本公开实施例提供的一种网络恢复装置的结构示意图。
图5为本公开实施例提供的一种电子设备的结构示意图。
图6为本公开实施例提供的另一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。
在本公开的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
消息队列是一种进程间通信或同一进程的不同线程间的通信方式,消息队列提供了异步的通信协议,消息的发送者和接收者不需要同时与消息队列交互。与其他通信协议不同,消息队列本身是异步的,它允许接收者在消息发送很长时间后再取回消息。
Rabbitmq是一种实现了高级消息队列协议(Advanced Message QueuingProtocol,简称AMQP)协议的消息中间件,被广泛运用于电信领域。在使用Rabbitmq时,一般通过集群部署的模式,以避免因单点故障导致无法工作的问题。由于网络的不可靠,常出现集群多分区的现象,这种现象被称为集群脑裂。而Rabbitmq提供的原生集群多分区恢复方案,自动化程度低,需要人工介入,并且恢复时间长,对业务产生影响。
为解决上述技术问题,本公开实施例提供的应用于存储系统的网络恢复方法的核心思想是:获取消息队列系统中每个节点的状态信息,状态信息包括分区状态信息;在分区状态信息表征消息队列系统存在网络分区的情况下,基于消息队列系统中每个节点各自对应的修订号依次确定每个节点的分布式锁的获取顺序;根据每个节点各自对应的分布式锁的获取顺序在消息队列系统的节点中确定主节点;基于主节点对消息队列系统执行网络分区恢复操作。通过获取消息队列系统中每个节点的状态信息以及分布式锁机制,能够自动化识别网络分区并执行恢复操作,降低了集群运维的复杂度,提高了系统的可靠性。
本公开实施例提供的发货方法可以由存储系统来执行,该存储系统可以设置于一控制设备上,该控制设备可以是诸如手机、PC机、笔记本电脑等接入终端设备,也可以是服务器。该服务器可以是物理服务器,或者也可以为虚拟服务器。该服务器可以是用户侧的物理或虚拟服务器,也可以为云端服务器。
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
图1为本公开实施例提供的一种网络恢复方法的流程图,该网络恢复方法应用于存储系统。如图1所示,该方法包括S101~S104。
S101,获取消息队列系统中每个节点的状态信息,状态信息包括分区状态信息。
S102,在分区状态信息表征消息队列系统存在网络分区的情况下,基于消息队列系统中每个节点各自对应的修订号依次确定每个节点的分布式锁的获取顺序。
S103,根据每个节点各自对应的分布式锁的获取顺序在消息队列系统的节点中确定主节点。
S104,基于主节点对消息队列系统执行网络分区恢复操作。
在实际应用场景中,为确定消息队列系统中的分区状态,可以先通过存储系统获取该消息队列系统中每个节点的分区状态信息。然后,存储系统可以根据每个节点的分区状态信息对消息队列系统中的分区状态进行分析。简单来讲,存储系统可以通过每个节点的分区状态信息确定消息队列系统中是否存在多个分区。
举例来说,以消息队列系统包括A节点、B节点和C节点为例,若消息队列系统的网络发生故障或者波动,可能导致C节点与A节点、B节点之间的网络断开。此时,A节点与B节点属于同一分区,C节点为另一个分区。因此,A节点与B节点对应的分区状态信息是相同的,C节点对应的分区状态信息与A节点与B节点对应的分区状态信息不同,基于此,存储系统在获取到A节点、B节点和C节点各自对应的分区状态信息后,便可以确定消息队列系统中的分区状态。
在确定消息队列系统存在网络分区的情况下,便需要对消息队列系统进行网络分区恢复。相反的,在消息队列系统不存在网络分区的情况下,则无需进行网络分区恢复。
具体的,可以基于消息队列系统中每个节点各自对应的修订号依次确定每个节点的分布式锁的获取顺序。简单的来讲,存储系统中的数据可以支持根据操作编号进行全局编号,并用修订值对每个全局编号进行标识。即,存储系统中数据的任意一次修改均对应有一个修订号。然后,根据修订号的数值顺序可以确定每个节点分布式锁的获取顺序。
之后,可以根据每个节点分布式锁的获取顺序,可以在消息队列系统中确定用于网络分区恢复的主节点,该主节点可作为网络分区恢复后的消息队列系统的主节点。最后,可以基于主节点对消息队列系统执行网络分区恢复操作。
根据本公开的实施例,通过获取消息队列系统中每个节点的状态信息确定消息队列系统中是否存在多个网络分区。然后,基于分布式锁机制,能够自动化识别网络分区并执行恢复操作,提高了消息队列系统多分区恢复的自动化程度,同时也降低了集群运维的复杂度,提高了系统的可靠性。
在本公开的一个实施例中,存储系统可以包括etcd存储系统,而消息队列系统包括RabbitMQ系统。图2为本公开实施例提供的一种网络恢复方法的示意图,如图2所示,该网络恢复方法可以由etcd存储系统执行,用于恢复RabbitMQ系统的多个网络分区。其中,etcd存储系统包括节点A、节点B和节点C,RabbitMQ系统包括节点a、节点b和节点c。
在实际应用中,节点A、节点B和节点C中均可以包括存储模块和集群选主模块。以etcd存储系统中的主节点为节点A,节点B和节点C为节点A的从节点为例,节点A中还可以包括健康检查模块、异常检测模块和脑裂恢复模块。
为实现上述网络恢复方法,首先,节点A中的健康检查模块会启动多个通信线程分别与节点a、节点b和节点c进行通信,每个通信线程均会定期查询、获取由节点a、节点b和节点c上报的含有分区状态信息的状态信息,并将分区状态信息写入节点A的存储模块中,然后,节点A可以将该状态信息同步至节点B和节点C的存储模块中。在本实施例中,由于etcd存储系统的写操作只能由主节点发起,因此,将存储模块绑定于节点A中,能够减少通信开销。
进一步的,状态信息中还可以包括节点网络状态信息和服务运行状态信息。其中,节点网络状态信息用于表征节点的网络的健康状态,服务运行状态信息用于表征节点的RabbitMQ服务的运行状态。
具体的,状态信息例如可以包括集群名称、分区信息、运行的节点、集群主节点、网络连接状态和RabbitMQ服务运行状态。其中,集群名称用于表征当前节点所处集群的名称;集群主节点用于表征当前节点所处的集群的主节点信息;分区信息用于表征当前节点所处的分区信息;运行的节点用于表征当前节点所处的分区中正在运行的节点的信息;网络连接状态用于表征当前节点的网络是否存在网络故障;RabbitMQ服务运行状态用于表征当前节点的RabbitMQ服务是否正常运行。
在本实施例中,分区状态信息可以包括分区信息和运行的节点;节点网络状态信息可以包括网络连接状态;服务运行状态信息可以包括RabbitMQ服务运行状态。
需要说明的是,由于etcd存储系统中的主节点的位置会发生变化,因此,健康检查模块和脑裂恢复模块的位置也会随主节点的位置进行变化。例如,可以在节点A中部署相应的主节点检测脚本,然后定时运行该主节点检测脚本,在检测到主节点不是节点A时,随即停止节点A中运行的健康监测模块,然后将健康监测模块关联至当前的主节点中。
在获取到状态信息后,异常检测模块会从存储模块中调取该状态信息。然后,异常检测模块根据状态信息对RabbitMQ系统的健康状态进行检测,并确定RabbitMQ系统中存在异常的原因。具体的,状态信息中每种信息均可以含有不同的状态字段,异常检测模块可以根据状态字段确定RabbitMQ系统的状态是否存在异常。例如,若某个节点的RabbitMQ服务运行状态中含有health字段,则表明该节点的RabbitMQ服务运行正常;若该节点的RabbitMQ服务运行状态中含有unhealthy字段,则表明该节点的RabbitMQ服务运行异常。
之后,可以根据RabbitMQ系统中存在异常的原因确定恢复异常的方式。具体的,可以在RabbitMQ系统中存在网络分区的情况下,对网络分区进行恢复。
或者,可以基于节点网络状态信息和服务运行状态信息确定消息队列系统中存在网络故障的故障节点及故障节点的网络故障原因;然后,基于与故障原因相对应的网络恢复方案对故障节点执行网络恢复操作。例如,若节点网络状态信息表征某个节点的网络异常,则可以等待网络恢复正常;或者,若服务运行状态信息表征某个节点的RabbitMQ服务运行异常,则可以重新启动该节点的RabbitMQ服务。
当异常检测模块检测到RabbitMQ系统中存在网络分区时,需要确定用于网络分区恢复的主节点。例如,若节点a为主节点,则可以基于节点a,通过脑裂恢复模块对RabbitMQ系统中的两个分区进行恢复。
需要说明的是,本公开实施例中的网络恢复方法由etcd存储系统执行,能够提高网络恢复的可靠性。具体的,etcd存储系统采用的负载均衡算法能够使每个节点的负载尽量均衡。同时,etcd存储系统中数据的更新能够保持线性一致性。并且,每个节点均可以处理RabbitMQ系统的请求,提升了存储系统的读写性能。
为了便于理解,下面结合图3对分布式锁的获取顺序的确定方法进行解释。如图3所示,仍以etcd存储系统包括节点A、节点B和节点C,RabbitMQ系统包括节点a、节点b和节点c为例,其中,修订值可以为etcd存储系统中的Revision值。
etcd存储系统中的数据会根据操作编号进行全局编号,然后通过Revision值对每个全局编号进行标记。由于Revision值是保持全局单调递增的,因此,当数据发生变更(如创建、修改、删除等)时,每次变更对应的Revision值均会依次加一。
etcd存储系统根据RabbitMQ系统中节点的个数生成3个线程进行分布式锁的争夺。首先,etcd存储系统中的节点A分别获取节点a、节点b和节点c各自对应的Revision值。然后,基于节点a、节点b和节点c各自对应的修订号的数值大小,对节点a、节点b和节点c的分布式锁的获取顺序进行排序。
由于Revision值具备全局唯一性,节点a、节点b和节点c均根据Revision值大小依次获取分布式锁,能够避免高并发中的惊群效应,实现公平锁,同时,能够满足互斥性,以保证任意时刻仅能有一个节点持有分布式锁。
进一步的,对于同一个分布式锁,加锁和解锁必须为一个进程。Etcd存储系统能够实现分布式锁的原子操作。例如,在多个节点同时创建某个目录时,仅保证只有一个节点可以成功创建,即该节点获取到了分布式锁。而其他节点可以进入等待队列。
当某一节点获得分布式锁后,则该节点可以作为用于网络分区恢复的主节点。在基于该主节点对消息队列系统执行网络分区恢复操作时,首先,执行重启主节点的消息队列服务的命令,以使主节点重新启动消息队列服务。然后,将消息队列系统中除主节点之外的其他节点以从节点的方式添加至主节点所属的网络分区中。
具体的,在进行网络分区恢复时,还可以基于主节点和从节点生成网络分区数据。然后,将网络分区数据存储至主节点对应的数据库中,以便通过主节点对应的数据库将网络分区数据同步至从节点各自对应的数据库中。
具体的,以RabbitMQ系统中各节点对应的数据库为Mnesia数据库为例。当RabbitMQ系统出现网络分区时,不同节点上的Mnesia数据库的内容不一致,导致节点读写行为异常。因此在进行脑裂恢复时,需要重置Mnesia数据库,即将主节点对应的Mnesia数据库的内容同步至从节点对应的Mnesia数据库中。
图4为本公开实施例提供的一种网络恢复装置的结构示意图;如图4所示,本实施例提供了一种网络恢复装置400设置于存储系统,存储系统连接有消息队列系统。具体的,该网络恢复装置400包括获取模块401和网络恢复模块402。
获取模块401,被配置为执行获取消息队列系统中每个节点的状态信息,状态信息包括分区状态信息;
网络恢复模块402,被配置为执行在分区状态信息表征消息队列系统存在网络分区的情况下,基于消息队列系统中每个节点各自对应的修订号依次确定每个节点的分布式锁的获取顺序;根据每个节点各自对应的分布式锁的获取顺序在消息队列系统的节点中确定主节点;基于主节点对消息队列系统执行网络分区恢复操作。
根据本公开的实施例,网络恢复模块402,还被置为执行获取消息队列系统中每个节点各自对应的修订号;基于每个节点各自对应的修订号的数值大小,对每个节点的分布式锁的获取顺序进行排序。
根据本公开的实施例,网络恢复模块402,还被置为执行重启主节点的消息队列服务的命令,以使主节点重新启动消息队列服务;将消息队列系统中除主节点之外的其他节点以从节点的方式添加至主节点所属的网络分区中。
根据本公开的实施例,在将消息队列系统中除主节点之外的其他节点以从节点的方式添加至主节点所属的网络分区中之后,网络恢复模块402,还被置为执行基于主节点和从节点生成网络分区数据;将网络分区数据存储至主节点对应的数据库中,以便通过主节点对应的数据库将网络分区数据同步至从节点各自对应的数据库中。
根据本公开的实施例,存储系统包括etcd存储系统,消息队列系统包括RabbitMQ系统。
根据本公开的实施例,状态信息还包括节点网络状态信息和服务运行状态信息。网络恢复模块402,还被置为执行基于节点网络状态信息和服务运行状态信息确定消息队列系统中存在网络故障的故障节点及故障节点的网络故障原因;基于与故障原因相对应的网络恢复方案对故障节点执行网络恢复操作。
根据本公开的实施例,网络恢复模块402,还被置为执行在网络状态信息表征故障节点存在网络异常的情况下,对故障节点执行网络修复操作;在服务运行状态信息表征故障节点存在服务异常的情况下,重新启动故障节点运行的消息队列服务。
图4所述的网络恢复装置可以执行图1所示实施例所述的网络恢复方法,其实现原理和技术效果不再赘述。对于上述实施例中的网络恢复装置其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在一个可能的设计中,上述图4所示的网络恢复装置的结构可实现为一电子设备。如图5所示,该电子设备500可以包括:处理器501、存储器502。其中,存储器502上存储有可执行代码,当所述可执行代码被处理器501执行时,至少使处理器501可以实现如前述图1所示实施例中提供的网络恢复方法。
其中,该控制设备的结构中还可以包括通信接口503,用于与其他设备通信。
图6为本公开实施例提供的另一种电子设备的结构示意图,如图6所示,上述电子设备600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(I/O)接口612,传感器组件614,以及通信组件616。
处理组件602通常控制电子设备600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法S101-S105中的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604被配置为存储各种类型的数据以支持在电子设备600的操作。这些数据的示例包括用于在电子设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为电子设备600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为电子设备600生成、管理和分配电力相关联的组件。
多媒体组件608包括在电子设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当电子设备600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当电子设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
输入/输出接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为电子设备600提供各个方面的状态评估。例如,传感器组件614可以检测到电子设备600的打开/关闭状态,组件的相对定位,例如所述组件为电子设备600的显示器和小键盘,传感器组件614还可以检测电子设备600或电子设备600一个组件的位置改变,用户与电子设备600接触的存在或不存在,电子设备600方位或加速/减速和电子设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616被配置为便于电子设备600和其他设备之间有线或无线方式的通信。电子设备600可以接入基于通信标准的无线网络,如WiFi,2G或3G或4G或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由电子设备600的处理器620执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
另外,本公开实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行前述图1所示实施例中提供的网络恢复方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的各个模块可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对本公开做出贡献的部分可以以计算机产品的形式体现出来,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围。

Claims (9)

1.一种网络恢复方法,应用于存储系统,其特征在于,所述存储系统连接有消息队列系统,所述方法包括:
获取所述消息队列系统中每个节点的状态信息,所述状态信息包括分区状态信息;
在所述分区状态信息表征所述消息队列系统存在网络分区的情况下,基于所述消息队列系统中每个节点各自对应的修订号依次确定所述每个节点的分布式锁的获取顺序,所述消息队列系统中每个节点任意一次修改均对应有所述修订号;
根据所述每个节点各自对应的分布式锁的获取顺序在所述消息队列系统的节点中确定主节点;
基于所述主节点对所述消息队列系统执行网络分区恢复操作;
所述状态信息还包括节点网络状态信息和服务运行状态信息,所述方法还包括:
基于所述节点网络状态信息和所述服务运行状态信息确定所述消息队列系统中存在网络故障的故障节点及所述故障节点的网络故障原因;
基于与所述故障原因相对应的网络恢复方案对所述故障节点执行网络恢复操作。
2.根据权利要求1所述的方法,其特征在于,所述基于所述消息队列系统中每个节点各自对应的修订号依次确定所述每个节点的分布式锁的获取顺序,包括:
获取所述消息队列系统中每个节点各自对应的所述修订号;
基于所述每个节点各自对应的所述修订号的数值大小,对所述每个节点的分布式锁的获取顺序进行排序。
3.根据权利要求1所述的方法,其特征在于,所述基于所述主节点对所述消息队列系统执行网络分区恢复操作,包括:
执行重启所述主节点的消息队列服务的命令,以使所述主节点重新启动所述消息队列服务;
将所述消息队列系统中除所述主节点之外的其他节点以从节点的方式添加至所述主节点所属的网络分区中。
4.根据权利要求3所述的方法,其特征在于,在将所述消息队列系统中除所述主节点之外的其他节点以从节点的方式添加至所述主节点所属的网络分区中之后,所述方法还包括:
基于所述主节点和所述从节点生成网络分区数据;
将所述网络分区数据存储至所述主节点对应的数据库中,以便通过所述主节点对应的数据库将所述网络分区数据同步至所述从节点各自对应的数据库中。
5.根据权利要求1所述的方法,其特征在于,所述存储系统包括etcd存储系统,所述消息队列系统包括RabbitMQ系统。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述网络状态信息表征所述故障节点存在网络异常的情况下,对所述故障节点执行网络修复操作;
在所述服务运行状态信息表征所述故障节点存在服务异常的情况下,重新启动所述故障节点运行的消息队列服务。
7.一种网络恢复装置,设置于存储系统,其特征在于,所述存储系统连接有消息队列系统,所述装置包括:
获取模块,被配置为执行获取所述消息队列系统中每个节点的状态信息,所述状态信息包括分区状态信息;
网络恢复模块,被配置为执行在所述分区状态信息表征所述消息队列系统存在网络分区的情况下,基于所述消息队列系统中每个节点各自对应的修订号依次确定所述每个节点的分布式锁的获取顺序,所述消息队列系统中每个节点任意一次修改均对应有所述修订号;根据所述每个节点各自对应的分布式锁的获取顺序在所述消息队列系统的节点中确定主节点;基于所述主节点对所述消息队列系统执行网络分区恢复操作;
所述状态信息还包括节点网络状态信息和服务运行状态信息,网络恢复模,还被置为执行基于节点网络状态信息和服务运行状态信息确定消息队列系统中存在网络故障的故障节点及故障节点的网络故障原因;基于与故障原因相对应的网络恢复方案对故障节点执行网络恢复操作。
8.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至6中任一项所述的网络恢复方法。
9.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至6中任一项所述的网络恢复方法。
CN202210476307.3A 2022-04-29 2022-04-29 网络恢复方法、装置、设备及存储介质 Active CN115037595B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210476307.3A CN115037595B (zh) 2022-04-29 2022-04-29 网络恢复方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210476307.3A CN115037595B (zh) 2022-04-29 2022-04-29 网络恢复方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115037595A CN115037595A (zh) 2022-09-09
CN115037595B true CN115037595B (zh) 2024-04-23

Family

ID=83119904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210476307.3A Active CN115037595B (zh) 2022-04-29 2022-04-29 网络恢复方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115037595B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109286529A (zh) * 2018-10-31 2019-01-29 武汉烽火信息集成技术有限公司 一种恢复RabbitMQ网络分区的方法及系统
CN110290012A (zh) * 2019-07-03 2019-09-27 浪潮云信息技术有限公司 RabbitMQ集群故障的检测恢复系统及方法
CN111708668A (zh) * 2020-05-29 2020-09-25 北京金山云网络技术有限公司 集群故障的处理方法、装置及电子设备
CN113438111A (zh) * 2021-06-23 2021-09-24 华云数据控股集团有限公司 基于Raft分布式恢复RabbitMQ网络分区的方法及应用
CN113434279A (zh) * 2021-07-14 2021-09-24 上海浦东发展银行股份有限公司 一种任务执行方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9946593B2 (en) * 2015-09-18 2018-04-17 Salesforce.Com, Inc. Recovery strategy for a stream processing system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109286529A (zh) * 2018-10-31 2019-01-29 武汉烽火信息集成技术有限公司 一种恢复RabbitMQ网络分区的方法及系统
CN110290012A (zh) * 2019-07-03 2019-09-27 浪潮云信息技术有限公司 RabbitMQ集群故障的检测恢复系统及方法
CN111708668A (zh) * 2020-05-29 2020-09-25 北京金山云网络技术有限公司 集群故障的处理方法、装置及电子设备
CN113438111A (zh) * 2021-06-23 2021-09-24 华云数据控股集团有限公司 基于Raft分布式恢复RabbitMQ网络分区的方法及应用
CN113434279A (zh) * 2021-07-14 2021-09-24 上海浦东发展银行股份有限公司 一种任务执行方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN115037595A (zh) 2022-09-09

Similar Documents

Publication Publication Date Title
US20210216637A1 (en) Firmware upgrade method and device, and storage medium
WO2022036901A1 (zh) 一种Redis副本集的实现方法及装置
CN109684406A (zh) 跨机房的redis集群备份数据的方法、装置、设备及存储介质
CN110650164B (zh) 文件的上传方法、装置、终端以及计算机存储介质
CN111966466A (zh) 一种容器管理方法、设备以及介质
CN113886021A (zh) 一种镜像备份方法、装置、电子设备及可读存储介质
CN111488163B (zh) 一种固件更新方法、装置及电子设备和存储介质
CN115037595B (zh) 网络恢复方法、装置、设备及存储介质
CN110881224A (zh) 一种网络长连接方法、装置、设备及存储介质
CN113641640B (zh) 用于流式计算系统的数据处理方法、装置、设备和介质
CN116048757A (zh) 任务处理方法、装置、电子设备和存储介质
CN111290882B (zh) 数据文件备份方法、数据文件备份装置及电子设备
CN112883314B (zh) 一种请求处理方法及装置
CN115102862A (zh) 一种用于sdn设备的自动同步方法及装置
CN111274210B (zh) 元数据处理方法、装置及电子设备
CN115297144B (zh) 节点数据交互方法和装置
CN111221899B (zh) 一种跨机房数据同步方法和装置
CN114237497B (zh) 一种分布式存储方法及装置
CN112667474B (zh) 一种数据监控方法、装置、电子设备及存储介质
US20150199406A1 (en) Method and device for filtering system events, terminal, and storage medium
CN113157604B (zh) 基于分布式系统的数据获取方法、装置及相关产品
CN112860719B (zh) 数据处理方法、装置及电子设备
US11953995B1 (en) Centralized data backup platform supporting multiple data environments
CN111625251B (zh) 一种处理应用实例的方法及装置
CN112732679A (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