CN110427284B - 数据处理方法、分布式***、计算机***和介质 - Google Patents

数据处理方法、分布式***、计算机***和介质 Download PDF

Info

Publication number
CN110427284B
CN110427284B CN201910706874.1A CN201910706874A CN110427284B CN 110427284 B CN110427284 B CN 110427284B CN 201910706874 A CN201910706874 A CN 201910706874A CN 110427284 B CN110427284 B CN 110427284B
Authority
CN
China
Prior art keywords
data
server cluster
fragment
proxy server
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
Application number
CN201910706874.1A
Other languages
English (en)
Other versions
CN110427284A (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN201910706874.1A priority Critical patent/CN110427284B/zh
Publication of CN110427284A publication Critical patent/CN110427284A/zh
Application granted granted Critical
Publication of CN110427284B publication Critical patent/CN110427284B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种分布式***的数据处理方法,所述分布式***包括:应用服务器集群、代理服务器集群和数据存储服务器集群,所述方法包括:由所述应用服务器集群向所述代理服务器集群发送读请求数据包;由所述代理服务器集群确定与所述读请求数据包对应且位于所述数据存储服务器集群中的第一指定分片;以及,当确定所述第一指定分片为待迁移分片时,由所述代理服务器集群将所述第一指定分片中与所述读请求数据包相关的第一数据优先迁移所述第一指定分片的迁移目标分片,以便所述代理服务器集群中的任一代理服务器节点从所述迁移目标分片读取所述第一数据并返回至所述应用服务器集群。本公开还提供了一种分布式***、计算机***和介质。

Description

数据处理方法、分布式***、计算机***和介质
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种分布式***的数据处理方法、分布式***、计算机***和介质。
背景技术
随着业务范围的快速扩展,银行、互联网等企业所部署的分布式***经常面临以下情景:(1)业务访问量、交易量、数据量等指标随时间不断增长。(2)每当特殊活动日(如节日促销、店庆等),访问量、交易量、数据量等指标会急剧增加,而在活动结束后,各项指标又会恢复原有水平。为应对以上情景,大部分分布式***在最初构建集群时即按业务数据的峰值来评估搭建,然而由于通常情况下的业务数据远低于峰值业务数据,从而造成了计算节点、存储节点的大量闲置浪费,且当评估不准确、或业务数据增长过快无法预测时,为满足数据增长后的存储需求,只能对分布式***进行扩容或对已存储的数据进行动态迁移。在动态迁移过程中,由于增加分片节点后将影响所有节点的数据访问路由规则,所以需要应用停机配合扩容,对全量数据进行重分布后,更新路由信息,才能对外服务,影响了分布式***的服务连续性。
发明内容
本公开的一个方面提供了一种分布式***的数据处理方法,分布式***包括:应用服务器集群、代理服务器集群和数据存储服务器集群。该方法包括:由应用服务器集群向代理服务器集群发送读请求数据包。由代理服务器集群确定与读请求数据包对应且位于数据存储服务器集群中的第一指定分片。当确定第一指定分片为待迁移分片时,由代理服务器集群将第一指定分片中与所述读请求数据包相关的第一数据优先迁移第一指定分片的迁移目标分片,以便代理服务器集群中的任一代理服务器节点从该迁移目标分片读取第一数据并返回至应用服务器集群。
可选地,上述方法还包括:当确定第一指定分片为非待迁移分片时,由代理服务器集群中的任一代理服务器节点从第一指定分片读取第一数据并将第一数据返回至应用服务器集群。
可选地,分布式***还包括分布式消息队列集群。上述方法还包括:由应用服务器集群向代理服务器集群发送写请求数据包。由代理服务器集群确定与写请求数据包对应且位于数据存储服务器集群中的第二指定分片。当确定第二指定分片为待迁移分片时,由代理服务器集群将写请求数据包中的第二数据写入分布式消息队列集群,以便代理服务器集群中的任一代理服务器节点将第二数据从分布式消息队列集群迁移至第二指定分片的目标迁移分片。
可选地,上述方法还包括:当确定第二指定分片为非待迁移分片时,由代理服务器集群中的任一代理服务器节点将第二数据写入所述第二指定分片。
可选地,数据存储服务器集群包括一个或多个节点组、以及一个或多个新增节点组,其中,每个节点组包括一个主节点和一个备节点,每个新增节点组包括一个新增主节点和一个新增备节点。上述方法还包括:在每个节点组中的主节点和备节点相连接的情况下,使得主节点和备节点数据读写保持同步。和/或,在每个新增节点组中的新增主节点和新增备节点相连接的情况下,使得新增主节点和新增备节点的数据读写保持同步。
可选地,第二指定分片位于一个主节点中,第二指定分片的迁移目标分片位于一个新增主节点中。分布式***还包括管理控制台集群。上述方法还包括:当对所述第二指定分片进行迁移时,由所述管理控制台集群断开每个节点组中的主节点和备节点之间的连接。由管理控制台集群从第二指定分片中随机选取一条数据并迁移至第二指定分片的迁移目标分片,并将该条数据从第二指定分片中删除。以及,由管理控制台集群重复上述操作,直至第二指定分片中的数据被全部删除。
可选地,上述方法还包括:在对第二指定分片进行迁移时,如果分布式***发生故障,则由管理控制台集群控制代理服务器集群停止工作。由管理控制台集群利用与第二指定分片所在的主节点对应的备节点中的数据以及分布式消息队列集群中的数据,对第二指定分片进行数据恢复。
本公开的另一方面提供了一种分布式***,包括:应用服务器集群、代理服务器集群和数据存储服务器集群。应用服务器集群用于向所述代理服务器集群发送读请求数据包。代理服务器集群用于确定与所述读请求数据包对应且位于所述数据存储服务器集群中的第一指定分片。代理服务器集群还用于当确定第一指定分片为待迁移分片时,将所述第一指定分片中与所述读请求数据包相关的第一数据优先迁移所述第一指定分片的迁移目标分片,以便所述代理服务器集群中的任一代理服务器节点从所述迁移目标分片读取所述第一数据并返回至所述应用服务器集群。
本公开的另一方面提供了一种计算机***,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
根据本公开的实施例,在分布式***中进行数据读取时,如果面临分布式***即将进行数据迁移的情况,无需等待数据迁移完成后再进行数据读取。而是优先将待读取的相关数据强制迁移至迁移目标分片,进而任一代理服务器节点均可以直接从迁移目标分片中进行数据读取,保证了分布式***的对外连续服务,不会因为数据迁移的发生而中断。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的应用分布式***的数据处理方法和应用分布式***的示例性***架构;
图2示意性示出了根据本公开实施例的分布式***的数据处理方法的流程图;
图3示意性示出了根据本公开另一实施例的分布式***的数据处理方法的流程图;
图4示意性示出了根据本公开实施例的分布式***的示例示意图;
图5示意性示出了根据本公开实施例的图4所示的代理服务器集群2的示例示意图;
图6示意性示出了根据本公开实施例的图4所示的数据存储服务器集群3的示例示意图;
图7示意性示出了根据本公开实施例的图4所示的分布式***进行数据迁移的流程图;
图8示意性示出了根据本公开实施例的图4所示的分布式***进行数据迁移灾备恢复的流程图;
图9示意性示出了根据本公开实施例的分布式***的框图;以及
图10示意性示出了根据本公开实施例的适于实现分布式***的数据处理方法的计算机***的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
本公开的实施例提供了一种分布式***的数据处理方法、分布式***、计算机***和介质。分布式***包括:应用服务器集群、代理服务器集群和数据存储服务器集群。该方法包括读请求过程、分片确定过程、以及迁移处理过程。在读请求过程,由应用服务器集群向代理服务器集群发送读请求数据包。然后进行分片确定过程,由代理服务器集群确定与该读请求数据包对应且位于数据存储服务器集群中的第一指定分片。当确定所述第一指定分片为待迁移分片时,进入迁移处理过程,由代理服务器集群将第一指定分片中与读请求数据包相关的第一数据优先迁移第一指定分片的迁移目标分片,以便代理服务器集群中的任一代理服务器节点从迁移目标分片读取第一数据并将该第一数据返回至应用服务器集群。
图1示意性示出了根据本公开实施例的可以应用分布式***的数据处理方法和分布式***的示例性***架构100。需要注意的是,图1所示仅为可以应用本公开实施例的***架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图1所示,根据该实施例的***架构100可以包括多个电子设备(101-107)。电子设备(101-107)可以是个人电脑(personal computer,PC)、网络服务器、数据库服务器等。电子设备(101-107)中的每一个电子设备可以具有相同或不同的计算能力。
多个电子设备(101-107)构成分布式***,可以用于提供各种服务支持,例如,分布式***可以接收用户请求,并对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给相应的终端设备。
需要说明的是,本公开实施例所提供的数据处理方法一般可以由分布式***中的一个或多个集群执行。
应该理解,图1中的电子设备的数目仅仅是示意性的。根据实际需要,可以具有任意数目的电子设备。
图2示意性示出了根据本公开实施例的分布式***的数据处理方法的流程图,用于描述分布式***的数据读取过程。其中分布式***包括:应用服务器集群、代理服务器集群和数据存储服务器集群。
如图2所示,该方法可以包括以下操作S201~S203。
在操作S201,由应用服务器集群向代理服务器集群发送读请求数据包。
其中,应用服务器集群可以包括一个或多个应用服务器节点,代理服务器集群可以包括一个或多个代理服务器节点。本操作S201可以由应用服务器集群中的任一应用服务器节点向代理服务器集群中的任一代理服务器节点发送读请求数据包,以实现数据读取的目的。
在操作S202,由代理服务器集群确定与读请求数据包对应且位于数据存储服务器集群中的第一指定分片。
其中,代理服务器集群可以通过各种方式确定与读请求数据包对应且位于数据存储服务器集群中的第一指定分片。例如,数据存储服务器集群中包括1024个分片(如1024个Slot(槽)),先采用哈希(hash)算法对该读请求数据包进行运算,再将运算结果对1024取模,得到的数值为第一指定分片的序号。在其他例子中,也可以利用预先设定的其它映射规则,将读请求数据包映射到相应的指定分片。
在操作S203,当确定第一指定分片为待迁移分片时,由代理服务器集群将第一指定分片中与读请求数据包相关的第一数据优先迁移第一指定分片的迁移目标分片,以便代理服务器集群中的任一代理服务器节点从迁移目标分片读取第一数据并返回至应用服务器集群。
其中,确定第一指定分片为待迁移分片是指:代理服务器集群中的任一代理服务器节点均可以确定该迁移事件,且能够获知第一指定分片的迁移目标分片。进而由代理服务器集群将第一指定分片中与读请求数据包相关的第一数据优先迁移第一指定分片的迁移目标分片,这样无论哪个代理服务器节点执行数据读取任务时,均可以直接从该第一指定分片的迁移目标分片读取相应的数据并返回至应用服务器集群。
本领域技术人员可以理解,图2所示的方法在分布式***中进行数据读取时,如果面临分布式***即将进行数据迁移的情况,无需等待数据迁移完成后再进行数据读取。而是优先将待读取的相关数据强制迁移至迁移目标分片,进而任一代理服务器节点均可以直接从迁移目标分片中进行数据读取,保证了分布式***的对外连续服务,不会因为数据迁移的发生而中断。
进一步地,在代理服务器集群确定与读请求数据包对应且位于数据存储服务器集群中的第一指定分片之后,如果确定第一指定分片为非待迁移分片,则根据本公开实施例的数据处理方法按照分布式***的数据读取过程可按照一般流程进行。由代理服务器集群中的任一代理服务器节点从第一指定分片读取相应的待读取的第一数据并该第一数据返回至应用服务器集群。
图3示意性示出了根据本公开另一实施例的分布式***的数据处理方法的流程图,用于描述分布式***的数据写入过程。其中分布式***包括:应用服务器集群、代理服务器集群、数据存储服务器集群、以及分布式消息队列集群。
如图3所示,该方法可以包括以下操作S301~S303。
在操作S301,由应用服务器集群向代理服务器集群发送写请求数据包。
其中,本操作S301可以由应用服务器集群中的任一应用服务器节点向代理服务器集群中的任一代理服务器节点发送写请求数据包,以实现数据写入的目的。
在操作S302,由代理服务器集群确定与写请求数据包对应且位于数据存储服务器集群中的第二指定分片。
其中,代理服务器集群可以通过各种方式确定与写请求数据包对应且位于数据存储服务器集群中的第二指定分片。例如,数据存储服务器集群中包括1024个分片(如1024个Slot(槽)),先采用哈希算法对该写请求数据包进行运算,再将运算结果对1024取模,得到的数值为第二指定分片的序号。在其他例子中,也可以利用预先设定的其它映射规则,将写请求数据包映射到相应的指定分片。
在操作S303,当确定第二指定分片为待迁移分片时,由代理服务器集群将写请求数据包中的第二数据写入分布式消息队列集群,以便代理服务器集群中的任一代理服务器节点将第二数据从分布式消息队列集群迁移至第二指定分片的目标迁移分片。
其中,确定第二指定分片为待迁移分片是指:代理服务器集群中的任一代理服务器节点均可以确定该迁移事件,且能够获知第二指定分片的迁移目标分片。将分布式消息队列集群作为迁移临界状态的增量数据缓存区,由代理服务器集群将写请求数据包中的第二数据强制迁移第二指定分片的迁移目标分片,这样无论哪个代理服务器节点在面临数据迁移事件执行数据写入任务时,均可以直接将分布式消息队列集群中的第二数据直接写入该第二指定分片的迁移目标分片,不会因数据迁移而造成数据混乱。
本领域技术人员可以理解,图3所示的方法在分布式***中进行数据写入时,如果面临分布式***即将进行数据迁移的情况,无需等待数据迁移完成后再进行数据写入。而是先将待写入的相关数据作为增量数据放入分布式消息队列集群,进而由任一代理服务器节点将该增量数据从分布式消息队列集群强制迁移至迁移目标分片,保证了分布式***的对外连续服务,不会因为数据迁移的发生而中断。
进一步地,在代理服务器集群确定与写请求数据包对应且位于数据存储服务器集群中的第二指定分片之后,如果确定所述第二指定分片为非待迁移分片,则根据本公开实施例的数据处理方法按照分布式***的数据写入过程可按照一般流程进行。由代理服务器集群中的任一代理服务器节点将第二数据写入第二指定分片。
下面参考图4~图6,对上文所述的根据本公开实施例的分布式***的数据处理方法进行示例性说明。其中,图4示意性示出了根据本公开实施例的分布式***的示例示意图,图5示意性示出了根据本公开实施例的图4所示的代理服务器集群2的示例示意图,图6示意性示出了根据本公开实施例的图4所示的数据存储服务器集群3的示例示意图。
如图4所示,分布式***可以包括:应用服务器(APP)集群1、代理服务器(Proxy)集群2、数据存储服务器(Storage)集群3、分布式消息队列(DMQS)集群4、分布式协调器(ETCD)集群5、管理控制台(Console)集群6。
如图5所示,代理服务器集群2可以包括数据迁移期间代理服务器(Proxy-1、Proxy-2、Proxy-3...Proxy-n)兼分布式消息队列生产者(Producer-1、Producer-2...Producer-n)集群7、8、9、10,还可以包括数据迁移期间代理服务器(Proxy-3)兼分布式消息队列消费者(Consumer-1)集群9。
如图6所示,数据存储服务器集群3可以包括第一主节点(Master-1)11(包含Slot-0...Slot-511,Slot为分片的最小单元)、第一备节点(Slave-1)12(包含Slot-0...Slot-511)、第二主节点(Master-2)13(包含Slot-512...Slot-1023)、第二备节点(Slave-2)14(包含Slot-512...Slot-1023)、第三主节点(Master-3)15(包含Slot-0)、以及第三备节点(Slave-3)16(包含Slot-0)。其中,第一主节点和第一备节点组成第一节点组,第二主节点和第二备节点组成第二节点组,,第三主节点和第三备节点均为新增节点,组成新增节点组。在其他实施例中,数据存储服务器集群3可以包括任意数量的节点组以及任意数量的新增节点组,其中每个节点组包括一个主节点和一个备节点,每个新增节点组包括一个新增主节点和一个新增备节点。在每个节点组中的主节点和备节点相连接的情况下,使得主节点和备节点数据读写保持同步,附加地或备选地,在每个新增节点组中的新增主节点和新增备节点相连接的情况下,使得新增主节点和新增备节点的数据读写保持同步。在本例中,当发生数据迁移时,通常情况下是将第一主节点或第二主节点中的数据迁移至第三主节点中,具体迁移映射关系可以根据需要进行配置。
对于上述图4~图6所示的分布式***,在没有数据迁移事件时,分布式***处于正常联机访问模式。应用服务器集群1向代理服务器集群2发送读写请求数据包,由代理服务器集群2将所收到的读写请求采用hash算法并对1024(数据存储服务器集群3的Slot总数)取模得出相应的位于数据存储服务器集群3中的指定分片。然后,根据分布式协调器集群5中存放的路由信息,将读写请求路由至数据存储服务器集群3的指定分片。
分布式***在发生数据迁移事件时,数据读取操作处于数据动态迁移期间联机访问读模式。应用服务器集群1向代理服务器集群2发送读请求数据包,由代理服务器集群2将所收到的读请求按hash算法并对1024(数据存储服务器集群3的Slot总数)取模得出相应的位于数据存储服务器集群3中的指定分片。判断与读请求对应的数据存储服务器集群3的指定Slot是否为数据存储服务器集群3正在迁移Slot。若是,则代理服务器集群2将与读请求对应的数据存储服务器集群3中的指定Slot中所含请求数据相关内容强制迁移至数据存储服务器集群3中的指定Slot的迁移目标Slot。代理服务器集群2将从数据存储服务器集群3中的该迁移目标分片读取数据内容并返回给应用服务器集群1。若否,则代理服务器集群2从数据存储服务器集群3中的指定分片读取数据内容并返回给应用服务器集群1。
分布式***在发生数据迁移事件时,数据写入操作处于数据动态迁移期间联机访问写模式。应用服务器集群1向代理服务器集群2发送写请求数据包。由代理服务器集群2将所收到的写请求按照hash算法并对1024(数据存储服务器集群3的Slot总数)取模得出相应的位于数据存储服务器集群3中的指定分片。判断该指定分片是否为正在迁移分片。若是,则通过代理服务器兼消息队列中间件生产者装置7将写请求写入分布式消息队列集群4。若否,代理服务器兼分布式消息队列消费者装置9将写请求数据包写入数据存储服务器集群3的指定分片。
在通过代理服务器兼消息队列中间件生产者装置7将写请求写入分布式消息队列集群4之后,代理服务器兼消息队列中间件消费者装置9从分布式消息队列集群4中获取写请求数据包。代理服务器兼消息队列中间件消费者装置9判断与写请求数据包对应的数据存储服务器集群3中的指定Slot是否为数据存储服务器集群3中的正在迁移Slot。
若是,代理服务器兼分布式消息队列消费者装置9将指定Slot中所含请求数据相关内容强制迁移至相应的迁移目标Slot,然后将写请求数据包写入数据存储服务器集群3的迁移目标分片。若否,代理服务器兼分布式消息队列消费者装置9将写请求数据包写入数据存储服务器集群3的指定分片。
分布式***在发生数据迁移事件时,数据存储服务器集群3处于数据迁移模式。以对第一主节点11进行数据迁移为例。首先,管理控制台集群6断开第一主节点11和第一备节点12之间的连接。然后,管理控制台集群6采用随机方式从第一主节点11的Slot-0中选取一条数据迁移至第三主节点15。然后将第一主节点装置11的Slot-0中完成迁移的源数据删除。重复以上步骤,直至主节点装置11的Slot-0中数据全部迁移并删除。接着,对于第一主节点11中的其他Slot循环以上步骤,对第一主节点装置11的其他待迁移Slot进行迁移,直至所有待迁移Slot完成迁移。
图7示意性示出了根据本公开实施例的图4所示的分布式***进行数据迁移的流程图。
如图7所示,该方法可以包括以下操作S701~S712。
在操作S701,管理控制台集群断开待迁移数据所在的数据存储服务器集群的主备关系。
在操作S702,管理控制台集群修改分布式协调器集群中与动态迁移相关配置。
在操作S703,代理服务器集群监听到分布式协调器集群中准备动态迁移的事件后,创建分布式消息队列集群的生产者和消费者,并将路由落入待迁移分片的写请求数据写入分布式消息队列集群。
在操作S704,管理控制台集群确认是否所有代理服务器集群皆进入准备迁移状态,是则执行操作S706,否则执行操作S705。
其中,管理控制台集群确认是否所有代理服务器集群皆进入准备迁移状态的方式例如可以是判断是否收到关于待迁移数据的所有代理服务器集群的迁移确认信息。
在操作S705,终止迁移,恢复代理服务器集群的正常服务状态,待问题解决后再重新触发迁移流程。
在操作S706,管理控制台集群通过分布式协调器集群触发数据动态迁移流程,一方面需要执行操作S707,另一方面需要执行操作S708。
在操作S707,管理控制台集群开始对数据存储服务器集群中的迁移源分片内Slot向迁移目标分片内Slot进行数据的逐条迁移,然后执行操作S711。
在操作S708,代理服务器兼消息队列中间件消费者装置开始消费分布式消息队列集群中的写请求数据,并判断该写请求数据是否属于迁移Slot,是则执行操作S710,否则执行操作S709。
在操作S709,按默认路由规则,将写请求数据写入数据存储服务器集群所属分片。
在操作S710,对源Slot中相关数据进行强制迁移,并将写请求数据写入数据存储服务器集群迁移目标Slot。
在操作S711,本次迁移所涉及的所有Slot完成迁移后管理控制台集群将修改分布式协调器集群中的路由表。
在操作S712,管理控制台集群将通过分布式协调器集群通知代理服务器集群停止对分布式消息队列集群的生产、消费、强迁等动作,恢复至常规服务状态。
图8示意性示出了根据本公开实施例的图4所示的分布式***进行数据迁移灾备恢复的流程图。
如图8所示,该方法可以包括以下操作S801~S805。
在操作S801,动态迁移过程中,发生任何不可预知、且短时间内无法解决的问题(如断电,网络中断,程序缺陷等)导致数据迁移中断。
在操作S802,关闭相关的代理服务器集群。
在操作S803,管理控制台集群将迁移过程中写入分布式消息队列集群中的增量数据写入数据存储服务器集群中的源迁移数据所在的主节点的备节点。
其中,管理控制台集群可以利用与当前正在迁移分片所在的主节点对应的备节点中的数据以及分布式消息队列集群中的数据,对当前正在迁移分片进行数据恢复。
在操作S804,管理控制台集群清理分布式协调器集群中与动态迁移相关配置信息及恢复原有路由信息。
在操作S805,重新启动相关的代理服务器集群,恢复正常对外服务。
基于上述各实施例的描述,本领域技术人员可以理解,根据本公开实施例的分布式***的数据处理方法至少可以实现以下有益效果:
(1)在分布式数据存储在容量不足或闲置时,在不中断服务的前提下,可快速进行弹性扩缩容,有效应对业务量或数据量突发变化等场景。
(2)在存储集群搭建初期,对于接入应用的业务量或数据量评估工作,要求不必过于严格,可随业务的不断增长,弹性伸缩,既满足了业务不断变化的需求,又满足了设备利用率等各项指标要求。
(3)集群规模较大,任何节点都可能随时出现机器、网络等基础设施出现故障等情况,综合各类因素,动态迁移方案最终采用了分布式消息队列集群作为数据迁移的数据缓冲及重放机制,当出现各类无法预知甚至无法恢复的问题时,依然能通过冷备节点的存量数据和分布式消息队列重放的动态迁移过程中的增量数据,快速进行灾备恢复,将集群恢复至原有正常状态,保证了在短时间内可快速恢复对业务的服务能力,对于整个数据存储平台的数据完整性,服务稳定性都有显著提升。
图9示意性示出了根据本公开实施例的分布式***的框图。
如图9所示,该账户集合的识别装置900包括:应用服务器集群910、代理服务器集群920和数据存储服务器集群930。
应用服务器集群910用于向代理服务器集群920发送读请求数据包。
代理服务器集群920用于确定与所述读请求数据包对应且位于数据存储服务器集群930中的第一指定分片。
代理服务器集群920还用于当确定所述第一指定分片为待迁移分片时,将所述第一指定分片中与所述读请求数据包相关的第一数据优先迁移所述第一指定分片的迁移目标分片,以便代理服务器集群920中的任一代理服务器节点从所述迁移目标分片读取所述第一数据并将该第一数据返回至应用服务器集群910。
需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图10示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机***的框图。图10示出的计算机***仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,根据本公开实施例的计算机***1000包括处理器1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。处理器1001例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1001还可以包括用于缓存用途的板载存储器。处理器1001可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1003中,存储有***1000操作所需的各种程序和数据。处理器1001、ROM1002以及RAM 1003通过总线1004彼此相连。处理器1001通过执行ROM 1002和/或RAM 1003中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1002和RAM 1003以外的一个或多个存储器中。处理器1001也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,***1000还可以包括输入/输出(I/O)接口1005,输入/输出(I/O)接口1005也连接至总线1004。***1000还可以包括连接至I/O接口1005的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被处理器1001执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

Claims (9)

1.一种分布式***的数据处理方法,所述分布式***包括:分布式消息队列集群、应用服务器集群、代理服务器集群和数据存储服务器集群,所述方法包括:
由所述应用服务器集群向所述代理服务器集群发送读请求数据包;
由所述代理服务器集群确定与所述读请求数据包对应且位于所述数据存储服务器集群中的第一指定分片;以及
当确定所述第一指定分片为待迁移分片时,由所述代理服务器集群将所述第一指定分片中与所述读请求数据包相关的第一数据优先迁移所述第一指定分片的迁移目标分片,以便所述代理服务器集群中的任一代理服务器节点从所述第一指定分片的迁移目标分片读取所述第一数据并将所述第一数据返回至所述应用服务器集群;
由所述应用服务器集群向所述代理服务器集群发送写请求数据包;
由所述代理服务器集群确定与所述写请求数据包对应且位于所述数据存储服务器集群中的第二指定分片;以及
当确定所述第二指定分片为待迁移分片时,由所述代理服务器集群将所述写请求数据包中的第二数据写入所述分布式消息队列集群,以便所述代理服务器集群中的任一代理服务器节点将所述第二数据从所述分布式消息队列集群迁移至所述第二指定分片的目标迁移分片。
2.根据权利要求1所述的方法,还包括:
当确定所述第一指定分片为非待迁移分片时,由所述代理服务器集群中的任一代理服务器节点从所述第一指定分片读取所述第一数据并将所述第一数据返回至所述应用服务器集群。
3.根据权利要求1所述的方法,还包括:
当确定所述第二指定分片为非待迁移分片时,由所述代理服务器集群中的任一代理服务器节点将所述第二数据写入所述第二指定分片。
4.根据权利要求1所述的方法,其中,所述数据存储服务器集群包括一个或多个节点组、以及一个或多个新增节点组,其中,每个节点组包括一个主节点和一个备节点,每个新增节点组包括一个新增主节点和一个新增备节点;所述方法还包括:在每个节点组中的主节点和备节点相连接的情况下,使得所述主节点和备节点数据读写保持同步;和/或在每个新增节点组中的新增主节点和新增备节点相连接的情况下,使得所述新增主节点和新增备节点的数据读写保持同步。
5.根据权利要求4所述的方法,其中,所述第二指定分片位于一个主节点中,所述第二指定分片的迁移目标分片位于一个新增主节点中;所述分布式***还包括管理控制台集群,所述方法还包括:
当对所述第二指定分片进行迁移时,由所述管理控制台集群断开每个节点组中的主节点和备节点之间的连接;
由所述管理控制台集群从所述第二指定分片中随机选取一条数据并迁移至所述第二指定分片的迁移目标分片,并将所述一条数据从所述第二指定分片中删除;以及
由所述管理控制台集群重复上述操作,直至所述第二指定分片中的数据被全部删除。
6.根据权利要求5所述的方法,还包括:
在对所述第二指定分片进行迁移时,如果所述分布式***发生故障,则由所述管理控制台集群控制所述代理服务器集群停止工作;以及
由所述管理控制台集群利用与所述第二指定分片所在的主节点对应的备节点中的数据以及所述分布式消息队列集群中的数据,对所述第二指定分片进行数据恢复。
7.一种分布式***,包括:分布式消息队列集群、应用服务器集群、代理服务器集群和数据存储服务器集群;
所述应用服务器集群,用于向所述代理服务器集群发送读请求数据包;
所述代理服务器集群,用于确定与所述读请求数据包对应且位于所述数据存储服务器集群中的第一指定分片;以及
所述代理服务器集群,还用于当确定所述第一指定分片为待迁移分片时,将所述第一指定分片中与所述读请求数据包相关的第一数据优先迁移所述第一指定分片的迁移目标分片,以便所述代理服务器集群中的任一代理服务器节点从所述第一指定分片的迁移目标分片读取所述第一数据并将所述第一数据返回至所述应用服务器集群;
所述应用服务器集群,用于向所述代理服务器集群发送写请求数据包;
所述代理服务器集群,用于确定与所述写请求数据包对应且位于所述数据存储服务器集群中的第二指定分片;以及
所述代理服务器集群,还用于确定所述第二指定分片为待迁移分片时,由所述代理服务器集群将所述写请求数据包中的第二数据写入所述分布式消息队列集群,以便所述代理服务器集群中的任一代理服务器节点将所述第二数据从所述分布式消息队列集群迁移至所述第二指定分片的目标迁移分片。
8.一种计算机***,包括:
存储器,存储有计算机可读指令;
处理器,用于执行所述计算机可读指令,以实现如权利要求1~6中任一项所述的分布式***的数据处理方法。
9.一种计算机可读介质,存储有计算机程序,所述计算机程序被执行时用于实现如权利要求1~6中任一项所述的分布式***的数据处理方法。
CN201910706874.1A 2019-07-31 2019-07-31 数据处理方法、分布式***、计算机***和介质 Active CN110427284B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910706874.1A CN110427284B (zh) 2019-07-31 2019-07-31 数据处理方法、分布式***、计算机***和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910706874.1A CN110427284B (zh) 2019-07-31 2019-07-31 数据处理方法、分布式***、计算机***和介质

Publications (2)

Publication Number Publication Date
CN110427284A CN110427284A (zh) 2019-11-08
CN110427284B true CN110427284B (zh) 2022-02-18

Family

ID=68412059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910706874.1A Active CN110427284B (zh) 2019-07-31 2019-07-31 数据处理方法、分布式***、计算机***和介质

Country Status (1)

Country Link
CN (1) CN110427284B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111061357B (zh) * 2019-12-13 2021-09-03 北京奇艺世纪科技有限公司 节能方法、装置、电子设备及存储介质
CN113225362B (zh) * 2020-02-06 2024-04-05 北京京东振世信息技术有限公司 服务器集群***和服务器集群***的实现方法
CN111198845B (zh) * 2020-02-13 2023-07-21 橙三角(广东)科技有限公司 一种数据迁移方法、可读存储介质及计算设备
CN111459415B (zh) * 2020-04-15 2023-05-23 腾讯云计算(长沙)有限责任公司 跨云数据迁移方法、装置、设备及存储介质
CN111708763B (zh) * 2020-06-18 2023-12-01 北京金山云网络技术有限公司 分片集群的数据迁移方法、装置和分片集群***
CN111881116A (zh) * 2020-08-05 2020-11-03 中国工商银行股份有限公司 数据迁移方法、数据迁移***、计算机***和存储介质
CN112698792B (zh) * 2021-01-14 2021-09-10 腾讯科技(深圳)有限公司 分布式存储***的数据迁移方法、装置及电子设备
CN113297168B (zh) * 2021-02-22 2023-12-19 阿里巴巴集团控股有限公司 分布式***中数据迁移方法及装置
CN113268466A (zh) * 2021-06-07 2021-08-17 上海数禾信息科技有限公司 消息集群平滑迁移的方法及***
CN113656144B (zh) * 2021-08-17 2023-08-11 百度在线网络技术(北京)有限公司 一种数据发布***、方法、装置、电子设备及存储介质
CN117370310B (zh) * 2023-10-19 2024-05-28 中电云计算技术有限公司 一种分布式文件***跨集群数据增量迁移的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866234A (zh) * 2014-02-21 2015-08-26 腾讯科技(北京)有限公司 数据迁移方法、装置及***
CN105549904A (zh) * 2015-12-08 2016-05-04 华为技术有限公司 一种应用于存储***中的数据迁移方法及存储设备
CN108833503A (zh) * 2018-05-29 2018-11-16 华南理工大学 一种基于ZooKeeper的Redis集群方法
CN109582223A (zh) * 2018-10-31 2019-04-05 华为技术有限公司 一种内存数据迁移的方法及装置
CN109656911A (zh) * 2018-12-11 2019-04-19 江苏瑞中数据股份有限公司 分布式并行处理数据库***及其数据处理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11403176B2 (en) * 2017-09-12 2022-08-02 Western Digital Technologies, Inc. Database read cache optimization

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866234A (zh) * 2014-02-21 2015-08-26 腾讯科技(北京)有限公司 数据迁移方法、装置及***
CN105549904A (zh) * 2015-12-08 2016-05-04 华为技术有限公司 一种应用于存储***中的数据迁移方法及存储设备
CN108833503A (zh) * 2018-05-29 2018-11-16 华南理工大学 一种基于ZooKeeper的Redis集群方法
CN109582223A (zh) * 2018-10-31 2019-04-05 华为技术有限公司 一种内存数据迁移的方法及装置
CN109656911A (zh) * 2018-12-11 2019-04-19 江苏瑞中数据股份有限公司 分布式并行处理数据库***及其数据处理方法

Also Published As

Publication number Publication date
CN110427284A (zh) 2019-11-08

Similar Documents

Publication Publication Date Title
CN110427284B (zh) 数据处理方法、分布式***、计算机***和介质
US8458284B2 (en) Systems and methods for efficient live application migration within bandwidth constrained networks
US9110727B2 (en) Automatic replication of virtual machines
EP2288975B1 (en) Method for optimizing cleaning of maps in flashcopy cascades containing incremental maps
US11194569B2 (en) Method, electronic device and medium for upgrading a hyper-converged infrastructure node
CN102594858B (zh) 云存储环境中的镜像解决方案
US9875056B2 (en) Information processing system, control program, and control method
US20140289205A1 (en) Data transfer apparatus, system, and method
CN102594849A (zh) 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置
CN102938784A (zh) 应用于分布式存储***中的数据存储方法和***
CN106855834B (zh) 一种数据备份方法、装置和***
CN112256433B (zh) 基于Kafka集群的分区迁移方法和装置
CN110377664B (zh) 数据同步方法、装置、服务器及存储介质
US11886225B2 (en) Message processing method and apparatus in distributed system
CN104517067A (zh) 访问数据的方法、装置及***
CN112631994A (zh) 数据迁移方法及***
CN109828719B (zh) 基于云监控的commitLog文件所在磁盘控制方法、装置及相关设备
CN117056123A (zh) 数据恢复方法、装置、介质及电子设备
CN116401043A (zh) 一种计算任务的执行方法和相关设备
CN115981559A (zh) 分布式数据存储方法、装置、电子设备和可读介质
CN113076175B (zh) 用于虚拟机的内存共享方法及装置
CN117667299A (zh) 虚拟机迁移方法、芯片、网卡、处理设备、***及介质
CN109189615A (zh) 一种宕机处理方法和装置
CN112506583A (zh) 一种实例控制方法、装置、设备、存储介质以及程序产品
JP2010231295A (ja) 解析システム

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