CN110737670B - 一种集群数据一致性的保障方法、装置及系统 - Google Patents
一种集群数据一致性的保障方法、装置及系统 Download PDFInfo
- Publication number
- CN110737670B CN110737670B CN201911001766.0A CN201911001766A CN110737670B CN 110737670 B CN110737670 B CN 110737670B CN 201911001766 A CN201911001766 A CN 201911001766A CN 110737670 B CN110737670 B CN 110737670B
- Authority
- CN
- China
- Prior art keywords
- updated
- database
- version information
- instruction
- target cluster
- 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
- 238000000034 method Methods 0.000 title claims abstract description 121
- 230000008569 process Effects 0.000 claims abstract description 90
- 238000012795 verification Methods 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种集群数据一致性的保障方法,包括:获取目标集群中当前数据库的版本信息;将版本信息与待更新数据库的待更新版本信息进行比对;当版本信息与待更新版本信息不同时,发送将待更新数据库部署在所述目标集群的部署指令;当接收到待更新数据库在目标集群的部署数量达到预设的第一阈值的指令时,启动待更新数据库的服务进程;当接收到启动的服务进程的数量达到预设的第二阈值指令时,发送将端口信息由当前数据库切换至待更新数据库的切换指令。上述过程中,当接收到启动的服务进程的数量达到预设的第二阈值指令时,发送将端口信息由当前数据库切换至待更新数据库的切换指令,保证了所述目标集群中数据的一致性。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种集群数据一致性的保障方法、装置及系统。
背景技术
在集群系统中,为了保证计算性能,采用MemoryDb(内存数据库)技术在集群系统中的每个计算节点本地都存储了完备的数据库,以国际客票运价系统为例,由于国际客票运价业务的要求,每天要更新数据库几十次,业务上对一致性的要求很高。因此,同步高效的更新数据库并且令其同步生效是新的国际客票运价系统急需解决的问题。
因此,在集群系统中急需提供一种集群数据一致性的保障方法。
发明内容
有鉴于此,本发明提供了一种集群数据一致性的保障方法、装置及系统,用于保障集群系统中数据的一致性,具体方案如下:
一种集群数据一致性的保障方法,包括:
获取目标集群中当前数据库的版本信息;
将所述版本信息与待更新数据库的待更新版本信息进行比对;
当所述版本信息与所述待更新版本信息不同时,发送将所述待更新数据库部署在所述目标集群的部署指令;
当接收到所述待更新数据库在所述目标集群的部署数量达到预设的第一阈值的指令时,启动所述待更新数据库的服务进程;
当接收到启动的服务进程的数量达到预设的第二阈值指令时,发送将端口信息由所述当前数据库切换至所述待更新数据库的切换指令。
上述的方法,可选的,还包括:
当所述待更新数据库运行正常时,发送关闭所述当前数据库服务进程指令。
上述的方法,可选的,启动所述待更新数据库的服务进程,包括:
发送所述待更新数据库的服务进程指令到所述目标集群,启动所述目标集群中的待更新数据库服务进程;
接收所述目标集群反馈的启动所述目标集群中的待更新数据库服务进程的数量。
一种集群数据一致性的保障装置,包括:
获取模块,用于获取目标集群中当前数据库的版本信息;
比对模块,用于将所述版本信息与待更新数据库的待更新版本信息进行比对;
第一发送模块,用于当所述版本信息与所述待更新版本信息不同时,发送将所述待更新数据库部署在所述目标集群的部署指令;
启动模块,用于当接收到所述待更新数据库在所述目标集群的部署数量达到预设的第一阈值的指令时,启动所述待更新数据库的服务进程;
第二发送模块,用于当接收到启动的服务进程的数量达到预设的第二阈值指令时,发送将端口信息由所述当前数据库切换至所述待更新数据库的切换指令。
上述的装置,可选的,还包括:
关闭模块,用于当所述待更新数据库运行正常时,发送关闭所述当前数据库服务进程指令。
上述的装置,可选的,所述启动模块包括:
发送单元,用于发送所述待更新数据库的服务进程指令到所述目标集群,启动所述目标集群中的待更新数据库服务进程;
接收单元,用于接收所述目标集群反馈的启动所述目标集群中的待更新数据库服务进程的数量。
一种集群数据一致性的保障系统,包括:总控服务器、负载均衡服务器和目标集群,其中,
所述总控服务器,用于获取目标集群中当前数据库的版本信息,将所述版本信息与待更新数据库的待更新版本信息进行比对,当所述版本信息与所述待更新版本信息不同时,发送将所述待更新数据库部署在所述目标集群的部署指令,当接收到所述待更新数据库在所述目标集群的部署数量达到预设的第一阈值的指令时,启动所述待更新数据库的服务进程,当接收到启动的服务进程的数量达到预设的第二阈值指令时,发送将端口信息由所述当前数据库切换至所述待更新数据库的切换指令;
所述负载均衡服务器,用于接收所述切换指令和所述当前数据库和所述待更新数据的版本信息和端口信息,依据所述切换指令将所述端口信息由所述当前数据库切换至所述待更新数据库;
所述目标集群,用于存储当前数据库,接收所述待更新数据库,将所述当前数据库和所述待更新数据库的版本信息和端口信息发送给所述负载均衡服务器。
上述的系统,可选的,还包括:
更新服务器,用于更新待更新数据库,当接收到所述总控服务器的将所述待更新数据库部署在所述目标集群的部署指令时,将所述待更新数据库发送给所述目标集群。
上述的系统,可选的,所述更新服务器包括:
第一获取单元,用于获取所述当前数据库中各个数据表的第一标识;
第二获取单元,用于获取所述待更新数据库中各个数据表的第二标识;
比对单元,用于将存在对应关系的第一标识和第二标识进行对比,当两者不同时,将与所述第二标识对应的数据表部署到所述当前数据库中,当两者相同时,保持所述第一标识对应的数据表不变。
上述的系统,可选的,所述负载均衡服务器包括:
接收单元,用于接收所述切换指令;
校验单元,用于依据所述切换指令生成配置文件,对所述配置文件进行校验;
切换单元,用于当校验成功时,将将端口信息由所述当前数据库切换至所述待更新数据库。
与现有技术相比,本发明包括以下优点:
本发明公开了一种集群数据一致性的保障方法,包括:获取目标集群中当前数据库的版本信息;将版本信息与待更新数据库的待更新版本信息进行比对;当版本信息与待更新版本信息不同时,发送将待更新数据库部署在所述目标集群的部署指令;当接收到待更新数据库在目标集群的部署数量达到预设的第一阈值的指令时,启动待更新数据库的服务进程;当接收到启动的服务进程的数量达到预设的第二阈值指令时,发送将端口信息由当前数据库切换至待更新数据库的切换指令。上述过程中,当接收到启动的服务进程的数量达到预设的第二阈值指令时,发送将端口信息由当前数据库切换至待更新数据库的切换指令,保证了所述目标集群中数据的一致性。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种更新服务器的执行方法流程图;
图2为本申请实施例公开的一种集群数据一致性的保障方法流程图;
图3为本申请实施例公开的一种集群数据一致性的保障装置结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
本发明公开了一种集群数据一致性的保障方法、装置及系统应用于集群数据一致性的保证过程中,本发明实施例中通过总控服务器master、负载均衡服务器load_balance、更新服务器updater和app_node目标集群组成的集群数据一致性的保障系统,解决了集群数据内容一致性和数据生效时刻一致性的问题,所述保障系统包括:更新服务器、总控服务器、负载均衡服务器和目标集群,其中,
所述总控服务器,用于获取目标集群中当前数据库的版本信息,将所述版本信息与待更新数据库的待更新版本信息进行比对,当所述版本信息与所述待更新版本信息不同时,发送将所述待更新数据库部署在所述目标集群的部署指令,当接收到所述待更新数据库在所述目标集群的部署数量达到预设的第一阈值的指令时,启动所述待更新数据库的服务进程,当接收到启动的服务进程的数量达到预设的第二阈值指令时,发送将端口信息由所述当前数据库切换至所述待更新数据库的切换指令;
本发明实施例中,所述master接收来自Updater,LoadBalance和APP_Node集群的各种信息,并指挥各个节点按照一定的逻辑去运转。其主要发送的指令有:
Dbset_check(发送给APP_Node):发送dbset_check消息,内含待更新数据库信息,App_Node自检是否需要所述待更新数据库并回复给master。
Db_Send_Request(发送给Updater):内含集群的APP_Node的当前数据库的版本状态,由Updater执行具体的发送命令。
Load_DbSet(发送给APP_Node):命令APP_Node集群启动命令中指定dbset的服务进程。
Unload_DbSet(发送给APP_Node):命令APP_Node集群关闭命令中指定dbset的服务进程。
Switch_DbSet(发送给LoadBalance):命令Load_Balance将请求指令分发到新版本数据库服务的处理端口上。
所述负载均衡服务器,用于接收所述切换指令和所述当前数据库和所述待更新数据的版本信息和端口信息,依据所述切换指令将所述端口信息由所述当前数据库切换至所述待更新数据库;
本发明实施例中,所述load_balance控制Nginx代理Http请求,记录并管理APP_Node的数据库版本和相应的处理端口。
所述目标集群,用于存储当前数据库,接收所述待更新数据库,将所述当前数据库和所述待更新数据库的版本信息和端口信息发送给所述负载均衡服务器;
本发明实施例中,app_node接受Master的命令,具备报告当前数据库版本,接收部署数据库文件,以及启动待更新数据库服务的功能,并且汇报所述当前数据库版本和相应处理端口给Load_Balance。
更新服务器,用于更新待更新数据库,当接收到所述总控服务器的将所述待更新数据库部署在所述目标集群的部署指令时,将所述待更新数据库发送给所述目标集群。
本发明实施例中,定时更新的原始数据文件推送到Updater上之后,由Updater进行构建所述待更新数据库,构建完成后报告给master,当收到Master的Db_Send_Request之后启动多播发送进程发送所述待更新数据库。
本发明实施例中,所述更新服务器包括的执行流程如图1所示,包括步骤:
S101、获取所述当前数据库中各个数据表的第一标识;
本发明实施例中,所述当前数据库中的每一个数据都包含一个第一标识,获取所述第一标识,其中针对同一名称的数据表,标识相同,则该数据表未发生变化,本发明实施例中,对所述第一标识的存在形式不进行限定、
S102、获取所述待更新数据库中各个数据表的第二标识;
本发明实施例中,所述待更新数据库中的每一个数据表都包含一个第二标识,获取所述第二标识,本发明实施例中对所述第二标识的存在形式不进行限定。
S103、将存在对应关系的第一标识和第二标识进行对比,当两者不同时,将与所述第二标识对应的数据表部署到所述当前数据库中,当两者相同时,保持所述第一标识对应的数据表不变。
本发明实施例中,将所述第一标识与所述第一标识进行对比,针对同一个目标集群,其对应的数据库中数据的名称和数量是相同的,例如所述当前数据库中包含5个数据标识分别是A、B、C、D和E,则对应的所述待更新数据中包含的5个数据的标识分别是,A1、B1、C、D和E,逐一进行对比,针对所述当前数据库和所述待更新数据库只有前两组数据的标识是不相同的,在部署所述待更新数据库时,可以沿用所述当前数据库中的C、D和E标识对应的数据,只将A1和B1标识的数据部署到所述目标集群中便可以完成所述待更新数据库的部署。
基于上述的保证系统,本发明实施例中还提供了一种集群数据一致性的保障方法,所述方法的执行流程如图2所示,包括步骤:
S201、获取目标集群中当前数据库的版本信息;
本发明实施例中,所述目标数据库的版本信息是用于区分不同的数据库的,例如可以基于不同数据库建立时的时间戳对数据库的版本信息进行区分,时间戳越新代表数据库越新,或者可以依据具有命名规则的数据库名称进行所述版本信息的区分,例如DB_V1、DB_V2和DB_V3等等,编号越大,代表数据库越新。
S202、将所述版本信息与待更新数据库的待更新版本信息进行比对;
本发明实施例中,所述待更新数据可以是由定时更新的原始数据构建的新版本的数据库,其中,所述原始数据包含ATPCO、SITA等数据中心的数据,一般是Txt或者CSV文件等,通过Ftp推送到Updater指定的原始数据目录下,本发明实施例推送的为ATPCO数据中心的数据为例进行举例说明,当Updater检测到新的ATPCO原始数据,启动构建程序进行构建所述待更新数据库,构建完成后向master发送产生所述待更新数据的信息,将两者的版本信息进行比对,判两者是否相同,若所述当前数据库与所述待更新数据库的版本信息相同,则,不需要将所述待更新数据库更新到所述目标集群中。
S203、当所述版本信息与所述待更新版本信息不同时,发送将所述待更新数据库部署在所述目标集群的部署指令;
本发明实施例中,当所述版本信息与所述待更新版本信息不同时,还可以判断所述版本信息与所述待更新版本信息对应的两个数据库谁的数据库更新,若所述待更新数据的待更新版本信息旧于所述当前数据的版本信息,也不需发送将所述待更新数据库部署在所述目标集群的部署指令,反之发送将所述待更新数据库部署在所述目标集群的部署指令给updater,令updater发送所述待更新数据给所述目标集群部署,部署过程中,为了提高部署的效率,不需要将所述待更新数据库中的全部内容进行部署,只需要将所述待更新数据库中与所述当前数据库中不同的部分部署到所述目标集群,其余相同的部分延续使用。
S204、当接收到所述待更新数据库在所述目标集群的部署数量达到预设的第一阈值的指令时,启动所述待更新数据库的服务进程;;
本发明实施例中,在所述目标集群中,每间隔预设的第一时长,检测所述目标集群部署的所述待更新数据库的数量,当所述数量达到预设的第一阈值时,所述待更新数据库在所述目标集群的部署数量达到预设的第一阈值的指令,所述master接收到所述待更新数据库在所述目标集群的部署数量达到预设的第一阈值的指令时,启动所述待更新数据库的服务进程,其中,所述预设的第一时长和所述预设的第一阈值可以依据经验或者具体情况进行选取,本发明实施例中对所述预设的第一阈值和所述预设的第一时长的具体数值不进行限定。
S205、当接收到启动的服务进程的数量达到预设的第二阈值指令时,发送将端口信息由所述当前数据库切换至所述待更新数据库的切换指令。
本发明实施例中,在所述目标集群中,每间隔预设的第二时长,检测所述目标集群中启动服务进程的数量,当所述数量达到预设的第二阈值时,发送启动的服务进程的数量达到预设的第二阈值指令,当所述master接收到启动的服务进程的数量达到预设的第二阈值指令时,向load_balance发送岁数切换指令,依据所述切换指令中的IP和PORT信息生成Nginx的新服务的Upstream配置文件,对所述配置文件进行校验,当校验成功时,检测所述待更新数据库的端口是否可用,若可用,发送将端口信息由所述当前数据库切换至所述待更新数据库的切换指令。
进一步,当所述目标集群由当前数据库切换到所述待更新数据库时,所述当前数据库将不再提供服务,当所述目标集群在所述待更新数据库下运行正常时,发送关闭当前数据库服务进程指令,关闭所述当前数据库的服务进程。其中,所述运行正常可以为数据库调用次数或者使用时长满足对应阈值。
本发明公开了一种集群数据一致性的保障方法,包括:获取目标集群中当前数据库的版本信息;将版本信息与待更新数据库的待更新版本信息进行比对;当版本信息与待更新版本信息不同时,发送将待更新数据库部署在所述目标集群的部署指令;当接收到待更新数据库在目标集群的部署数量达到预设的第一阈值的指令时,启动待更新数据库的服务进程;当接收到启动的服务进程的数量达到预设的第二阈值指令时,发送将端口信息由当前数据库切换至待更新数据库的切换指令。上述过程中,当接收到启动的服务进程的数量达到预设的第二阈值指令时,发送将端口信息由当前数据库切换至待更新数据库的切换指令,保证了所述目标集群中数据的一致性。
本发明实施例中,基于上述的系统及方法,执行流程如下:
S1:Updater收到定时更新的原始数据(由ftp推送而来),使用其构建新版本的数据库,待其完成后,报告给Master新构建所述待更新数据库的版本号,假设推送的是ATPCO数据中心的数据,其中,假设,所述待更新数据库为DB_V2,所述当前数据库为DB_V1。
S2:Master将待更新数据库的版本的信息通过DbSet_Check多播命令发送给APP_Node,DBSet_Check命令中包含DB_V2的基本信息(包含但不限于变更的数据库名称及其版本号及构建时间等),APP_Node集群检测自己当前数据的库版本是否老于DBSet_Check命令中所述待更新数据库,如果不需要更新则忽视DB_Set_Check,如果需要则向Master发送自己当前数据库的版本,此时为DB_V1。
S3:Master将搜集到的APP_Node集群上的所述当前数据库版本信息通过Db_Send_Request发送给Updater。
S4:Updater通过APP_Node集群上的所述当前数据库版本信息和所述更新数据的待更新版本信息进行计算,打包需要发送的数据库文件,通过多播发送给APP_Node。
S5:APP_Node接收数据库文件并部署。
其中,APP_Node接收所述待更新数据库,并且将其部署在磁盘上。然后向Master报告自己机器上的所有数据库信息(定时注册信息,包含:IP,角色,数据库版本信息,服务进程端口信息等)。
接收并部署完成的APP_Node的信息:
数据库版本:DB_V1,DB_V2;
服务进程信息:端口5011(DB_V1);
和/或
未完成接收或部署的APP_Node的信息:
数据库版本:DB_V1;
服务进程信息:端口5011(DB_V1);
S6:Master继续发送定时发送DbSet_Check命令给APP_Node并收取反馈,如果仍有APP_Node需要所述待更新数据库,则继续进行S3-S5。如果接收到所述待更新数据库在所述目标集群的部署数量达到预设的第一阈值时,则进行S7。假设配置文件中对服务进程加载的要求是15台机器拥有待更新数据库,而集群中的数量是20台APP_Node。
如果拥有DB_V2的APP_Node数量少于15台,则继续等待,并执行上面的DBSet_Check及发送步骤。
如果拥有DB_V2的APP_Node数量大于等于15台,则向APP_Node集群发送Load_DbSet命令。
拥有DB_V2并成功启动服务进程的APP_Node信息:
数据库版本:DB_V1,DB_V2;
服务进程信息:端口5011(DB_V1),端口5012(DB_V2。
和/或
不拥有DB_V2的APP_Node信息:
数据库版本:DB_V1;
服务进程信息:端口5011(DB_V1)。
和/或
拥有DB_V2但未启动服务进程的APP_Node信息:
数据库版本:DB_V1,DB_V2;
服务进程信息:端口5011(DB_V1)。
S7:Master向APP_Node集群发送多播指令Load_DbSet,APP_Node启动基于Load_DbSet指定数据库版本的服务进程,启动后会报告待更新数据库服务及其端口给Master(定时报告)。
S8:Master统计已经成功加载了待更新数据库的APP_Node的数量,当数量达到预设的第二阈值,则向Load-Balance发送拥有新版本数据库服务的APP_Node的端口信息,并令其切换。
例如:统计APP_Node集群中的服务进程信息,假设配置文件中设置切换服务的阈值是至少18台APP_Node已经启动了待更新数据库的服务进程,而集群中的APP_Node总数为20台。
如果已经启动新服务进程及端口的APP_Node的数量已经满足18台,则向Load_Balance发送Switch_DbSet命令,命令中包含但不限于集群中新服务进程的IP和端口等。
S9:Load_Balance获得待更新数据库服务进程的APP_Node信息后,创建Nginx的Upstream配置文件,测试可用后统一将http请求指向待更新数据库的服务端口,旧的端口不再提供服务,并将切换结果通知Master。
Load_Balance接收到Switch_DbSet指令后,利用指令中的IP和PORT信息生成Nginx的新服务的Upstream配置文件,经校验无误后将请求转发统一切换到新服务的端口上,同时旧的端口就不再提供服务。此时提供服务的数据库版本为DB_V2。
S10:未有异常的情况下,Master发送Unload_DbSet命令给APP_Node,APP_Node会关闭当前数据库服务进程,如果有异常,则通过上述流程切换回旧版本数据库服务。
基于上述的一种集群数据一致性的保障方法,本发明实施例中,还提供了一种集群数据一致性的保障装置,所述保障装置的结构框图如图3所示,包括:
获取模块301、比对模块302、第一发送模块303、启动模块304和第二发送模块305。
其中,
所述获取模块301,用于获取目标集群中当前数据库的版本信息;
所述比对模块302,用于将所述版本信息与待更新数据库的待更新版本信息进行比对;
所述第一发送模块303,用于当所述版本信息与所述待更新版本信息不同时,发送将所述待更新数据库部署在所述目标集群的部署指令;
所述启动模块304,用于当接收到所述待更新数据库在所述目标集群的部署数量达到预设的第一阈值的指令时,启动所述待更新数据库的服务进程;
所述第二发送模块305,用于当接收到启动的服务进程的数量达到预设的第二阈值指令时,发送将端口信息由所述当前数据库切换至所述待更新数据库的切换指令。
本发明公开了一种集群数据一致性的保障装置,包括:获取目标集群中当前数据库的版本信息;将版本信息与待更新数据库的待更新版本信息进行比对;当版本信息与待更新版本信息不同时,发送将待更新数据库部署在所述目标集群的部署指令;当接收到待更新数据库在目标集群的部署数量达到预设的第一阈值的指令时,启动待更新数据库的服务进程;当接收到启动的服务进程的数量达到预设的第二阈值指令时,发送将端口信息由当前数据库切换至待更新数据库的切换指令。上述过程中,当接收到启动的服务进程的数量达到预设的第二阈值指令时,发送将端口信息由当前数据库切换至待更新数据库的切换指令,保证了所述目标集群中数据的一致性。
本发明实施例中,所述保障装置还包括:关闭模块306。
其中,
所述关闭模块306,用于当所述待更新数据库运行正常时,发送关闭所述当前数据库服务进程指令。
本发明实施例中,所述启动模块304包括:
发送单元307和接收单元308。
其中,
所述发送单元307,用于发送所述待更新数据库的服务进程指令到所述目标集群,启动所述目标集群中的待更新数据库服务进程;
所述接收单元308,用于接收所述目标集群反馈的启动所述目标集群中的待更新数据库服务进程的数量。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明所提供的一种集群数据一致性的保障方法、装置及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种集群数据一致性的保障方法,其特征在于,包括:
获取目标集群中当前数据库的版本信息;
将所述版本信息与待更新数据库的待更新版本信息进行比对;
当所述版本信息与所述待更新版本信息不同时,发送将所述待更新数据库部署在所述目标集群的部署指令,其中,所述待更新版本信息新于所述版本信息;
当接收到所述待更新数据库在所述目标集群的部署数量达到预设的第一阈值的指令时,启动所述待更新数据库的服务进程;
当接收到启动的服务进程的数量达到预设的第二阈值指令时,发送将端口信息由所述当前数据库切换至所述待更新数据库的切换指令。
2.根据权利要求1所述的方法,其特征在于,还包括:
当所述待更新数据库运行正常时,发送关闭所述当前数据库服务进程指令。
3.根据权利要求1所述的方法,其特征在于,启动所述待更新数据库的服务进程,包括:
发送所述待更新数据库的服务进程指令到所述目标集群,启动所述目标集群中的待更新数据库服务进程;
接收所述目标集群反馈的启动所述目标集群中的待更新数据库服务进程的数量。
4.一种集群数据一致性的保障装置,其特征在于,包括:
获取模块,用于获取目标集群中当前数据库的版本信息;
比对模块,用于将所述版本信息与待更新数据库的待更新版本信息进行比对;
第一发送模块,用于当所述版本信息与所述待更新版本信息不同时,发送将所述待更新数据库部署在所述目标集群的部署指令,其中,所述待更新版本信息新于所述版本信息;
启动模块,用于当接收到所述待更新数据库在所述目标集群的部署数量达到预设的第一阈值的指令时,启动所述待更新数据库的服务进程;
第二发送模块,用于当接收到启动的服务进程的数量达到预设的第二阈值指令时,发送将端口信息由所述当前数据库切换至所述待更新数据库的切换指令。
5.根据权利要求4所述的装置,其特征在于,还包括:
关闭模块,用于当所述待更新数据库运行正常时,发送关闭所述当前数据库服务进程指令。
6.根据权利要求4所述的装置,其特征在于,所述启动模块包括:
发送单元,用于发送所述待更新数据库的服务进程指令到所述目标集群,启动所述目标集群中的待更新数据库服务进程;
接收单元,用于接收所述目标集群反馈的启动所述目标集群中的待更新数据库服务进程的数量。
7.一种集群数据一致性的保障系统,其特征在于,包括:总控服务器、负载均衡服务器和目标集群,其中,
所述总控服务器,用于获取目标集群中当前数据库的版本信息,将所述版本信息与待更新数据库的待更新版本信息进行比对,当所述版本信息与所述待更新版本信息不同时,发送将所述待更新数据库部署在所述目标集群的部署指令,当接收到所述待更新数据库在所述目标集群的部署数量达到预设的第一阈值的指令时,启动所述待更新数据库的服务进程,当接收到启动的服务进程的数量达到预设的第二阈值指令时,发送将端口信息由所述当前数据库切换至所述待更新数据库的切换指令,其中,所述待更新版本信息新于所述版本信息;
所述负载均衡服务器,用于接收所述切换指令和所述当前数据库和所述待更新数据的版本信息和端口信息,依据所述切换指令将所述端口信息由所述当前数据库切换至所述待更新数据库;
所述目标集群,用于存储当前数据库,接收所述待更新数据库,将所述当前数据库和所述待更新数据库的版本信息和端口信息发送给所述负载均衡服务器。
8.根据权利要求7所述的系统,其特征在于,还包括:
更新服务器,用于更新待更新数据库,当接收到所述总控服务器的将所述待更新数据库部署在所述目标集群的部署指令时,将所述待更新数据库发送给所述目标集群。
9.根据权利要求8所述的系统,其特征在于,所述更新服务器包括:
第一获取单元,用于获取所述当前数据库中各个数据表的第一标识;
第二获取单元,用于获取所述待更新数据库中各个数据表的第二标识;
比对单元,用于将存在对应关系的第一标识和第二标识进行对比,当两者不同时,将与所述第二标识对应的数据表部署到所述当前数据库中,当两者相同时,保持所述第一标识对应的数据表不变。
10.根据权利要求7所述的系统,其特征在于,所述负载均衡服务器包括:
接收单元,用于接收所述切换指令;
校验单元,用于依据所述切换指令生成配置文件,对所述配置文件进行校验;
切换单元,用于当校验成功时,将端口信息由所述当前数据库切换至所述待更新数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911001766.0A CN110737670B (zh) | 2019-10-21 | 2019-10-21 | 一种集群数据一致性的保障方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911001766.0A CN110737670B (zh) | 2019-10-21 | 2019-10-21 | 一种集群数据一致性的保障方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110737670A CN110737670A (zh) | 2020-01-31 |
CN110737670B true CN110737670B (zh) | 2023-06-13 |
Family
ID=69270722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911001766.0A Active CN110737670B (zh) | 2019-10-21 | 2019-10-21 | 一种集群数据一致性的保障方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110737670B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111880956B (zh) * | 2020-07-24 | 2023-12-05 | 北京达佳互联信息技术有限公司 | 一种数据同步方法和装置 |
CN112532450B (zh) * | 2020-11-30 | 2022-08-23 | 中科美络科技股份有限公司 | 一种数据流分发进程配置的动态更新方法及系统 |
CN112579568A (zh) * | 2020-12-15 | 2021-03-30 | 中国建设银行股份有限公司 | 数据库版本处理方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5280612A (en) * | 1991-11-26 | 1994-01-18 | International Business Machines Corporation | Multiple version database concurrency control system |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103613B (zh) * | 2009-12-22 | 2013-06-12 | 中兴通讯股份有限公司 | 分布式数据库升级的方法、升级处理装置及升级控制装置 |
US10740353B2 (en) * | 2010-12-23 | 2020-08-11 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US8326800B2 (en) * | 2011-03-18 | 2012-12-04 | Microsoft Corporation | Seamless upgrades in a distributed database system |
CN102289480B (zh) * | 2011-08-02 | 2013-05-01 | 深圳市茁壮网络股份有限公司 | 一种数据更新的方法和系统 |
EP2555129B1 (en) * | 2011-08-03 | 2019-02-06 | Amadeus S.A.S. | Method and system to maintain strong consistency of distributed replicated contents in a client/server system |
CN102508929A (zh) * | 2011-12-01 | 2012-06-20 | 浪潮(北京)电子信息产业有限公司 | 实现异构数据库数据迁移的系统、装置及方法 |
CN104077131B (zh) * | 2014-06-13 | 2017-08-25 | 科大讯飞股份有限公司 | 一种组件部署系统及方法 |
CN106533719A (zh) * | 2015-09-10 | 2017-03-22 | 中兴通讯股份有限公司 | 一种实现集群部署的方法及系统 |
US20180025066A1 (en) * | 2016-07-19 | 2018-01-25 | Sap Se | Zero downtime database updates with database configuration changes |
CN107480309A (zh) * | 2017-09-28 | 2017-12-15 | 阿里巴巴集团控股有限公司 | 数据库访问策略更新方法、装置、服务器及计算设备 |
US10733168B2 (en) * | 2017-10-26 | 2020-08-04 | Sap Se | Deploying changes to key patterns in multi-tenancy database systems |
US10482080B2 (en) * | 2017-10-26 | 2019-11-19 | Sap Se | Exchanging shared containers and adapting tenants in multi-tenancy database systems |
CN107977466A (zh) * | 2017-12-21 | 2018-05-01 | 广东小天才科技有限公司 | 一种数据库升级方法及装置 |
CN110750546B (zh) * | 2019-10-21 | 2023-07-25 | 中国民航信息网络股份有限公司 | 一种数据库的更新方法及装置 |
-
2019
- 2019-10-21 CN CN201911001766.0A patent/CN110737670B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5280612A (en) * | 1991-11-26 | 1994-01-18 | International Business Machines Corporation | Multiple version database concurrency control system |
Also Published As
Publication number | Publication date |
---|---|
CN110737670A (zh) | 2020-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110737670B (zh) | 一种集群数据一致性的保障方法、装置及系统 | |
CN105245373B (zh) | 一种容器云平台系统的搭建及运行方法 | |
CN105763369B (zh) | 一种终端设备远程软件版本分发方法及系统 | |
CN103226493B (zh) | 多操作系统业务的部署方法和系统 | |
CN109614209B (zh) | 一种任务处理方法、应用服务器及系统 | |
CN105450757A (zh) | 一种服务管理方法及系统 | |
CN103916481B (zh) | 一种处理数据的方法和装置 | |
CN102984012B (zh) | 管理服务资源的方法及服务资源管理系统 | |
CN108600034B (zh) | 业务压力管理方法、装置、设备、系统及存储介质 | |
CN109391482B (zh) | 网络功能的升级方法及升级管理实体 | |
CN110888858B (zh) | 数据库的操作方法和装置、存储介质、电子装置 | |
CN111324435A (zh) | 分布式任务调度及注册方法、设备和分布式任务调度系统 | |
CN104065517A (zh) | 分布式系统软件配置管理方法和系统 | |
US20220413937A1 (en) | Node management method, device and apparatus, storage medium, and system | |
US20180218034A1 (en) | Processing telemetry data streams based on an operating state of the data source | |
CN113206877A (zh) | 一种会话保持方法及装置 | |
CN106993043A (zh) | 基于代理的数据通信系统和方法 | |
CN110365524B (zh) | 服务器节点固件的镜像升级方法及系统 | |
CN110881055A (zh) | 基于Redis的微服务处理方法和设备 | |
CN112039718A (zh) | 升级状态检测方法、服务端、设备及存储介质 | |
US8224933B2 (en) | Method and apparatus for case-based service composition | |
WO2024169385A1 (zh) | 一种集群部署方法、装置、设备、介质及产品 | |
CN117453366A (zh) | 一种在途批量作业的调度处理方法及装置 | |
CN110493773B (zh) | 移动设备鉴权能力的获取方法及其设备 | |
CN104731660A (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 |