CN110413686A - 一种数据写入方法、装置、设备及存储介质 - Google Patents

一种数据写入方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN110413686A
CN110413686A CN201910343443.3A CN201910343443A CN110413686A CN 110413686 A CN110413686 A CN 110413686A CN 201910343443 A CN201910343443 A CN 201910343443A CN 110413686 A CN110413686 A CN 110413686A
Authority
CN
China
Prior art keywords
slave
data
node
written
operation method
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.)
Granted
Application number
CN201910343443.3A
Other languages
English (en)
Other versions
CN110413686B (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.)
Tenpay Payment Technology Co Ltd
Original Assignee
Tenpay Payment 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 Tenpay Payment Technology Co Ltd filed Critical Tenpay Payment Technology Co Ltd
Priority to CN201910343443.3A priority Critical patent/CN110413686B/zh
Publication of CN110413686A publication Critical patent/CN110413686A/zh
Application granted granted Critical
Publication of CN110413686B publication Critical patent/CN110413686B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (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

一种数据写入方法、装置、设备及存储介质
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据写入方法、装置、设备及存储介质。
背景技术
在互联网行业中,数据的安全性越来越受到重视,为了应对自然灾害、机房断电、断网等的影响,一般在数据写入的过程中进行相应的操作处理以保证数据的一致性。具体地,数据一致性是当多个用户试图同时访问一个数据库,它们的事务同时使用相同的数据时,可能会发生以下丢失更新、未确定的相关性、不一致的分析和幻想读等问题。
其中,大企业一般会在不同机房之间使用专网专线做数据同步,保持两地三中心(两地是指同城、异地;三中心是指生产中心、同城容灾中心、异地容灾中心)的数据一致性,但这种方式成本较高,对于大多中、小企业来说难以承受;其中,并且无法绝对满足金融场景下数据一致性的严格要求。
因此,需要提供一种能够有效保证数据一致性,并且满足金融场景下的数据一致性严格要求的技术方案。
发明内容
为了解决现有技术中的问题,本发明提供了一种数据写入方法、装置、设备及存储介质,具体地:
一方面提供了一种数据写入方法,所述方法包括:
获取节点集群,所述节点集群包括主机节点以及与所述主机节点对应的从机节点;所述从机节点包括至少一个第一从机;所述从机节点为半同步复制模式;
获取终端设备发送的待写入数据,并将所述待写入数据写入所述主机节点;
获取所述主机节点接收到的响应消息的数目;所述响应消息由从所述主机节点成功接收所述待写入数据的从机节点发出;
在接收到的响应消息的数目大于所述预设响应数目时,将所述待写入数据写入本地;所述预设响应数目根据所述第一从机的数量确定得到。
另一方面提供了一种数据写入装置,所述装置包括:
节点集群获取模块,用于获取节点集群,所述节点集群包括主机节点以及与所述主机节点对应的从机节点;所述从机节点包括至少一个第一从机;所述从机节点为半同步复制模式;
待写入数据获取模块,用于获取终端设备发送的待写入数据,并将所述待写入数据写入所述主机节点;
响应消息数目获取模块,用于获取所述主机节点接收到的响应消息的数目;所述响应消息由从所述主机节点成功接收所述待写入数据的从机节点发出;
数据写入模块,用于在接收到的响应消息的数目大于所述预设响应数目时,将所述待写入数据写入本地;所述预设响应数目根据所述第一从机的数量确定得到。
另一方面提供了一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的数据写入方法。
另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方面所述的数据写入方法。
本发明提供的一种数据写入方法、装置、设备及存储介质,具有的有益效果为:
本发明获取节点集群;获取终端设备发送的待写入数据,并将所述待写入数据写入节点集群中的主机节点;获取所述主机节点接收到的响应消息的数目;所述响应消息由从所述主机节点成功接收所述待写入数据的从机节点发出;在接收到的响应消息的数目大于所述预设响应数目时,将所述待写入数据写入本地;所述预设响应数目根据所述第一从机的数量确定得到。具体地,本发明在接收到的响应消息的数目大于所述预设响应数目时,才将所述待写入数据写入本地服务器中,保证了服务器数据库中的数据的一致性,满足数据库容灾的要求,进而满足金融场景下数据安全性的高标准。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本说明书实施例提供的一主三从的数据库复制架构示意图;
图2是本说明书实施例提供的数据写入方法流程图;
图3是本说明书实施例提供的根据所述第一从机的数量确定得到预设响应数目的步骤流程图;
图4是本说明书实施例提供的第一运算方法的步骤流程图;
图5是本说明书实施例提供的第二运算方法的步骤流程图;
图6是本说明书实施例提供的利用所述目标运算方法对所述第一从机的数量进行计算的步骤流程图;
图7是本说明书实施例提供的一种数据写入装置组成结构图;
图8是本说明书实施例提供的一种服务器示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在金融场景的系统架构中,一般依赖“远程”、“差错”和“冻结”来实现业务的跨机房容灾。这一套逻辑设计复杂、恢复困难、运维成本较高,也不便于日常的演习。为了进一步提高金融场景的跨机房容灾能力,本说明书通过数据库层数据的一致性来保证机房故障时数据的可靠性和可用性。
其中,本说明书实施例以一主N从的MySQL数据库复制架构,用以实现数据库层的跨机房容灾;如图1所述的一主三从的数据库复制架构;其中的idc为数据中心(或是机房),其中的master为主机,slave为从机。本说明书给出的MySQL数据库复制架构,既可以保证数据库在机房宕机时服务的高可用和数据的高可靠;可以保证在常态情况下,对业务产生尽可能小的影响;还可以防止机房之间的网络抖动,减少因为网络抖动导致的服务不稳定。
下面对本说明书涉及到一些专业术语给与解释说明:
数据库层的高可用:是用以在服务器的数据库主机出现故障时快速进行切换、减少停工时间、保持数据库服务的高度可用性。
跨机房容灾:是指具备跨机房切换的能力,实现机房(IDC:Internet DataCenter)级别的服务高可用;即使整个机房宕机、断电、网线被挖断等严重异常,依然可以保证数据库服务的可用性。
半同步复制:数据库主机事务执行完成以后,不立即返回给用户,而是等待日志发送给其他从机以后,再返回给用户;半同步复制能提高数据的安全性和可靠性;若一个从机配置成半同步复制,则该从机可以称之为半同步从机,半同步复制的从机为服务器的MySQL数据库的从机。
异步复制:与半同步复制对应的是异步复制,异步复制的从机也是服务器的MySQL数据库的从机,也会从主机上同步日志到本地;但是不会回复ack。若一个从机配置成异步复制,称之为异步从机。
一主N从的复制架构:典型的MySQL复制架构是一个主机和多个从机,根据容灾能力的要求不同,可以部署一到多个从机,称之为一主N从的复制架构。例如,一个主机三个从机的复制架构,称之为一主三从的复制架构。
ack count:在半同步复制中,主机事务执行完成以后,不立即返回给用户,而是等待日志(或待写入数据)发送给其他从机以后,再返回给用户。ack count用表示等待多少个从机的ack。例如,对于一主三从的复制架构,可以将ack count设置为1、2、3,分别表示至少等待1个从机、2个从机、3个从机的回复,主机才能将待写入数据正式提交并返回给用户。
具体地,本说明书实施例提供了一种数据写入方法,如图2所示,所述方法包括:
S202.获取节点集群,所述节点集群包括主机节点以及与所述主机节点对应的从机节点;所述从机节点包括至少一个第一从机;所述从机节点为半同步复制模式;
S204.获取终端设备发送的待写入数据,并将所述待写入数据写入所述主机节点;
本实施例中从机节点中的从机均设置为半同步复制模式,所述第一从机属于半同步复制模式;通过半同步复制的从机向对应的主机节点回复响应消息ack,以实现数据库层的容灾,即数据的高可用性。
S206.获取所述主机节点接收到的响应消息的数目;所述响应消息由从所述主机节点成功接收所述待写入数据的从机节点发出;
S208.根据所述第一从机的数量确定得到预设响应数目;
S210.在接收到的响应消息的数目大于所述预设响应数目时,将所述待写入数据写入本地。
其中,从机节点发出的响应消息为ack count;若所述节点集群包括一个主机和三个从机,可以设置接收到从机的ack count为2;则需要等待3个半同步从机中的2个从机返回的ack,才实现将所述待写入数据写入本地服务器中。具体地,所述待写入数据为用户在终端设备上操作生成的数据;将所述待写入数据写入本地,可以理解为将用户写入的数据持久化到对应服务器的磁盘里。
一种可行的实施方式中,步骤S208中的根据所述第一从机的数量确定得到预设响应数目,如图3所示,可以包括:
S402.根据所述第一从机的数量确定出所述第一从机的数量对应的目标奇偶性;
S404.由所述目标奇偶性得到对所述第一从机的数量进行处理的目标运算方法;
S406.利用所述目标运算方法对所述第一从机的数量进行计算,以得到所述预设响应数目。
本实施例中,根据所述第一从机对应数量的奇偶性,确定出对所述第一从机的数量进行处理的目标运算方法,从而利用所述目标运算方法对所述第一从机的数量进行计算以得到所述预设响应数目。
需要给与说明的是,本说明书提供的数据写入方法能够应用于金融场景,以实现金融场景下对数据一致性和完整性的严格要求;其中,在该场景下不仅需要满足服务的稳定性,还需要保证机房之间的网络质量;对应地:
步骤S404由所述目标奇偶性得到对所述第一从机的数量进行处理的目标运算方法,可以包括:
在所述第一从机的数量的目标奇偶性为奇数时,获取第一运算方法;
其中,所述利用所述目标运算方法对所述第一从机的数量进行计算,可以包括:
根据所述第一运算方法对所述第一从机的数量进行计算;如图4所示,所述第一运算方法为:
S11.将所述第一从机的数量除以2,得到第一结果;
S12.将所述第一结果进行向上取整。
需要给与说明的是,所述第一从机的数量一般大于3;在所述第一从机的数量为3时,则通过第一计算方法可以得到3除以2等于1.5;之后对数值1.5向上取整得到2;则在3个半同步从机的情况下,ack_count可以设置为2。
若所述第一从机的数量为5时,则通过第一计算方法可以得到5除以2等于2.5;之后对数值2.5向上取整得到3;则在5个半同步从机的情况下,ack_count可以设置为3。
具体地,步骤S404由所述目标奇偶性得到对所述第一从机的数量进行处理的目标运算方法,可以包括:
在所述第一从机的数量的目标奇偶性为偶数时,获取第二运算方法;
其中,所述利用所述目标运算方法对所述第一从机的数量进行计算,可以包括:
根据所述第二运算方法对所述第一从机的数量进行计算;如图5所示,所述第二运算方法为:
S21.将所述第一从机的数量除以2,得到第二结果;
S22.将所述第二结果进行加1。
本实施例中,在所述第一从机数量为4时,则通过第一计算方法可以得到4除以2等于2;之后2加1得到数字3;则在4个半同步从机的情况下,ack_count设置为3。
若所述第一从机数量为8时,则通过第一计算方法可以得到8除以2等于4;之后对数值4加1得到5;则在8个半同步从机的情况下,ack_count设置为5。
详细地,本实施例还包括第二从机,所述第二从机也属于半同步复制模式;其中,所述主机节点与所述第二从机位于第二数据中心,所述第一从机位于多个第一数据中心;也就是说,本实施例中的第二从机和第一从机位于不同的机房,这使得本说明书提供的数据写入方法能够实现跨机房场景下的数据一致性,在主机节点所在的机房宕机以后,向服务器数据库提交所述待写入数据的服务依然可用。
其中,本实施例中的主机节点和第二从机位于同一个机房,也就是在该机房中可以有一个同步的第二从机;即对于一主三从的系统架构,在待写入数据需要被提交时,在主机节点所在的机房之外还有一份完整的数据。
需要说明的是,本实施例中的第一从机位于多个第一数据中心,;其中,为了防止从机数量为多个时而影响系统的数据容灾能力;所以,一般地每个第一数据中心中的第一从机的数量可以仅设置为1个。比如,如图1所示的主机节点master与第二从机slave2位于第二机房idc2;第一从机slave11位于第一机房idc11,第一从机slave12位于第一机房idc12。
一种可行的实施方式中,所述数据写入方法还可以包括:
在检测到所述主机节点的故障信息时,将所述第二从机设置为所述主机节点;从而使得在主机节点出现故障时,将位于同一数据中心的主机节点设置为第二从机,以避免主机节点宕机的情况下就直接进行跨机房的切换而增加响应延时的问题。对应地,如果检测到服务器故障,则也是优先将同机房的从机提升为主机,避免业务访问数据库出现跨机房访问增加响应延时的问题。
其中,微众银行的数据库跨机房容灾方案中,采用的是一主两从的复制架构;一主两从的三个数据库节点分别位于三个不同的机房;在微众银行的实现方案中,将主机的ackcount设置为1,也就是说,主机的事务要提交,必须等待一个跨机房的从机返回了一个ack;微众银行这套数据库跨机房容灾的方案,无法满足财付通的性能要求;这是因为机房故障的可能性比单台数据库服务器故障的可能性低很多,这套技术方案不区分是机房故障还是数据库主机故障,一有故障就进行跨机房的切换;如果仅仅是数据库主机故障,那么上层的业务并不会进行切换;数据库层切换以后,业务的访问就变成了跨机房访问;跨机房访问会显著增加响应延时;对于财付通这样的核心业务来说,一次转账涉及到多个子事务,如果每个子事务的响应时间增加,则会影响服务的整体可用性。
其中,TEG的跨机房容灾方案也是在主机上设置ack count为1,在另外两个机房部署两个半同步的从机;其中,在一主两从的基础之上,还在本机房增加了一个异步的备机。TEG采用了一主三从的复制架构,其中,两个半同步从机位于另外两个机房,一个异步从机与主机位于同一个机房,并将ack count设置为1。在TEG的技术方案中,解决了数据库主机故障,但是机房并没有出现故障时,数据库的跨机房访问的问题。TEG的技术方案需要假设本机房的从机网络一定优于跨机房的从机;当一个事务提交时,本机房的从机总是可以接收到主机写入的数据,并且一定会有一个跨机房的从机也接受到了主机写入的数据,以此来保证数据库主机故障和机房故障时,数据的一致性。本机房的从机总是可以接收主机写入的数据,这个假设在大多数情况下是成立的。但是,并不能排除本机房主机和从机之间网络短暂抖动,甚至网络故障的情况;而金融场景对数据一致性有着严苛的要求,甚至可以接受服务不可用也不能够接受数据不一致。除此之外,TEG的这套技术方案还无法处理主机所在的机房的网络出口异常的情况;即如果主机所在的机房的网络出口异常,则该机房到其他从机所在的机房将不可达,此时,TEG的这套技术方案或者降级为异步复制(存在数据丢失的风险),或者进行跨机房的切换(显著增加响应延时)。
本说明书实施例提供的数据写入技术方案在没有增加服务器,也没有增加业务响应时间的情况下,能够进一步提升数据的安全性。并且,本技术方案具有更好的网络适配能力;在机房的网络出口异常的情况下,可以降级为本机房的数据库容灾,降级以后依然能够保证数据的高可用和服务的高可用;从而能够满足金融场景对数据安全性的高要求;其中,所述金融场景比如是财付通中的订单、微黄金、理财通、零钱加等核心的金融业务。本说明书实施例提供的数据写入方法,能够有效地提升金融业务的容灾能力,降低业务侧实现容灾方案的复杂性。
本说明书实施例还提供了一种数据写入装置,如图6所示,所述装置包括:
节点集群获取模块202,用于获取节点集群,所述节点集群包括主机节点以及与所述主机节点对应的从机节点;所述从机节点包括至少一个第一从机;所述从机节点为半同步复制模式;
待写入数据获取模块204,用于获取终端设备发送的待写入数据,并将所述待写入数据写入所述主机节点;
响应消息数目获取模块206,用于获取所述主机节点接收到的响应消息的数目;所述响应消息由从所述主机节点成功接收所述待写入数据的从机节点发出;
预设响应数目确定模块208,用于根据所述第一从机的数量确定得到预设响应数目;
数据写入模块210,用于在接收到的响应消息的数目大于所述预设响应数目时,将所述待写入数据写入本地。
具体地,所述预设响应数目确定模块208,如图7所示,可以包括:
奇偶性确定单元402,用于根据所述第一从机的数量确定出所述第一从机的数量对应的目标奇偶性;
运算方法得到单元404,用于由所述目标奇偶性得到对所述第一从机的数量进行处理的目标运算方法;
预设响应数目获取单元406,用于利用所述目标运算方法对所述第一从机的数量进行计算,以得到所述预设响应数目。
一种可行的实施方式中,所述运算方法得到单元,可以包括:
第一运算方法获取单元,用于在所述第一从机的数量的目标奇偶性为奇数时,获取第一运算方法;
其中,所述预设响应数目获取单元,包括:
第一计算子单元,用于根据所述第一运算方法对所述第一从机的数量进行计算;所述第一运算方法为:
将所述第一从机的数量除以2,得到第一结果;
将所述第一结果进行向上取整。
一种可行的实施方式中,所述运算方法得到单元,可以包括:
第二运算方法获取单元,用于在所述第一从机的数量的目标奇偶性为偶数时,获取第二运算方法;
其中,所述预设响应数目获取单元,包括:
第二计算子单元,用于根据所述第二运算方法对所述第一从机的数量进行计算;所述第二运算方法为:
将所述第一从机的数量除以2,得到第二结果;
将所述第二结果进行加1。
详细地,所述主机节点与所述第二从机位于第二数据中心,所述第一从机位于多个第一数据中心。
一种可行的实施方式中,所述装置还包括重置主机节点模块,
所述重置主机节点模块包括,在检测到所述主机节点的故障信息时,将所述第二从机设置为所述主机节点。
本说明书实施例还提供了一种设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述实施例所述的数据写入方法。
具体地,本说明书实施例提供的一种服务器设备的结构示意图,请参考图8。该服务器用于实施上述实施例中提供的数据写入方法。具体来讲:
所述服务器2000包括中央处理单元(CPU)2001、包括随机存取存储器(RAM)2002和只读存储器(ROM)2003的系统存储器2004,以及连接系统存储器2004和中央处理单元2001的系统总线2005。所述服务器2000还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)2006,和用于存储操作系统2013、应用程序2014和其他程序模块2015的大容量存储设备2007。
所述基本输入/输出系统2006包括有用于显示信息的显示器2008和用于用户输入信息的诸如鼠标、键盘之类的输入设备2009。其中所述显示器2008和输入设备2009都通过连接到系统总线2005的输入输出控制器2010连接到中央处理单元2001。所述基本输入/输出系统2006还可以包括输入输出控制器2010以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器2010还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备2007通过连接到系统总线2005的大容量存储控制器(未示出)连接到中央处理单元2001。所述大容量存储设备2007及其相关联的计算机可读介质为服务器2000提供非易失性存储。也就是说,所述大容量存储设备2007可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器2004和大容量存储设备2007可以统称为存储器。
根据本发明的各种实施例,所述服务器2000还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器2000可以通过连接在所述系统总线2005上的网络接口单元2011连接到网络2012,或者说,也可以使用网络接口单元2011来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行;上述一个或者一个以上程序包含用于执行上述后台服务器侧的方法的指令;所述指令用于执行:
获取节点集群,所述节点集群包括主机节点以及与所述主机节点对应的从机节点;所述从机节点包括至少一个第一从机;所述从机节点为半同步复制模式;
获取终端设备发送的待写入数据,并将所述待写入数据写入所述主机节点;
获取所述主机节点接收到的响应消息的数目;所述响应消息由从所述主机节点成功接收所述待写入数据的从机节点发出;
在接收到的响应消息的数目大于所述预设响应数目时,将所述待写入数据写入本地;所述预设响应数目根据所述第一从机的数量确定得到。
进一步地,用于执行根据所述第一从机的数量确定得到预设响应数目,包括:
根据所述第一从机的数量确定出所述第一从机的数量对应的目标奇偶性;
由所述目标奇偶性得到对所述第一从机的数量进行处理的目标运算方法;
利用所述目标运算方法对所述第一从机的数量进行计算,以得到所述预设响应数目。
进一步地,用于执行所述由所述目标奇偶性得到对所述第一从机的数量进行处理的目标运算方法,包括:
在所述第一从机的数量的目标奇偶性为奇数时,获取第一运算方法;
其中,所述利用所述目标运算方法对所述第一从机的数量进行计算,包括:
根据所述第一运算方法对所述第一从机的数量进行计算;所述第一运算方法为:
将所述第一从机的数量除以2,得到第一结果;
将所述第一结果进行向上取整。
进一步地,用于执行所述由所述目标奇偶性得到对所述第一从机的数量进行处理的目标运算方法,包括:
在所述第一从机的数量的目标奇偶性为偶数时,获取第二运算方法;
其中,所述利用所述目标运算方法对所述第一从机的数量进行计算,包括:
根据所述第二运算方法对所述第一从机的数量进行计算;所述第二运算方法为:
将所述第一从机的数量除以2,得到第二结果;
将所述第二结果进行加1。
其中,所述主机节点与所述第二从机位于第二数据中心,所述第一从机位于多个第一数据中心。
进一步地,用于执行所述方法还包括:
在检测到所述主机节点的故障信息时,将所述第二从机设置为所述主机节点。
本发明的实施例还提供了一种计算机存储介质,所述存储介质可设置于客户端之中以保存用于实现方法实施例中一种数据写入方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述方法实施例提供的数据写入方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络设备中的至少一个网络设备。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本说明书实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中加载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据写入方法,其特征在于,所述方法包括:
获取节点集群,所述节点集群包括主机节点以及与所述主机节点对应的从机节点;所述从机节点包括至少一个第一从机;所述从机节点为半同步复制模式;
获取终端设备发送的待写入数据,并将所述待写入数据写入所述主机节点;
获取所述主机节点接收到的响应消息的数目;所述响应消息由从所述主机节点成功接收所述待写入数据的从机节点发出;
根据所述第一从机的数量确定得到预设响应数目;
在接收到的响应消息的数目大于所述预设响应数目时,将所述待写入数据写入本地。
2.根据权利要求1所述的数据写入方法,其特征在于,所述根据所述第一从机的数量确定得到预设响应数目,包括:
根据所述第一从机的数量确定出所述第一从机的数量对应的目标奇偶性;
由所述目标奇偶性得到对所述第一从机的数量进行处理的目标运算方法;
利用所述目标运算方法对所述第一从机的数量进行计算,以得到所述预设响应数目。
3.根据权利要求2所述的数据写入方法,其特征在于,所述由所述目标奇偶性得到对所述第一从机的数量进行处理的目标运算方法,包括:
在所述第一从机的数量的目标奇偶性为奇数时,获取第一运算方法;
其中,所述利用所述目标运算方法对所述第一从机的数量进行计算,包括:
根据所述第一运算方法对所述第一从机的数量进行计算;所述第一运算方法为:
将所述第一从机的数量除以2,得到第一结果;
将所述第一结果进行向上取整。
4.根据权利要求2所述的数据写入方法,其特征在于,所述由所述目标奇偶性得到对所述第一从机的数量进行处理的目标运算方法,包括:
在所述第一从机的数量的目标奇偶性为偶数时,获取第二运算方法;
其中,所述利用所述目标运算方法对所述第一从机的数量进行计算,包括:
根据所述第二运算方法对所述第一从机的数量进行计算;所述第二运算方法为:
将所述第一从机的数量除以2,得到第二结果;
将所述第二结果进行加1。
5.根据权利要求1所述的数据写入方法,其特征在于,所述从机节点包括第二从机;所述主机节点与所述第二从机位于第二数据中心,所述第一从机位于多个第一数据中心。
6.根据权利要求5所述的数据写入方法,其特征在于,所述方法还包括:
在检测到所述主机节点的故障信息时,将所述第二从机设置为所述主机节点。
7.一种数据写入装置,其特征在于,所述装置包括:
节点集群获取模块,用于获取节点集群,所述节点集群包括主机节点以及与所述主机节点对应的从机节点;所述从机节点包括至少一个第一从机;所述从机节点为半同步复制模式;
待写入数据获取模块,用于获取终端设备发送的待写入数据,并将所述待写入数据写入所述主机节点;
响应消息数目获取模块,用于获取所述主机节点接收到的响应消息的数目;所述响应消息由从所述主机节点成功接收所述待写入数据的从机节点发出;
预设响应数目确定模块,用于根据所述第一从机的数量确定得到预设响应数目;
数据写入模块,用于在接收到的响应消息的数目大于所述预设响应数目时,将所述待写入数据写入本地。
8.根据权利要求7所述的数据写入装置,其特征在于,所述预设响应数目确定模块,包括:
奇偶性确定单元,用于根据所述第一从机的数量确定出所述第一从机的数量对应的目标奇偶性;
运算方法得到单元,用于由所述目标奇偶性得到对所述第一从机的数量进行处理的目标运算方法;
预设响应数目获取单元,用于利用所述目标运算方法对所述第一从机的数量进行计算,以得到所述预设响应数目。
9.一种设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至6任一所述的数据写入方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至6任一所述的数据写入方法。
CN201910343443.3A 2019-04-26 2019-04-26 一种数据写入方法、装置、设备及存储介质 Active CN110413686B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910343443.3A CN110413686B (zh) 2019-04-26 2019-04-26 一种数据写入方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910343443.3A CN110413686B (zh) 2019-04-26 2019-04-26 一种数据写入方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN110413686A true CN110413686A (zh) 2019-11-05
CN110413686B CN110413686B (zh) 2024-02-13

