CN115878696B - 一种分布式数据处理集群高可用方法和装置 - Google Patents
一种分布式数据处理集群高可用方法和装置 Download PDFInfo
- Publication number
- CN115878696B CN115878696B CN202310201739.8A CN202310201739A CN115878696B CN 115878696 B CN115878696 B CN 115878696B CN 202310201739 A CN202310201739 A CN 202310201739A CN 115878696 B CN115878696 B CN 115878696B
- Authority
- CN
- China
- Prior art keywords
- data processing
- lock
- state
- node
- lock information
- 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
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式数据处理集群高可用方法和装置,包括:多个数据处理子单元共用的分布式锁控制器在发起抢锁的时,不断查询分布式缓存中是否存在多个数据处理子单元的第一锁信息,若存在,则读取分布式缓存中的第一锁信息并判断第一锁信息的节点标识是否一致,若一致且处理标志为处理,则创建第二锁信息并将服务状态控制器的数据处理状态设置为活跃,第二锁信息为利用最新的更新时间戳和通用唯一标识码更新后的第一锁信息,将第二锁信息存储,并将数据处理状态为活跃的一个数据处理子单元,或者一个数据处理服务单元,或者一个节点作为主状态对数据进行处理。该方法可以解决集群时间不连续情况下分布式锁的可用性问题。
Description
技术领域
本发明涉及数据处理***高可用技术领域,更具体的涉及一种分布式数据处理集群高可用方法和装置。
背景技术
为了保证数据处理的可靠性,传统的数据处理***往往采取以节点为中心的主备模式,这种模式需要两个节点相互通信进行数据交互,只在主节点上进行数据处理,备节点同步主节点的状态,同步的内容包括主备标志、数据处理状态等信息。随着数据处理规模和复杂度的快速上升,传统的集中式数据处理***的缺点逐步显现,备机的作用没有得到充分发挥,***不自主可控、可拓展性不高、部署不够灵活,无法满足越来越复杂和多样的数据处理发展需求。
为了克服传统集中式数据处理***架构的缺点,可以将数据处理***设计为分布式架构,按功能将***拆分为多个数据处理服务单元,每个数据处理单元包含一些数据处理子单元,这些数据处理服务单元运行在集群环境下。在集群环境下运行的数据处理服务单元需要解决数据处理的一致性问题以及高可用性问题。不能将同一数据进行多次处理,否则将会引起灾难性后果。对于集群环境中的数据处理服务单元,用分布式锁解决这些问题是比较好的思路。
目前国内外有很多的分布式锁解决方案,常见的分为两类,一类基于分布式一致性算法的锁服务,比如Zookeeper、Chubby;一种是基于分布式缓存实现的锁服务及其变种,比如使用Redis实现的锁服务和基于Redis实现的RedLock等。基于Redis等分布式缓存实现的分布式锁具有简单、可靠、效率高等特点,可以基于此设计实现高可用的分布式数据处理***。但是常规的基于分布式缓存实现的分布式锁一般通过设置键的有效期,根据键的存在性判断是否存在锁。这种方式实现的分布式锁对集群各节点的时间连续性和一致性有较高要求,如果节点之间时间不一致、节点频繁从时间基准源同步时间,分布式锁可能会频繁失效,从而导致***数据处理发生本不该发生的服务状态切换。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明第一方面提出一种分布式数据处理集群高可用方法,应用于多个数据集群处理的数据处理子单元、或多个数据处理服务单元、或多个节点,每个节点上设有多个不同的数据处理服务单元和一分布式缓存,每个数据处理服务单元包含多个数据处理子单元,集群包括多个节点的功能相同的数据处理服务单元,节点上设有分布式锁控制器和服务状态控制器,方法包括:
多个数据处理子单元共用的分布式锁控制器在发起抢锁的时,不断查询分布式缓存中是否存在多个数据处理子单元的第一锁信息,第一锁信息包括锁标识、创建时间戳、更新时间戳、节点标识、通用唯一标识码、处理标志;
若存在第一锁信息,则读取分布式缓存中的第一锁信息并判断第一锁信息的节点标识是否与数据处理子单元所在的节点一致;
若节点标识一致且处理标志为处理,则创建第二锁信息并将服务状态控制器的数据处理状态设置为第一状态,第二锁信息为利用最新的更新时间戳和通用唯一标识码更新后的第一锁信息;
将第二锁信息写入分布式缓存,并将数据处理状态为第一状态的一个数据处理子单元作为主状态,或者一个数据处理服务单元作为主状态,或者一个节点作为主状态对数据进行处理。
进一步,若不存在数据处理子单元的第一锁信息,则向分布式缓存中写入数据处理子单元的第一锁信并将节点的数据处理状态设置为第二状态。
进一步,若第一锁信息的节点标识与数据处理子单元所在的节点不一致,则设置数据处理状态为第二状态并判断连续读取的第二锁信息是否一致,若一致,则设置锁不变性计数器的计数加一,若锁不变性计数器的计数超过预设值,则创建第三锁信息。
进一步,连续读取的第二锁信息不一致,则保存最新读取的第一锁信息并将锁不变性计数器的计数清零,数据处理子单元处于抢锁状态。
进一步,多个数字处理子单元至少包括一个数字处理子单元。
进一步,还包括:
当数据在新的节点处理时,创建第四锁信息并写入分布式缓存,第四锁信息的锁标识为新的数据处理子单元标识,创建时间戳为当前时间,更新时间戳为当前时间,节点标识为新的节点的节点标识,通用唯一标识码为新的随机通用唯一标识码、处理标志为处理。
进一步,在改变数据处理状态时,新建第五锁信息。
本发明另一方面提供一种分布式数据处理集群高可用装置,位于多个数据集群处理的数据处理子单元、或多个数据处理服务单元、或多个节点上,每个所述节点上设有多个不同的数据处理服务单元和一分布式缓存,每个所述数据处理服务单元包含多个数据处理子单元,集群包括多个节点的功能相同的数据处理服务单元,节点上设有分布式锁控制器和服务状态控制器,所述装置包括;
第一判断模块,用于多个数据处理子单元共用的分布式锁控制器在发起抢锁的时,不断查询分布式缓存中是否存在多个数据处理子单元的第一锁信息,第一锁信息包括锁标识、创建时间戳、更新时间戳、节点标识、通用唯一标识码、处理标志;
第二判断模块,用于若存在第一锁信息,则读取分布式缓存中的第一锁信息并判断第一锁信息的节点标识是否与数据处理子单元所在的节点一致;
状态标识模块,用于若节点标识一致且处理标志为处理,则创建第二锁信息并将服务状态控制器的数据处理状态设置为第一状态,第二锁信息为利用最新的更新时间戳和通用唯一标识码更新后的第一锁信息;
主备确定模块,用于将第二锁信息写入分布式缓存,并将数据处理状态为第一状态的一个数据处理子单元作为主状态,或者一个数据处理服务单元作为主状态,或者一个节点作为主状态对数据进行处理。
本发明还提供一种电子设备,电子设备包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现第一方面的分布式数据处理集群高可用方法。
本发明还提供一种计算机可读存储介质,存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现第一方面的分布式数据处理集群高可用方法。
本发明实施例提供一种分布式数据处理集群高可用方法和装置,与现有技术相比,其有益效果如下:
1、本发明判断分布式锁有效性不仅判断锁的存在性、还判断锁对象信息内容持续改变性的机制,解决了集群时间不连续情况下分布式锁的可用性问题;
2、本发明提出的高可用机制方法,不受节点数量的限制;
3、本发明提供的高可用方法对每个数据处理服务单元中的多个数据处理子单元都可以单独进行高可用控制,高可用的控制不再局限于单一的数据处理服务单元或者整个节点。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还能够根据这些附图获得其它附图。
图1为本发明实施例提供的一种分布式数据处理集群高可用方法的流程图;
图2为本发明实施例提供的一种分布式数据处理集群高可用方法的数据处理集群结构示意图;
图3为本发明实施例提供的一种分布式数据处理集群高可用方法的判断流程图;
图4为本发明实施例提供的一种分布式数据处理集群高可用装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或无创造性的劳动可以包括更多或者更少的操作步骤。在实际中的***或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
如图1-3所示,本发明提供一种分布式数据处理集群高可用方法,应用于多个数据集群处理的数据处理子单元、或多个数据处理服务单元、或多个节点,每个节点上设有多个不同的数据处理服务单元和一分布式缓存,每个数据处理服务单元包含多个数据处理子单元,集群包括多个节点的功能相同的数据处理服务单元,节点上设有分布式锁控制器和服务状态控制器,方法包括:
步骤1、多个数据处理子单元共用的分布式锁控制器在发起抢锁的时,不断查询分布式缓存中是否存在多个数据处理子单元的第一锁信息,第一锁信息包括锁标识、创建时间戳、更新时间戳、节点标识、通用唯一标识码、处理标志;
需要说明的是,如图2所示,集群中可以包含节点101、节点102、节点103,以及网络交换机113。节点101、节点102、节点103中分别运行Redis服务104、Redis服务105、Redis服务106。节点101、节点102、节点103中运行数据处理服务单元107、数据处理服务单元108、数据处理服务单元109,分别为107、108、109。节点101、节点102、节点103中分别运行数据处理服务单元110、数据处理服务单元111、数据处理服务单元112,数据处理服务单元107、数据处理服务单元108、数据处理服务单元109组成第一服务集群,数据处理服务单元110、数据处理服务单元111、数据处理服务单元112组成第二服务集群。
数据处理服务单元107上包含数据处理子单元1071、数据处理子单元1072,数据处理服务单元108上包含数据处理子单元1081、数据处理子单元1082,数据处理服务单元109上包含数据处理子单元1091、数据处理子单元1092;数据处理服务单元110上包含数据处理子单元1101、数据处理子单元1102,数据处理服务单元111上包含数据处理子单元1111、数据处理子单元1112,数据处理服务单元112上包含数据处理子单元1121、数据处理子单元1122。同类的数据子单元具有数据处理的高可用性。
节点101、节点102、节点103通过网络交换机113相互连接。节点101、节点102、节点103可以是x86_64、MIPS64、ARM等体系架构的服务器、工控机、PC机,运行在其上的操作***是可以支持其体系结构的linux操作***。Redis服务104、Redis服务105、Redis服务106组成Redis高可用集群。应该理解Redis服务104、Redis服务105、Redis服务106组成Redis高可用集群只是示意性的,本发明并不是必须使用Redis服务存储分布式锁。
应该理解,图1中集群的节点数量、以及运行在每个节点上的数据处理服务单元数量,每个数据处理服务单元中的子单元数量,都是示意性的,而且每个节点上运行的数据处理服务单元不必相同。根据实际需要,可以具有任意数目的节点,每个节点上运行的数据处理服务单元可以灵活配置。
在步骤1中,多个数据处理子单元共用的分布式锁控制器在发起抢锁的时,不断查询分布式缓存中是否存在多个数据处理子单元的第一锁信息,其中,分布式锁还应具有重入性,即具备在持有锁的情况下再次加锁的能力以及非持有锁者再次加锁的能力,分布式锁实现的关键是抢锁机制,核心思想就是:先来的人先把数据改成自己的标识,如服务IP,后来的人发现标识已存在,就抢锁失败,继续等待。等先来的人执行方法结束,把标识清空,其他的人继续抢锁。在抢锁时,各个数据处理服务单元内的数据处理子单元之间,或者各个数据处理服务单元内的所有数据处理子单元作为一个整体,或者各个节点内的所有数据处理服务单元内的数据处理子单元作为一个整体,分别设置一分布式锁控制器,通过分布式锁控制器不断查询分布式缓存中是否存在多个数据处理子单元的第一锁信息。第一锁信息分布式锁对象含有的信息内容包括锁标识、创建时间戳、更新时间戳、节点标识、通用唯一标识码、处理标志。分布式锁标识与其锁定的数据处理子单元具有一一对应的关系。判断分布式锁是否存在是依据Redis中是否有对应的键。
在本实施例中,第一种情况:每个节点上有多个数据处理服务单元,集群中每个节点的同一数据处理服务单元组成服务集群,每个数据处理服务单元包括功能不同的多个数据处理子单元,每个子单元包含一个分布式锁控制器和一个状态控制器。适用于数据处理子单元的主备确定。
第二种情况,一种或几种数据处理服务单元的所有数据处理子单元共用一个分布式锁控制器和一个服务状态控制器。适用于数据处理服务单元的主备确定。
第三种情况,节点上的全部数据处理服务单元的所有数据处理子单元共用分布式锁。适用于节点的主备确定。
步骤2、若存在第一锁信息,则读取分布式缓存中的第一锁信息并判断第一锁信息的节点标识是否与数据处理子单元所在的节点一致;
在步骤2中,通过读取第一锁信息,根据第一锁信息判断锁的拥有者是否为本节点,根据判断读取的第一锁信息中的节点标识是否与本节点标识相一致,如果一致,则锁的拥有者是本节点,如果不一致,则锁的拥有者不是本节点。
步骤3、若节点标识一致且处理标志为处理,则创建第二锁信息并将服务状态控制器的数据处理状态设置为第一状态,第二锁信息为利用最新的更新时间戳和通用唯一标识码更新后的第一锁信息;
在本步骤中,还要判断第一锁信息中节点标识是否为处理,如果是处理,则说明此时服务器,应用程序、线程或者进程正在处理数据,此时不能释放锁,需要强化该锁被占有性。此时构建一个新的锁对象,即第二锁对象,其携带第二锁信息,第二锁信息中的锁标识为同一数据处理子单元标识、创建时间戳为已经读取的第一锁对象的第一锁信息创建时间、更新时间戳为当前时间、节点标识为本节点的节点标识、通用唯一标识码为新的随机通用唯一标识码、处理标志为处理,将锁对象写入到Redis,数据处理状态设置为第一状态,即Active。
步骤4、将第二锁信息写入分布式缓存,并将数据处理状态为第一状态,的一个数据处理子单元作为主状态,或者一个数据处理服务单元作为主状态,或者一个节点作为主状态对数据进行处理。
在步骤4中,创建第二锁信息后,从Redis中获取的第二锁信息都是最新的本数据处理子单元的最新的锁信息,通过判断第二锁信息中节点标识和本节点标识是否一致确定本数据处理子单元是否持续在占用该锁。同时,将该数据处理子单元数据处理状态设置为第一状态,即Active,代表本数据处理子单元为主处理单元,其他数据处理子单元为备用处理单元。
综上,在第一种情况下,集群包括多个数据处理节点,每个节点上有多个数据处理服务单元,集群中每个节点的同一数据处理服务单元组成服务集群,每个数据处理服务单元包括功能不同的多个数据处理子单元,每个数据处理子单元包含一个分布式锁控制器和一个状态控制器,分布式锁控制器的处理方法包括:新建锁,在发起节点建立分布式锁对象后,将其写入分布式缓存;更新锁,发起节点持续建立新的分布式锁对象,将分布式缓存中的锁对象更新;更换锁,判断分布式锁的有效性,如果无效,则建立新的分布式锁对象,将分布式缓存中的锁对象更新;状态控制器的处理方法为状态维护,维护子单元数据处理状态,数据处理子单元为主状态,该服务集群中的所有节点上的该数据处理服务单元中,只有状态为Active的子单元进行对应的数据处理,其它的非Active子单元处于备状态,不进行对应的数据处理。第二种情况和第三种情况与第一种情况类似。
在本发明提供的一种可能的实施方式中,若不存在数据处理子单元的第一锁信息,则向分布式缓存中写入数据处理子单元的第一锁信并将节点的数据处理状态设置为第二状态。
在本发明提供的实施例中,如图3所示,在第一种情况下,数据处理子单元的分布式锁控制器在读取第一锁信息时,如果锁不存在,则状态控制器将状态设置为为第二状态,即Passive,第二种情况和第三种情况与第一种情况类似。
在本发明提供的一种可能的实施方式中,若第一锁信息的节点标识与数据处理子单元所在的节点不一致,则设置数据处理状态为第二状态,即Passive并判断连续读取的第二锁信息是否一致,若一致,则设置锁不变性计数器的计数加一,若锁不变性计数器的计数超过预设值,则创建第三锁信息。
在本发明提供的实施例中,如图3所示,数据处理子单元的分布式锁控制器判断若第一锁信息的节点标识与数据处理子单元所在的节点不一致,此时锁的拥有者不在是本节点,则状态控制器将状态设置为第二状态,即Passive,分布式锁控制器判断连续读取的第二锁信息是否一致,若一致,则设置锁不变性计数器的计数加一,此时说明锁有故障,可能的原因是服务器,应用程序、线程或者进程出了问题,锁不变性计数器的计数加一,若锁不变性计数器的计数超过预设值,则新建锁,即创建第三锁信息,其锁信息内容中的锁标识为与对应的数据处理子单元标识、创建时间戳为当前时间、更新时间戳也为当前时间、节点标识为本节点的节点标识、通用唯一标识码为新的随机通用唯一标识码、处理标志为处理,进行写锁操作。
第一锁信息的节点标识与数据处理子单元所在的节点不一致,即判断锁信息内容持续改变性方法包括:读取锁对象信息内容,将其与上一次读取的对象信息内容进行比较,如果对象信息内容不一致,则将锁不变性计数器的值初始化为初始值;如果对象信息内容与上一次读取的对象信息内容一致,则将锁不变性计数器值加1;如果锁不变性计数器值大于某个预先设置的阀值,在本实施例中阈值为3,则认为锁对象信息内容持续不变;所述的比较包含对创建时间戳、更新时间戳、节点标识、通用唯一标识码、处理标志的值进行一一比对,只要有一个不一致,则认为结果为不一致。
在本发明提供的一种可能的实施方式中,连续读取的第二锁信息不一致,则保存最新读取的第一锁信息并将锁不变性计数器的计数清零,数据处理子单元处于抢锁状态。
在本发明提供的实施例中,如图3所示,此时说明锁在使用中,不做任何操作,将计数器清零,不做写人操作。
在本发明提供的一种可能的实施方式中,多个数字处理子单元至少包括一个数字处理子单元。
在本发明提供的实施例中,
数据处理子单元的数量不做限制。
在本发明提供的一种可能的实施方式中,还包括:
当数据在新的节点处理时,创建第四锁信息并写入分布式缓存,第四锁信息的锁标识为新的数据处理子单元标识,创建时间戳为当前时间,更新时间戳为当前时间,节点标识为新的节点的节点标识,通用唯一标识码为新的随机通用唯一标识码、处理标志为处理。
在本发明提供的实施例中,
如果需要数据在某个节点处理,即外部干预时,则构建一个新的锁对象,其信息内容中的锁标识为与对应的数据处理子单元标识、创建时间戳为当前时间、更新时间戳也为当前时间、节点标识为本节点的节点标识、通用唯一标识码为新的随机通用唯一标识码、处理标志为处理,进行写锁操作;如果需要将原来处于状态为Active的子单元排除,则读取锁对象,构建一个新的锁对象,其创建时间戳为读取的锁对象信息内容中的创建时间戳、更新时间戳也为当前时间、节点标识为读取的锁对象信息内容中的节点标识、通用唯一标识码为新的随机通用唯一标识码、处理标志为不处理,进行写锁操作。
在本发明提供的一种可能的实施方式中,
在本发明提供的实施例中,如果需要将原来处于状态为第一状态的子单元排除,则读取锁对象,构建一个新的锁对象,其创建时间戳为读取的锁对象信息内容中的创建时间戳、更新时间戳也为当前时间、节点标识为读取的锁对象信息内容中的节点标识、通用唯一标识码为新的随机通用唯一标识码、处理标志为不处理,进行写锁操作,如果锁对象中的节点标识和节点标识一致,且处理标志为不处理,则状态为第三状态,即Unready;如果锁对象中的节点标识和本节点标识不一致,则状态设置为第二状态,即Passive。
如图4所示,本发明另一方面提供一种分布式数据处理集群高可用装置200,包括:
第一判断模块201,用于多个数据处理子单元共用的分布式锁控制器在发起抢锁的时,不断查询分布式缓存中是否存在多个数据处理子单元的第一锁信息,第一锁信息包括锁标识、创建时间戳、更新时间戳、节点标识、通用唯一标识码、处理标志;
第二判断模块202,用于若存在第一锁信息,则读取分布式缓存中的第一锁信息并判断第一锁信息的节点标识是否与数据处理子单元所在的节点一致;
状态标识模块203,用于若节点标识一致且处理标志为处理,则创建第二锁信息并将服务状态控制器的数据处理状态设置为第一状态,第二锁信息为利用最新的更新时间戳和通用唯一标识码更新后的第一锁信息;
主备确定模块204,用于将第二锁信息写入分布式缓存,并将数据处理状态为Active的一个数据处理子单元作为主状态,或者一个数据处理服务单元作为主状态,或者一个节点作为主状态对数据进行处理。
在本发明提供的又一实施例中,还提供了一种设备,所述设备包括处理器和存储器,所述存储器种存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现本发明实施例中所述的分布式数据处理集群高可用方法。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现本发明实施例中所述的分布式数据处理集群高可用方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk (SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种分布式数据处理集群高可用方法,应用于多个数据集群处理的数据处理子单元、或多个数据处理服务单元、或多个节点,每个所述节点上设有多个不同的所述数据处理服务单元和一分布式缓存,每个所述数据处理服务单元包含多个所述数据处理子单元,所述集群包括多个所述节点的功能相同的所述数据处理服务单元,其特征在于,所述节点上设有分布式锁控制器和服务状态控制器,所述方法包括:
多个所述数据处理子单元共用的所述分布式锁控制器在发起抢锁时,不断查询所述分布式缓存中是否存在多个所述数据处理子单元的第一锁信息,所述第一锁信息包括锁标识、创建时间戳、更新时间戳、节点标识、通用唯一标识码、处理标志;
若存在所述第一锁信息,则读取所述分布式缓存中的第一锁信息并判断所述第一锁信息的所述节点标识是否与所述数据处理子单元所在的所述节点一致;
若所述节点标识一致且所述处理标志为处理,则创建第二锁信息并将所述服务状态控制器的数据处理状态设置为第一状态,所述第二锁信息为利用最新的所述更新时间戳和所述通用唯一标识码更新后的第一锁信息;
将所述第二锁信息写入所述分布式缓存,并将数据处理状态为第一状态的所述数据处理子单元作为主状态,或者所述数据处理服务单元作为主状态,或者所述节点作为主状态对数据进行处理。
2.如权利要求1所述的一种分布式数据处理集群高可用方法,其特征在于,若不存在所述数据处理子单元的第一锁信息,则向所述分布式缓存中写入所述数据处理子单元的第一锁信并将所述节点的所述数据处理状态设置为第二状态。
3.如权利要求1所述的一种分布式数据处理集群高可用方法,其特征在于,若所述第一锁信息的所述节点标识与所述数据处理子单元所在的所述节点不一致,则设置所述数据处理状态为第二状态并判断连续读取的所述第二锁信息是否一致,若一致,则设置锁不变性计数器的计数加一,若所述锁不变性计数器的计数超过预设值,则创建第三锁信息。
4.如权利要求3所述的一种分布式数据处理集群高可用方法,其特征在于,连续读取的所述第二锁信息不一致,则保存最新读取的所述第一锁信息并将所述锁不变性计数器的计数清零,所述数据处理子单元处于抢锁状态。
5.如权利要求1所述的一种分布式数据处理集群高可用方法,其特征在于,所述多个数字处理子单元至少包括两个所述数字处理子单元。
6.如权利要求1所述的一种分布式数据处理集群高可用方法,其特征在于,还包括:
当数据在新的节点处理时,创建第四锁信息并写入所述分布式缓存,所述第四锁信息的锁标识为新的数据处理子单元标识,创建时间戳为当前时间,更新时间戳为当前时间,节点标识为新的节点的节点标识,通用唯一标识码为新的随机通用唯一标识码、处理标志为处理。
7.如权利要求1所述的一种分布式数据处理集群高可用方法,其特征在于,在改变所述数据处理状态时,新建第五锁信息。
8.一种分布式数据处理集群高可用装置,位于多个数据集群处理的数据处理子单元、或多个数据处理服务单元、或多个节点上,每个所述节点上设有多个不同的所述数据处理服务单元和一分布式缓存,每个所述数据处理服务单元包含多个所述数据处理子单元,所述集群包括多个所述节点的功能相同的所述数据处理服务单元,其特征在于,所述节点上设有分布式锁控制器和服务状态控制器,所述装置包括:
第一判断模块,用于多个所述数据处理子单元共用的所述分布式锁控制器在发起抢锁的时,不断查询分布式缓存中是否存在多个所述数据处理子单元的第一锁信息,所述第一锁信息包括锁标识、创建时间戳、更新时间戳、节点标识、通用唯一标识码、处理标志;
第二判断模块,用于若存在所述第一锁信息,则读取所述分布式缓存中的第一锁信息并判断所述第一锁信息的所述节点标识是否与所述数据处理子单元所在的所述节点一致;
状态标识模块,用于若所述节点标识一致且所述处理标志为处理,则创建第二锁信息并将所述服务状态控制器的数据处理状态设置为第一状态,所述第二锁信息为利用最新的所述更新时间戳和所述通用唯一标识码更新后的第一锁信息;
主备确定模块,用于将所述第二锁信息写入所述分布式缓存,并将数据处理状态为第一状态的所述数据处理子单元作为主状态,或者所述数据处理服务单元作为主状态,或者所述节点作为主状态对数据进行处理。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-7任一项所述的分布式数据处理集群高可用方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1-7任一项所述的分布式数据处理集群高可用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310201739.8A CN115878696B (zh) | 2023-03-06 | 2023-03-06 | 一种分布式数据处理集群高可用方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310201739.8A CN115878696B (zh) | 2023-03-06 | 2023-03-06 | 一种分布式数据处理集群高可用方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115878696A CN115878696A (zh) | 2023-03-31 |
CN115878696B true CN115878696B (zh) | 2023-04-28 |
Family
ID=85761965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310201739.8A Active CN115878696B (zh) | 2023-03-06 | 2023-03-06 | 一种分布式数据处理集群高可用方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115878696B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6523078B1 (en) * | 1999-11-23 | 2003-02-18 | Steeleye Technology, Inc. | Distributed locking system and method for a clustered system having a distributed system for storing cluster configuration information |
CN108874552A (zh) * | 2018-06-28 | 2018-11-23 | 杭州云英网络科技有限公司 | 分布式锁执行方法、装置及***、应用服务器和存储介质 |
CN111258976A (zh) * | 2018-12-03 | 2020-06-09 | 北京京东尚科信息技术有限公司 | 分布式锁实现方法、***、设备及存储介质 |
CN114048265A (zh) * | 2021-11-11 | 2022-02-15 | 北京知道创宇信息技术股份有限公司 | 任务处理方法、装置、电子设备和计算机可读存储介质 |
CN115277712A (zh) * | 2022-07-08 | 2022-11-01 | 北京城市网邻信息技术有限公司 | 分布式锁服务提供方法、装置、***及电子设备 |
CN115714722A (zh) * | 2022-12-15 | 2023-02-24 | 中国西安卫星测控中心 | 一种集群网络动态配置方法、装置和*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7403945B2 (en) * | 2004-11-01 | 2008-07-22 | Sybase, Inc. | Distributed database system providing data and space management methodology |
-
2023
- 2023-03-06 CN CN202310201739.8A patent/CN115878696B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6523078B1 (en) * | 1999-11-23 | 2003-02-18 | Steeleye Technology, Inc. | Distributed locking system and method for a clustered system having a distributed system for storing cluster configuration information |
CN108874552A (zh) * | 2018-06-28 | 2018-11-23 | 杭州云英网络科技有限公司 | 分布式锁执行方法、装置及***、应用服务器和存储介质 |
CN111258976A (zh) * | 2018-12-03 | 2020-06-09 | 北京京东尚科信息技术有限公司 | 分布式锁实现方法、***、设备及存储介质 |
CN114048265A (zh) * | 2021-11-11 | 2022-02-15 | 北京知道创宇信息技术股份有限公司 | 任务处理方法、装置、电子设备和计算机可读存储介质 |
CN115277712A (zh) * | 2022-07-08 | 2022-11-01 | 北京城市网邻信息技术有限公司 | 分布式锁服务提供方法、装置、***及电子设备 |
CN115714722A (zh) * | 2022-12-15 | 2023-02-24 | 中国西安卫星测控中心 | 一种集群网络动态配置方法、装置和*** |
Non-Patent Citations (3)
Title |
---|
"异构网络中高能效的资源虚拟化管理技术研究";李楠;《中国优秀硕士学位论文全文数据库电子期刊 信息科技辑》;I136-1426 * |
动态数据处理平台分布式缓存替换算法仿真;王庆桦;;计算机仿真(02);299-303 * |
基于Zookeeper的分布式锁服务及性能优化;刘芬;王芳;田昊;;计算机研究与发展(S1);238-243 * |
Also Published As
Publication number | Publication date |
---|---|
CN115878696A (zh) | 2023-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104715001B (zh) | 用于对数据处理***的集群中的共享资源执行写入操作的方法和*** | |
US10979286B2 (en) | Method, device and computer program product for managing distributed system | |
US7149853B2 (en) | System and method for synchronization for enforcing mutual exclusion among multiple negotiators | |
CN102455942B (zh) | 一种广域网虚拟机动态迁移方法及*** | |
CN108183961A (zh) | 一种基于Redis的分布式缓存方法 | |
JP2565658B2 (ja) | リソースの制御方法及び装置 | |
CN110597910A (zh) | 一种异地数据同步方法、装置和*** | |
CN111506592B (zh) | 一种数据库的升级方法和装置 | |
CN111125261B (zh) | 基于分布式缓存的数据传输方法 | |
US20170193070A1 (en) | System and method for a distributed replication lock for active-active geo-redundant systems | |
JP3222125B2 (ja) | システム間データベース共用方式 | |
CN113268472B (zh) | 一种分布式数据存储***及方法 | |
CN113420029B (zh) | 一种分布式***全局id生成方法、装置、设备及介质 | |
KR20210040866A (ko) | 파일 리소스 처리 방법, 장치, 기기, 매체 및 컴퓨터 프로그램 | |
CN111049886B (zh) | 多区域sdn控制器数据同步方法、服务器及*** | |
CN112230853A (zh) | 存储容量调整方法、装置、设备及存储介质 | |
CN108509296B (zh) | 一种处理设备故障的方法和*** | |
CN111104250A (zh) | 用于数据处理的方法、设备和计算机程序产品 | |
CN115878696B (zh) | 一种分布式数据处理集群高可用方法和装置 | |
CN114020279A (zh) | 应用软件分布式部署方法、***、终端及存储介质 | |
CN112243030A (zh) | 分布式存储***的数据同步方法、装置、设备及介质 | |
CN112000850A (zh) | 进行数据处理的方法、装置、***及设备 | |
CN111611550A (zh) | 计算机***、计算机装置以及授权管理方法 | |
CN115004662A (zh) | 数据同步方法、装置、数据存储***及计算机可读介质 | |
CN113609091B (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 |