Family

ID=68357681

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910343443.3A Active CN110413686B (zh) 2019-04-26 2019-04-26 一种数据写入方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110413686B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111817895A (zh) * 2020-07-14 2020-10-23 济南浪潮数据技术有限公司 一种主控节点切换方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8145838B1 (en) * 2009-03-10 2012-03-27 Netapp, Inc. Processing and distributing write logs of nodes of a cluster storage system
US20170235805A1 (en) * 2016-02-17 2017-08-17 Netapp Inc. Tracking structure for data replication synchronization
CN107295080A (zh) * 2017-06-19 2017-10-24 北京百度网讯科技有限公司 应用于分布式服务器集群的数据存储方法和服务器
CN107368485A (zh) * 2016-05-12 2017-11-21 苏宁云商集团股份有限公司 一种数据库的管理方法及数据库系统
US20180203607A1 (en) * 2017-01-19 2018-07-19 International Business Machines Corporation Apparatus, method, and program product for data integrity during asynchronous remote copy
CN109074297A (zh) * 2016-02-22 2018-12-21 Netapp股份有限公司 在同步复制的数据集中启用数据完整性检查和更快的应用恢复
CN109274604A (zh) * 2018-09-29 2019-01-25 阿里巴巴集团控股有限公司 报文处理方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8145838B1 (en) * 2009-03-10 2012-03-27 Netapp, Inc. Processing and distributing write logs of nodes of a cluster storage system
US20170235805A1 (en) * 2016-02-17 2017-08-17 Netapp Inc. Tracking structure for data replication synchronization
CN109074297A (zh) * 2016-02-22 2018-12-21 Netapp股份有限公司 在同步复制的数据集中启用数据完整性检查和更快的应用恢复
CN107368485A (zh) * 2016-05-12 2017-11-21 苏宁云商集团股份有限公司 一种数据库的管理方法及数据库系统
US20180203607A1 (en) * 2017-01-19 2018-07-19 International Business Machines Corporation Apparatus, method, and program product for data integrity during asynchronous remote copy
CN107295080A (zh) * 2017-06-19 2017-10-24 北京百度网讯科技有限公司 应用于分布式服务器集群的数据存储方法和服务器
US20180367610A1 (en) * 2017-06-19 2018-12-20 Beijing Baidu Netcom Science And Technology Co., Ltd. Data storage method and server applicable to distributed server cluster
CN109274604A (zh) * 2018-09-29 2019-01-25 阿里巴巴集团控股有限公司 报文处理方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘波;胡景光;黄天天;: "云环境MMM数据库集群双主多从架构模型构建", 计算机与数字工程, no. 04 *
张楠;柴小丽;谢彬;唐鹏;: "Storm流处理平台中负载均衡机制的实现", 计算机与现代化, no. 12 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111817895A (zh) * 2020-07-14 2020-10-23 济南浪潮数据技术有限公司 一种主控节点切换方法、装置、设备及存储介质
CN111817895B (zh) * 2020-07-14 2023-04-07 济南浪潮数据技术有限公司 一种主控节点切换方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN110413686B (zh) 2024-02-13

Similar Documents

Publication Publication Date Title
US11079966B2 (en) Enhanced soft fence of devices
US9667750B2 (en) Client-initiated leader election in distributed client-server systems
US10831741B2 (en) Log-shipping data replication with early log record fetching
CN105426275B (zh) 双活集群系统中容灾的方法及装置
WO2014000430A1 (zh) 一种实现高可用集群的心跳服务的方法及装置
US9798639B2 (en) Failover system and method replicating client message to backup server from primary server
CN103885895A (zh) 容错集群存储系统中的写入性能
JP6431197B2 (ja) スナップショット処理方法および関係付けられたデバイス
CN109151028A (zh) 一种分布式存储系统容灾方法及装置
CN102088490A (zh) 数据存储方法、设备和系统
US10990464B1 (en) Block-storage service supporting multi-attach and health check failover mechanism
US11243980B2 (en) Monotonic transactions in a multi-master database with loosely coupled nodes
CN110633046A (zh) 一种分布式系统的存储方法、装置、存储设备及存储介质
CN106874142A (zh) 一种实时数据容错处理方法及系统
CN112527567A (zh) 系统容灾方法、装置、设备以及存储介质
CN107038192A (zh) 数据库容灾方法和装置
CN110209526A (zh) 一种存储层同步系统、及存储介质
CN110278222A (zh) 分布式文件存储系统中数据管理的方法、系统以及相关设备
US10169441B2 (en) Synchronous data replication in a content management system
US20090187600A1 (en) Method of improving replica server performance and a replica server system
CN110413686A (zh) 一种数据写入方法、装置、设备及存储介质
EP3316114A1 (en) Data reading and writing method and device
CN109062731A (zh) 一种数据库切换时的幂等控制方法和装置
CN109241110A (zh) 订单管理方法及系统、电子设备、存储介质
CN112799879B (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