CN107105049B - 数据迁移方法和装置 - Google Patents
数据迁移方法和装置 Download PDFInfo
- Publication number
- CN107105049B CN107105049B CN201710327644.5A CN201710327644A CN107105049B CN 107105049 B CN107105049 B CN 107105049B CN 201710327644 A CN201710327644 A CN 201710327644A CN 107105049 B CN107105049 B CN 107105049B
- Authority
- CN
- China
- Prior art keywords
- server
- account number
- cluster
- service
- target account
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种数据迁移方法和装置。其中,该方法包括:第一服务器接收控制设备发送的状态变更信息,状态变更信息用于表示服务器集群中的服务器数量发生变更,服务器集群为有状态的分布式服务器集群;第一服务器判断第一服务器当前服务的帐号中是否存在目标帐号,其中,目标帐号被配置为由服务器集群中的第二服务器提供服务;在判断出第一服务器当前服务的帐号中存在目标帐号的情况下,第一服务器将第一服务器上目标帐号的数据迁移到第二服务器;在完成将目标帐号的数据迁移到第二服务器之后,第一服务器向控制设备发送迁移完成信息。本发明解决了由于现有技术的分布式集群服务发现组件功能单一导致的不利于数据迁移的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种数据迁移方法和装置。
背景技术
一般分布式集群采用的服务发现组件是目录服务器,该服务器和分布式集群中的所有节点相连,通过心跳包的方式来获得节点的状态信息,当节点增加,减少或者出现故障的时候,则更新目录服务器中当前集群的状态信息,并同步给服务消费者,以便于服务消费者选择合适的服务节点进行接入。
但是,现有的服务发现服务一般针对于无状态的服务提供者集群,加减节点并没有考虑节点的状态信息的变更,不能很好地支持有状态的服务器。而采用比较完善的分布式组件Zookeeper又会使得整个架构显得比较臃肿,不利于后期的维护。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据迁移方法和装置,以至少解决由于现有技术的分布式集群服务发现组件功能单一导致的不利于数据迁移的技术问题。
根据本发明实施例的一个方面,提供了一种数据迁移方法,包括:第一服务器接收控制设备发送的状态变更信息,其中,所述状态变更信息用于表示服务器集群中的服务器数量发生变更,所述服务器集群为有状态的分布式服务器集群,所述服务器集群包括所述第一服务器;所述第一服务器判断所述第一服务器当前服务的帐号中是否存在目标帐号,其中,所述目标帐号被配置为由所述服务器集群中的第二服务器提供服务;在判断出所述第一服务器当前服务的帐号中存在所述目标帐号的情况下,所述第一服务器将所述第一服务器上所述目标帐号的数据迁移到所述第二服务器;在完成将所述目标帐号的数据迁移到所述第二服务器之后,所述第一服务器向所述控制设备发送迁移完成信息,其中,所述迁移完成信息用于表示所述第一服务器完成对所述目标帐号的数据的迁移。
根据本发明实施例的另一方面,还提供了一种数据迁移装置,包括:控制设备检测到服务器集群中的服务器数量发生变更,其中,所述服务器集群为有状态的分布式服务器集群;所述控制设备向所述服务器集群中的所有服务器发送状态变更信息,其中,所述状态变更信息用于表示所述服务器集群中的服务器数量发生变更;在所述控制设备接收到所述所有服务器中的目标服务器发送的迁移完成信息之后,所述控制设备更新所述服务器集群的集群状态信息,其中,所述迁移完成信息用于表示所述目标服务器完成对数据的迁移,所述目标服务器中为所述所有服务器中需要进行数据迁移的服务器。
根据本发明实施例的另一方面,还提供了一种数据迁移方法,包括:第一接收单元,用于通过第一服务器接收控制设备发送的状态变更信息,其中,所述状态变更信息用于表示服务器集群中的服务器数量发生变更,所述服务器集群为有状态的分布式服务器集群,所述服务器集群包括所述第一服务器;判断单元,用于通过所述第一服务器判断所述第一服务器当前服务的帐号中是否存在目标帐号,其中,所述目标帐号被配置为由所述服务器集群中的第二服务器提供服务;迁移单元,用于在判断出所述第一服务器当前服务的帐号中存在所述目标帐号的情况下,通过所述第一服务器将所述第一服务器上所述目标帐号的数据迁移到所述第二服务器;发送单元,用于在完成将所述目标帐号的数据迁移到所述第二服务器之后,通过所述第一服务器向所述控制设备发送迁移完成信息,其中,所述迁移完成信息用于表示所述第一服务器完成对所述目标帐号的数据的迁移。
根据本发明实施例的另一方面,还提供了一种数据迁移装置,包括:检测单元,用于通过控制设备检测到服务器集群中的服务器数量发生变更,其中,所述服务器集群为有状态的分布式服务器集群;发送单元,用于通过所述控制设备向所述服务器集群中的所有服务器发送状态变更信息,其中,所述状态变更信息用于表示所述服务器集群中的服务器数量发生变更;更新单元,用于在所述控制设备接收到所述所有服务器中的目标服务器发送的迁移完成信息之后,通过所述控制设备更新所述服务器集群的集群状态信息,其中,所述迁移完成信息用于表示所述目标服务器完成对数据的迁移,所述目标服务器中为所述所有服务器中需要进行数据迁移的服务器。
在本发明实施例中,通过第一服务器接收控制设备发送的状态变更信息,判断第一服务器当前服务的帐号中是否存在目标帐号,如果存在,则将第一服务器上目标帐号的数据迁移到第二服务器,并在迁移完成之后向控制设备发送迁移完成信息,达到了服务器根据控制设备的状态变更信息迁移目标帐号的数据的目的,从而实现了自动完成用户数据迁移的技术效果,进而解决了由于现有技术的分布式集群服务发现组件功能单一导致的不利于数据迁移的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的数据迁移方法的硬件环境的示意图;
图2是根据本发明实施例的一种可选的数据迁移方法的流程图;
图3是根据本发明实施例的一种可选的数据迁移方法的流程图;
图4是根据本发明实施例的一种有状态情况下的分布式服务集群服务的示意图;
图5是根据本发明实施例的一种节点变化数据迁移方法的流程图;
图6是根据本发明实施例的一种节点故障处理方法的流程图;
图7是根据本发明实施例的一种可选的数据迁移装置的示意图;
图8是根据本发明实施例的一种可选的数据迁移装置的示意图;以及
图9是根据本发明实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
分布式服务器:所谓分布式资源共享服务器就是指数据和程序可以不位于一个服务器上,而是分散到多个服务器,以网络上分散分布的地理信息数据及受其影响的数据库操作为研究对象的一种理论计算模型服务器形式。
服务发现:服务发现组件记录了(大规模)分布式系统中所有服务的信息,人们或者其它服务可以据此找到这些服务。
集群:英文名称为Cluster,通俗地说,集群是这样一种技术,它将多个系统连接到一起,使多台服务器能够像一台机器那样工作或者看起来好像一台机器。采用集群系统通常是为了提高系统的稳定性和网络中心的数据处理能力及服务能力。
实施例1
根据本发明实施例,提供了一种数据迁移的方法实施例。
可选地,在本实施例中,上述数据迁移方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的数据迁移方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的数据迁移方法也可以是由安装在其上的客户端来执行。
在一个可选的应用场景中,在有状态的分布式服务器集群中的服务器数量发生变化时,控制设备检测到服务器集群中的服务器数量发生变更,控制设备向服务器集群中的所有服务器发送状态变更信息,服务器判断当前服务的帐号中是否存在应该由别的服务器提供服务的帐号,将这些帐号进行数据迁移,迁移到对应的提供服务的服务器中,服务器向控制设备发送迁移完成信息,在控制设备接收到所有服务器中的目标服务器发送的迁移完成信息之后,控制设备更新服务器集群的集群状态信息,服务消费端进行二次选择集群中的某个节点继续提供服务。
图2是根据本发明实施例的一种可选的数据迁移方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,第一服务器接收控制设备发送的状态变更信息,其中,状态变更信息用于表示服务器集群中的服务器数量发生变更,服务器集群为有状态的分布式服务器集群,服务器集群包括第一服务器。
步骤S204,第一服务器判断第一服务器当前服务的帐号中是否存在目标帐号,其中,目标帐号被配置为由服务器集群中的第二服务器提供服务。
步骤S206,在判断出第一服务器当前服务的帐号中存在目标帐号的情况下,第一服务器将第一服务器上目标帐号的数据迁移到第二服务器。
步骤S208,在完成将目标帐号的数据迁移到第二服务器之后,第一服务器向控制设备发送迁移完成信息,其中,迁移完成信息用于表示第一服务器完成对目标帐号的数据的迁移。
通过上述步骤S202至步骤S208,通过第一服务器接收控制设备发送的状态变更信息,判断第一服务器当前服务的帐号中是否存在目标帐号,如果存在,则将第一服务器上目标帐号的数据迁移到第二服务器,并在迁移完成之后向控制设备发送迁移完成信息,可以解决由于现有技术的分布式集群服务发现组件功能单一导致的不利于数据迁移的技术问题,进而达到自动完成用户数据迁移的技术效果。
在步骤S202提供的技术方案中,服务器集群是有状态的分布式服务器集群,例如,某个服务器中正在为玩家的游戏帐号提供服务,则这个服务器为有状态的服务器,第一服务器是服务器集群中的一个服务器,在服务器集群中的服务器数量发生变更(包括增加和减少)时,控制设备会向第一服务器发送状态变更信息。状态变更信息可以是多种类型的信息,例如,可以是数字化的指令或者一串代码等。
在步骤S204提供的技术方案中,第一服务器接收到控制设备发送的状态变更信息之后,判断第一服务器中当前服务的帐号中是否有被配置为由别的服务器提供服务的帐号,例如,在服务器数量发生变化之后,可能有的帐号会被分配迁移到新的服务器中,所以当前的第一服务器需要进行自检,判断自身服务的帐号中是否有应该由当前服务器集群中别的服务器提供服务的帐号。第一服务器所提供服务的帐号是由第一服务器根据哈希算法计算出来的,每个服务器中都会使用同样的哈希算法计算得到自身提供服务的帐号,其中,每个服务器自身提供服务的帐号不是由控制设备确定的,而是由每个服务器通过计算得到的。
在步骤S206提供的技术方案中,如果第一服务器判断出自己提供服务的帐号中有目标帐号,则第一服务器将目标帐号的数据迁移到第二服务器中,由对应的第二服务器来为目标帐号提供服务。
在第一服务器中存储有第一服务器当前提供服务的所有帐号的数据,这些数据可以以帐号为索引存储在数据库中,对于一个帐号,其数据是有限的、确定的,如果第一服务器判断出自己提供服务的帐号中有需要迁移到别的服务器上服务的目标帐号,则对目标帐号的所有数据进行迁移,第一服务器将目标帐号的数据发送到第二服务器中,在发送时可以将每个帐号的数据单独作为一个数据块发送到第二服务器中,也可以将所有需要发送到第二服务器中的多个帐号的数据作为一个数据块发送到第二服务器中,在数据发送完成之后可以将第一服务器中的目标帐号数据删除,不再保存。如果第一服务器和第二服务器是通过网络连接的,则第一服务器通过网络将目标帐号的数据发送到第二服务器,在数据发送时可以通过TCP协议进行数据传输。
在步骤S208提供的技术方案中,在将目标帐号的数据迁移到第二服务器中之后,第一服务器向控制设备发送信息,提示发送迁移信息完成。
作为一种可选的实施例,在第一服务器将第一服务器上目标帐号的数据迁移到第二服务器的过程中,第一服务器接收到目标帐号的服务请求;第一服务器将服务请求重定向到第二服务器,其中,第二服务器用于响应服务请求向目标帐号提供服务。如果目标帐号在迁移到第二服务器的过程中继续向第一服务器发送服务请求,则第一服务器接收到服务请求之后将服务请求重新定向到第二服务器中,由第二服务器为目标帐号提供服务。这样,可以有效防止目标帐号的数据迁移时服务请求得不到响应而影响用户操作和游戏过程的流畅,提高了用户体验。
作为一种可选的实施例,第一服务器判断第一服务器当前服务的帐号中是否存在目标帐号包括:第一服务器判断与当前服务的帐号对应的号码中是否存在位于第一号码集合之外的目标号码,其中,与第一号码集合内的号码对应的帐号被配置为由第一服务器提供服务;在判断出存在位于第一号码集合之外的目标号码的情况下,第一服务器判断出当前服务的帐号中存在目标帐号,并将与目标号码对应的帐号确定为目标帐号。与当前服务的帐号对应的号码可以是游戏玩家帐号的id号码,在进行服务配置时,第一号码集合的帐号由第一服务器提供服务,第二号码集合的帐号由第二服务器提供服务,因此,第一服务器判断当前服务的帐号中是否有第一号码集合以外的目标号码,如果有,则说明当前服务的帐号中存在需要转移到别的服务器中的帐号,与目标号码对应的帐号确定为目标帐号。通常情况下,第一号码集合可以是多个号码的集合,第一号码集合中的多个号码可以是不连续的号码。
在一种应用场景中,以一种简单的哈希算法为例,当前服务器数量为3,对游戏玩家帐号的id号码进行除三取余计算,由第一服务器为余数为1的id号码所对应的游戏玩家帐号提供服务,由第二服务器为为余数为2的id号码所对应的游戏玩家帐号提供服务,由第三服务器为为余数为0的id号码所对应的游戏玩家帐号提供服务;在当前服务器数量发生变化,增加到4台时,控制设备检测到服务器数量发生变化,将变化信息发送到每个服务器,每个服务器通过计算得到由自身提供服务的游戏玩家的id号码所对应的帐号,例如,对游戏玩家帐号的id号码进行除四取余计算,由第一服务器为余数为1的id号码所对应的游戏玩家帐号提供服务,由第二服务器为为余数为2的id号码所对应的游戏玩家帐号提供服务,由第三服务器为为余数为3的id号码所对应的游戏玩家帐号提供服务,由第四服务器为为余数为0的id号码所对应的游戏玩家帐号提供服务,这样,在原来的第一服务器、第二服务器、第三服务器中都会存在不继续由原服务器提供服务的帐号,原服务器将对应的帐号数据迁移到新的对应服务器中去。
作为一种可选的实施例,在第一服务器判断与当前服务的帐号对应的号码中是否存在位于第一号码集合之外的目标号码之前,第一服务器获取对当前服务的帐号进行哈希操作所得到的号码,其中,所得到的号码为与当前服务的帐号对应的号码。对当前服务的帐号进行哈希操作可以是通过一致性哈希算法对当前服务的帐号进行操作,在确定第一服务器提供服务的第一号码集合时,可以通过对当前服务的帐号进行一致性哈希操作,得到一部分号码,这部分号码所对应的帐号就是分配给第一服务器当前服务的帐号。
作为一种可选的实施例,第一服务器将第一服务器上目标帐号的数据迁移到第二服务器包括:第一服务器获取与目标帐号所位于的第二号码集合所对应的第二服务器的地址;第一服务器根据第二服务器的地址将第一服务器上目标帐号的数据迁移到第二服务器。第二号码集合所对应的目标帐号被分配给第二服务器提供服务,第一服务器将第一服务器中所有目标帐号的数据迁移到第二服务器中。第一服务器通过主动检索到目标帐号,然后将目标帐号的数据迁移到第二服务器中,能够提高数据迁移效率。
图3是根据本发明实施例的一种可选的数据迁移方法的流程图,如图3所示,该方法可以包括以下步骤:
步骤S302,控制设备检测到服务器集群中的服务器数量发生变更,其中,服务器集群为有状态的分布式服务器集群。
步骤S304,控制设备向服务器集群中的所有服务器发送状态变更信息,其中,状态变更信息用于表示服务器集群中的服务器数量发生变更。
步骤S306,在控制设备接收到所有服务器中的目标服务器发送的迁移完成信息之后,控制设备更新服务器集群的集群状态信息,其中,迁移完成信息用于表示目标服务器完成对数据的迁移,目标服务器中为所有服务器中需要进行数据迁移的服务器。
通过上述步骤S302至步骤S306,控制设备检测到服务器集群中的服务器数量发生变更之后,向服务器集群中的所有服务器发送状态变更信息,以提示服务器当前有新增加或减少的服务器,服务器响应于状态变更信息对自身提供服务的帐号信息进行迁移,在迁移完成之后,控制设备更新服务器集群的集群状态信息,可以解决由于现有技术的分布式集群服务发现组件功能单一导致的不利于数据迁移的技术问题,进而达到自动完成用户数据迁移的技术效果。
在步骤S302提供的技术方案中,控制设备可以实时检测服务器集群中的服务器数量,服务器数量的变更包括服务器数量增加或减少,例如,可以通过检测心跳包的方式检测,也可以通过别的方式检测,本发明实施例的服务器集群是有状态的分布式服务器集群。
在步骤S304提供的技术方案中,控制设备在检测到服务器集群中的服务器数量发生变化后,向服务器集群中的所有服务器发送状态变更信息,以提示服务器集群中的所有服务器,服务器的数量发生变更。服务器根据控制设备发送的状态变更信息对每个服务器中提供服务的目标帐号进行数据转移,具体数据转移的方式如S202至步骤S208及其具体实施方式中所述,在此不再赘述。
在步骤S306提供的技术方案中,服务器在进行完数据迁移工作之后,向控制设备发送迁移完成信息,每个服务器在完成自身的数据迁移之后,会向控制设备发送完成信息,在所有的服务器完成数据迁移工作之后,控制设备更新服务器集群的集群状态信息,控制设备重新对服务器集群中的服务器数量进行更新。目标服务器是所有服务器中需要进行数据迁移目标服务器可以是所有服务器,也可以是部分服务器。
作为一种可选的实施例,在控制设备更新服务器集群的集群状态信息之后,控制设备将更新后的集群状态信息同步到服务设备,其中,服务设备用于根据更新后的集群状态信息将服务请求发送到服务器集群中对应的服务器。服务设备可以是服务消费者,服务消费者可以根据更新后的集群状态信息将服务请求发送到服务器集群中对应的服务器中。
作为一种可选的实施例,控制设备检测到服务器集群中的服务器数量发生变更包括:控制设备通过心跳包检测到服务器集群中的服务器数量发生变更,其中,心跳包用于指示服务器集群中增加或减少的服务器;或者控制设备通过获取的配置信息检测到服务器集群中的服务器数量发生变更,其中,配置信息用于表示服务器集群中增加或减少的服务器。控制设备既可以通过心跳包检测服务器集群中服务器数量发生变化,又可以通过获取到的配置信息检测到服务器集群中的服务器数量发生变化。
作为一种可选的实施例,控制设备通过心跳包检测到服务器集群中的服务器数量发生变更包括:控制设备通过心跳包检测到服务器集群中的第一服务器出现故障;在控制设备通过心跳包检测到服务器集群中的服务器数量发生变更之后,控制设备更新服务器集群的集群状态信息。如果控制设备通过心跳包检测到服务器集群中的第一服务器发生故障,则控制设备可以更新服务器集群中的集群状态信息。
本发明实施例的技术方案可以应用于有状态的分布式服务器集群,提供一种通用的服务发现方法,让服务消费者可以正确地找到对应的服务提供者,当服务提供者集群需要进行扩容,缩容或者集群中某个节点出现问题时,该服务发现组件可以自动进行处理,应对相应的变化。
服务发现控制中心与服务提供者集群中的每个节点相连,并通过心跳包来获知集群中各个节点的状态,当服务提供者集群中需要增加或者减少节点时(对应于扩容和缩容),控制节点会将该信息通知给集群中的所有节点,每个节点会检查自身所服务的用户,查找出当前不由自己服务的用户集,并将该用户集中的用户迁徙到当前所属的服务节点中去,在迁徙完成后,节点会通知控制中心迁徙完成,等到所有的服务提供节点迁徙完成后,控制中心会将会更新服务消费端的服务提供者集群信息。当服务提供者集群中某一个节点出现问题时,控制节点会根据心跳包检测实时地更新服务消费端的服务提供者集群信息,由服务消费端进行二次选择集群中的某个节点继续提供服务,当该故障节点被重新启用后,控制中心会通过上述同样的方式,对服务提供集群中的节点数据进行自动迁徙后,再更新服务消费端的服务提供者集群信息。
本发明还提供了一种优选实施例,图4是根据本发明实施例的一种有状态情况下的分布式服务集群服务的示意图,如图4所示,分布式服务集群中的节点会定时地上报消息给组件控制中心,一个服务节点对应一台服务器,而服务消费者会定时地去组件控制中心拉取最新的服务集群信息,当服务消费者需要服务时,则根据服务集群信息,通过一致性hash算法来选择其中一个服务节点为其提供服务,例如,分布式集群中有3个服务节点,这三个节点可能分布于不同的机器上,服务消费者通过从控制中心获得信息,通过一致性hash算法,选择节点3为其提供服务。具体到游戏服务器来说,一个用户会被分配定位到一个服务器节点上去,而该用户的数据则在节点中保存,所以该节点为一个有状态的服务节点。所有的用户也就被一致性hash算法分成了若干个号码集合,每个号码集合由一个节点提供服务。第一号码集合中的所有号码由第一服务器提供服务,第二号码集合中的所有号码由第二服务器提供服务,在每个号码集合中可能有连续的号码,也可能全是分散的号码。
例如,在第一时刻,每个用户账号都有对应的服务器节点,所有用户帐号分配到各自的服务器节点上,由对应的服务器为该用户提供服务,在第二时刻,当出现服务器数量变化时,通过一致性hash算法根据用户id计算所有用户账号对应的服务器节点,需要重新将所有用户帐号分配到对应的服务器节点,其中,有些用户对应的服务器发生变化,有些用户对应的服务器不发生变化,对于不变化服务器的用户数据,无需进行操作,对于需要变化服务器的用户数据,由当前的服务器将该用户数据迁移到对应的服务器中。
通过一致性hash算法计算得到的服务器节点,然后将用户数据迁移到对应的服务器中,能够最大程度的减少需要迁移的数据的量,在服务器数量发生变化时,减轻和平衡服务器压力。
在上述的情况下,当用户数量发生大规模的变化或者其他原因下,服务集群中服务节点个数变化,本发明实施例提供了一种节点变化数据迁移方法,图5是根据本发明实施例的一种节点变化数据迁移方法的流程图,如图5所示,首先,控制中心会通过心跳包或者用户主动配置更新等方式感知到集群中的节点数目发生了变更,比如当节点增加或者较少的时候,可以通过用户改动配置来标记某个节点被增加或者被下架,并重新加载控制中心的配置信息。
然后,控制中心会判断该集群的属性,如果该集群属于无状态的集群时,则可以直接更新该集群的状态信息,然后当服务消费端定时拉取信息时候,在服务消费端更新该服务集群的信息;
但是如果该服务集群是有状态的集群时,则需要首先控制中心该当前的状态变更通知给该集群中的所有节点;
当集群中的所有节点获知到最新的集群状态信息后,会进行自检过程,在自检过程中,节点会按照服务消费端采用的一致性hash算法,来计算当前所服务的号段的用户,是不是应该被该节点所服务,并确认出一个外部服务用户的用户集合,并对该用户集合的所有用户进行用户数据迁移操作,在迁移过程中,如果有外部用户集合中的用户服务请求出现,则将该请求重定向到该用户应该被服务的节点中去,当迁移操作完成之后,节点向控制中心发送一个迁移完成请求。
当控制中心接到所有服务集群中的节点的迁移完成请求之后,控制中心会更新该集群的集群状态信息,而之后,当服务消费端定时来拉取集群信息的时候,将该集群信息同步给服务消费端,在此之后,服务消费端就可以利用最新的服务集群信息选择服务节点。
当集群中的某一个节点出现故障时,本发明实施例的数据迁移方法将服务发现组件采用如下过程进行处理,图6是根据本发明实施例的一种节点故障处理方法的流程图,如图6所示,该方法包括以下步骤:
首先,控制中心将根据心跳包检测出某一节点出现故障,然后控制中心将会直接更新该服务集群的信息,以便服务消费端可以迅速地拉取到该信息。当服务消费端获知该信息后,对于该节点的请求将会重新hash到一个可用的节点上去,相当于将该节点上的用户被分散到集群中的其他节点上去。当后台人员手动介入,修复了该故障节点后,就可以将该故障节点重新上架,然后该节点就会重新使用上述的节点变化数据迁移过程,将该节点恢复到服务集群中去。
本发明实施例的服务发现组件可以应用于全区全服的游戏和分区分服游戏等多个项目的后台服务器中,经历过多次数十万人规模的测试,测试结果表明,该服务发现组件可以很好地支持服务器集群的扩容,缩容操作,并当集群中的节点出现故障时,可以迅速地将玩家转移到其他服务节点中去,并可以做到对用户的无感知,用户体验很好。需要说明的是,本发明实施例的技术方案针对于有状态服务器的数据迁移过程对于服务消费端是透明的,即服务消费端并不需要关心后端的数据迁移是否发生,而仅仅需要根据当前所获得的服务集群信息,进行路由选择即可,这样可以使得后端服务系统内部的变化对于用户而言是无感知的,用户的体验效果也就可以达到最好。
本发明实施例的技术方案可以同时兼容有状态的分布式服务集群和无状态的分布式服务集群,为其提供服务发现功能,并可以做到对分布式服务集群中的节点出现变化的时候,自动对有状态服务集群内节点的用户数据进行自动迁徙,并更新服务消费者的服务集群信息以便其快速选择路由,一切对用户操作做到无感知,提高了用户体验。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述数据迁移方法的数据迁移装置。图7是根据本发明实施例的一种可选的数据迁移装置的示意图,如图7所示,该装置可以包括:
第一接收单元10,用于通过第一服务器接收控制设备发送的状态变更信息,其中,所述状态变更信息用于表示服务器集群中的服务器数量发生变更,所述服务器集群为有状态的分布式服务器集群,所述服务器集群包括所述第一服务器。
判断单元20,用于通过所述第一服务器判断所述第一服务器当前服务的帐号中是否存在目标帐号,其中,所述目标帐号被配置为由所述服务器集群中的第二服务器提供服务。
迁移单元30,用于在判断出所述第一服务器当前服务的帐号中存在所述目标帐号的情况下,通过所述第一服务器将所述第一服务器上所述目标帐号的数据迁移到所述第二服务器。
发送单元40,用于在完成将所述目标帐号的数据迁移到所述第二服务器之后,通过所述第一服务器向所述控制设备发送迁移完成信息,其中,所述迁移完成信息用于表示所述第一服务器完成对所述目标帐号的数据的迁移。
需要说明的是,该实施例中的第一接收单元10可以用于执行本申请实施例1中的步骤S202,该实施例中的判断单元20可以用于执行本申请实施例1中的步骤S204,该实施例中的迁移单元30可以用于执行本申请实施例1中的步骤S206,该实施例中的发送单元40可以用于执行本申请实施例1中的步骤S208。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,可以解决由于现有技术的分布式集群服务发现组件功能单一导致的不利于数据迁移的技术问题,进而达到自动完成用户数据迁移的技术效果。
可选地,该装置还包括:第二接收单元,用于在第一服务器将第一服务器上目标帐号的数据迁移到第二服务器的过程中,通过第一服务器接收到目标帐号的服务请求;定向单元,用于通过第一服务器将服务请求重定向到第二服务器,其中,第二服务器用于响应服务请求向目标帐号提供服务。
可选地,判断单元20包括:判断模块,用于通过第一服务器判断与当前服务的帐号对应的号码中是否存在位于第一号码集合之外的目标号码,其中,与第一号码集合内的号码对应的帐号被配置为由第一服务器提供服务;确定模块,用于在判断出存在位于第一号码集合之外的目标号码的情况下,第一服务器判断出当前服务的帐号中存在目标帐号,并将与目标号码对应的帐号确定为目标帐号。
可选地,该装置还包括:获取单元,用于在第一服务器判断与当前服务的帐号对应的号码中是否存在位于第一号码集合之外的目标号码之前,通过第一服务器获取对当前服务的帐号进行哈希操作所得到的号码,其中,所得到的号码为与当前服务的帐号对应的号码。
可选地,迁移单元30用于:通过第一服务器获取与目标帐号所位于的第二号码集合所对应的第二服务器的地址;通过第一服务器根据第二服务器的地址将第一服务器上目标帐号的数据迁移到第二服务器。
根据本发明实施例,还提供了一种用于实施上述数据迁移方法的数据迁移装置。图8是根据本发明实施例的一种可选的数据迁移装置的示意图,如图8所示,该装置可以包括:
检测单元50,用于通过控制设备检测到服务器集群中的服务器数量发生变更,其中,服务器集群为有状态的分布式服务器集群;
发送单元60,用于通过控制设备向服务器集群中的所有服务器发送状态变更信息,其中,状态变更信息用于表示服务器集群中的服务器数量发生变更;
更新单元70,用于在控制设备接收到所有服务器中的目标服务器发送的迁移完成信息之后,通过控制设备更新服务器集群的集群状态信息,其中,迁移完成信息用于表示目标服务器完成对数据的迁移,目标服务器中为所有服务器中需要进行数据迁移的服务器。
需要说明的是,该实施例中的检测单元50可以用于执行本申请实施例1中的步骤S302,该实施例中的发送单元60可以用于执行本申请实施例1中的步骤S304,该实施例中的更新单元70可以用于执行本申请实施例1中的步骤S306。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,可以解决了由于现有技术的分布式集群服务发现组件功能单一导致的不利于数据迁移的技术问题,进而达到自动完成用户数据迁移的技术效果。
可选地,该装置还包括:同步单元,用于在控制设备更新服务器集群的集群状态信息之后,通过控制设备将更新后的集群状态信息同步到服务设备,其中,服务设备用于根据更新后的集群状态信息将服务请求发送到服务器集群中对应的服务器。
可选地,检测单元用于:通过控制设备通过心跳包检测到服务器集群中的服务器数量发生变更,其中,心跳包用于指示服务器集群中增加或减少的服务器;或者通过控制设备通过获取的配置信息检测到服务器集群中的服务器数量发生变更,其中,配置信息用于表示服务器集群中增加或减少的服务器。
可选地,检测单元用于通过控制设备通过心跳包检测到服务器集群中的第一服务器出现故障;装置还包括:更新单元,用于在控制设备通过心跳包检测到服务器集群中的服务器数量发生变更之后,通过控制设备更新服务器集群的集群状态信息。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
实施例3
根据本发明实施例,还提供了一种用于实施上述数据迁移方法的服务器或终端。
图9是根据本发明实施例的一种终端的结构框图,如图9所示,该终端可以包括:一个或多个(图中仅示出一个)处理器201、存储器203、以及传输装置205(如上述实施例中的发送装置),如图9所示,该终端还可以包括输入输出设备207。
其中,存储器203可用于存储软件程序以及模块,如本发明实施例中的数据迁移方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据迁移方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器203用于存储应用程序。
处理器201可以通过传输装置205调用存储器203存储的应用程序,以执行下述步骤:第一服务器接收控制设备发送的状态变更信息,其中,状态变更信息用于表示服务器集群中的服务器数量发生变更,服务器集群为有状态的分布式服务器集群,服务器集群包括第一服务器;第一服务器判断第一服务器当前服务的帐号中是否存在目标帐号,其中,目标帐号被配置为由服务器集群中的第二服务器提供服务;在判断出第一服务器当前服务的帐号中存在目标帐号的情况下,第一服务器将第一服务器上目标帐号的数据迁移到第二服务器;在完成将目标帐号的数据迁移到第二服务器之后,第一服务器向控制设备发送迁移完成信息,其中,迁移完成信息用于表示第一服务器完成对目标帐号的数据的迁移。
处理器201还用于执行下述步骤:第一服务器接收到目标帐号的服务请求;第一服务器将服务请求重定向到第二服务器,其中,第二服务器用于响应服务请求向目标帐号提供服务。
处理器201还用于执行下述步骤:第一服务器判断与当前服务的帐号对应的号码中是否存在位于第一号码集合之外的目标号码,其中,与第一号码集合内的号码对应的帐号被配置为由第一服务器提供服务;在判断出存在位于第一号码集合之外的目标号码的情况下,第一服务器判断出当前服务的帐号中存在目标帐号,并将与目标号码对应的帐号确定为目标帐号。
处理器201还用于执行下述步骤:在第一服务器判断与当前服务的帐号对应的号码中是否存在位于第一号码集合之外的目标号码之前,第一服务器获取对当前服务的帐号进行哈希操作所得到的号码,其中,所得到的号码为与当前服务的帐号对应的号码。
处理器201还用于执行下述步骤:第一服务器将第一服务器上目标帐号的数据迁移到第二服务器包括:第一服务器获取与目标帐号所位于的第二号码集合所对应的第二服务器的地址;第一服务器根据第二服务器的地址将第一服务器上目标帐号的数据迁移到第二服务器。
采用本发明实施例,通过第一服务器接收控制设备发送的状态变更信息,判断第一服务器当前服务的帐号中是否存在目标帐号,如果存在,则将第一服务器上目标帐号的数据迁移到第二服务器,并在迁移完成之后向控制设备发送迁移完成信息,可以解决由于现有技术的分布式集群服务发现组件功能单一导致的不利于数据迁移的技术问题,进而达到自动完成用户数据迁移的技术效果。
处理器201可以通过传输装置205调用存储器203存储的应用程序,以执行下述步骤:控制设备检测到服务器集群中的服务器数量发生变更,其中,服务器集群为有状态的分布式服务器集群;控制设备向服务器集群中的所有服务器发送状态变更信息,其中,状态变更信息用于表示服务器集群中的服务器数量发生变更;在控制设备接收到所有服务器中的目标服务器发送的迁移完成信息之后,控制设备更新服务器集群的集群状态信息,其中,迁移完成信息用于表示目标服务器完成对数据的迁移,目标服务器中为所有服务器中需要进行数据迁移的服务器。
处理器201还用于执行下述步骤:在控制设备更新服务器集群的集群状态信息之后,控制设备将更新后的集群状态信息同步到服务设备,其中,服务设备用于根据更新后的集群状态信息将服务请求发送到服务器集群中对应的服务器。
处理器201还用于执行下述步骤:控制设备通过心跳包检测到服务器集群中的服务器数量发生变更,其中,心跳包用于指示服务器集群中增加或减少的服务器;或者控制设备通过获取的配置信息检测到服务器集群中的服务器数量发生变更,其中,配置信息用于表示服务器集群中增加或减少的服务器。
处理器201还用于执行下述步骤:控制设备通过心跳包检测到服务器集群中的服务器数量发生变更包括:控制设备通过心跳包检测到服务器集群中的第一服务器出现故障;在控制设备通过心跳包检测到服务器集群中的服务器数量发生变更之后,控制设备更新服务器集群的集群状态信息
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图9所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图9其并不对上述电子装置的结构造成限定。例如,终端还可包括比图9中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图9所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行数据迁移方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,第一服务器接收控制设备发送的状态变更信息,其中,状态变更信息用于表示服务器集群中的服务器数量发生变更,服务器集群为有状态的分布式服务器集群,服务器集群包括第一服务器;
S2,第一服务器判断第一服务器当前服务的帐号中是否存在目标帐号,其中,目标帐号被配置为由服务器集群中的第二服务器提供服务;
S3,在判断出第一服务器当前服务的帐号中存在目标帐号的情况下,第一服务器将第一服务器上目标帐号的数据迁移到第二服务器;
S4,在完成将目标帐号的数据迁移到第二服务器之后,第一服务器向控制设备发送迁移完成信息,其中,迁移完成信息用于表示第一服务器完成对目标帐号的数据的迁移。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:第一服务器接收到目标帐号的服务请求;第一服务器将服务请求重定向到第二服务器,其中,第二服务器用于响应服务请求向目标帐号提供服务。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:第一服务器判断与当前服务的帐号对应的号码中是否存在位于第一号码集合之外的目标号码,其中,与第一号码集合内的号码对应的帐号被配置为由第一服务器提供服务;在判断出存在位于第一号码集合之外的目标号码的情况下,第一服务器判断出当前服务的帐号中存在目标帐号,并将与目标号码对应的帐号确定为目标帐号。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:第一服务器获取对当前服务的帐号进行哈希操作所得到的号码,其中,所得到的号码为与当前服务的帐号对应的号码。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:第一服务器获取与目标帐号所位于的第二号码集合所对应的第二服务器的地址;第一服务器根据第二服务器的地址将第一服务器上目标帐号的数据迁移到第二服务器。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行数据迁移方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,控制设备检测到服务器集群中的服务器数量发生变更,其中,服务器集群为有状态的分布式服务器集群;
S2,控制设备向服务器集群中的所有服务器发送状态变更信息,其中,状态变更信息用于表示服务器集群中的服务器数量发生变更;
S3,在控制设备接收到所有服务器中的目标服务器发送的迁移完成信息之后,控制设备更新服务器集群的集群状态信息,其中,迁移完成信息用于表示目标服务器完成对数据的迁移,目标服务器中为所有服务器中需要进行数据迁移的服务器。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在控制设备更新服务器集群的集群状态信息之后,控制设备将更新后的集群状态信息同步到服务设备,其中,服务设备用于根据更新后的集群状态信息将服务请求发送到服务器集群中对应的服务器。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:控制设备通过心跳包检测到服务器集群中的服务器数量发生变更,其中,心跳包用于指示服务器集群中增加或减少的服务器;或者控制设备通过获取的配置信息检测到服务器集群中的服务器数量发生变更,其中,配置信息用于表示服务器集群中增加或减少的服务器。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:控制设备通过心跳包检测到服务器集群中的第一服务器出现故障;在控制设备通过心跳包检测到服务器集群中的服务器数量发生变更之后,方法还包括:控制设备更新服务器集群的集群状态信息。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种数据迁移方法,其特征在于,包括:
第一服务器接收控制设备发送的状态变更信息,其中,所述状态变更信息用于表示服务器集群中的服务器数量发生变更,所述服务器集群为有状态的分布式服务器集群,所述服务器集群包括所述第一服务器;
所述第一服务器判断与当前服务的帐号对应的号码中是否存在位于第一号码集合之外的目标号码,其中,与所述第一号码集合内的号码对应的帐号被配置为由所述第一服务器提供服务;
在判断出存在位于所述第一号码集合之外的所述目标号码的情况下,所述第一服务器判断出所述当前服务的帐号中存在目标帐号,并将与所述目标号码对应的帐号确定为所述目标帐号,其中,所述目标帐号被配置为由所述服务器集群中的第二服务器提供服务;
在判断出所述第一服务器当前服务的帐号中存在所述目标帐号的情况下,所述第一服务器将所述第一服务器上所述目标帐号的数据迁移到所述第二服务器;
在完成将所述目标帐号的数据迁移到所述第二服务器之后,所述第一服务器向所述控制设备发送迁移完成信息,其中,所述迁移完成信息用于表示所述第一服务器完成对所述目标帐号的数据的迁移。
2.根据权利要求1所述的方法,其特征在于,在所述第一服务器将所述第一服务器上所述目标帐号的数据迁移到所述第二服务器的过程中,所述方法还包括:
所述第一服务器接收到所述目标帐号的服务请求;
所述第一服务器将所述服务请求重定向到所述第二服务器,其中,所述第二服务器用于响应所述服务请求向所述目标帐号提供服务。
3.根据权利要求2所述的方法,其特征在于,在所述第一服务器判断与所述当前服务的帐号对应的号码中是否存在位于第一号码集合之外的目标号码之前,所述方法还包括:
所述第一服务器获取对所述当前服务的帐号进行哈希操作所得到的号码,其中,所述所得到的号码为与所述当前服务的帐号对应的号码。
4.根据权利要求1所述的方法,其特征在于,所述第一服务器将所述第一服务器上所述目标帐号的数据迁移到所述第二服务器包括:
所述第一服务器获取与所述目标帐号所位于的第二号码集合所对应的所述第二服务器的地址;
所述第一服务器根据所述第二服务器的地址将所述第一服务器上所述目标帐号的数据迁移到所述第二服务器。
5.一种数据迁移方法,其特征在于,包括:
控制设备检测到服务器集群中的服务器数量发生变更,其中,所述服务器集群为有状态的分布式服务器集群;
所述控制设备向所述服务器集群中的所有服务器发送状态变更信息,其中,所述状态变更信息用于表示所述服务器集群中的服务器数量发生变更;
所述所有服务器中的第一服务器判断与当前服务的帐号对应的号码中是否存在位于第一号码集合之外的目标号码,其中,与所述第一号码集合内的号码对应的帐号被配置为由所述第一服务器提供服务;
在判断出存在位于所述第一号码集合之外的所述目标号码的情况下,所述第一服务器判断出所述当前服务的帐号中存在目标帐号,并将与所述目标号码对应的帐号确定为所述目标帐号,所述目标帐号被配置为由所述所有服务器中的第二服务器提供服务,通过所述第一服务器将所述目标帐号的数据迁移到所述第二服务器;
在所述控制设备接收到所述第一服务器发送的迁移完成信息之后,所述控制设备更新所述服务器集群的集群状态信息,其中,所述迁移完成信息用于表示所述第一服务器完成对数据的迁移。
6.根据权利要求5所述的方法,其特征在于,在所述控制设备更新所述服务器集群的集群状态信息之后,所述方法还包括:
所述控制设备将更新后的所述集群状态信息同步到服务设备,其中,所述服务设备用于根据所述更新后的所述集群状态信息将服务请求发送到所述服务器集群中对应的服务器。
7.根据权利要求5所述的方法,其特征在于,所述控制设备检测到服务器集群中的服务器数量发生变更包括:
所述控制设备通过心跳包检测到所述服务器集群中的服务器数量发生变更,其中,所述心跳包用于指示所述服务器集群中增加或减少的服务器;或者所述控制设备通过获取的配置信息检测到所述服务器集群中的服务器数量发生变更,其中,所述配置信息用于表示所述服务器集群中增加或减少的服务器。
8.根据权利要求7所述的方法,其特征在于,所述控制设备通过心跳包检测到所述服务器集群中的服务器数量发生变更包括:所述控制设备通过心跳包检测到所述服务器集群中的第一服务器出现故障;
在所述控制设备通过心跳包检测到所述服务器集群中的服务器数量发生变更之后,所述方法还包括:所述控制设备更新所述服务器集群的集群状态信息。
9.一种数据迁移装置,其特征在于,包括:
第一接收单元,用于通过第一服务器接收控制设备发送的状态变更信息,其中,所述状态变更信息用于表示服务器集群中的服务器数量发生变更,所述服务器集群为有状态的分布式服务器集群,所述服务器集群包括所述第一服务器;
判断单元,包括判断模块和确定模块,所述判断模块,用于通过所述第一服务器判断与当前服务的帐号对应的号码中是否存在位于第一号码集合之外的目标号码,其中,与所述第一号码集合内的号码对应的帐号被配置为由所述第一服务器提供服务;
所述确定模块,用于在判断出存在位于所述第一号码集合之外的所述目标号码的情况下,所述第一服务器判断出所述当前服务的帐号中存在目标帐号,并将与所述目标号码对应的帐号确定为所述目标帐号,其中,所述目标帐号被配置为由所述服务器集群中的第二服务器提供服务;
迁移单元,用于在判断出所述第一服务器当前服务的帐号中存在所述目标帐号的情况下,通过所述第一服务器将所述第一服务器上所述目标帐号的数据迁移到所述第二服务器;
发送单元,用于在完成将所述目标帐号的数据迁移到所述第二服务器之后,通过所述第一服务器向所述控制设备发送迁移完成信息,其中,所述迁移完成信息用于表示所述第一服务器完成对所述目标帐号的数据的迁移。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二接收单元,用于在所述第一服务器将所述第一服务器上所述目标帐号的数据迁移到所述第二服务器的过程中,通过所述第一服务器接收到所述目标帐号的服务请求;
定向单元,用于通过所述第一服务器将所述服务请求重定向到所述第二服务器,其中,所述第二服务器用于响应所述服务请求向所述目标帐号提供服务。
11.一种数据迁移装置,其特征在于,包括:
检测单元,用于通过控制设备检测到服务器集群中的服务器数量发生变更,其中,所述服务器集群为有状态的分布式服务器集群;
发送单元,用于通过所述控制设备向所述服务器集群中的所有服务器发送状态变更信息,其中,所述状态变更信息用于表示所述服务器集群中的服务器数量发生变更;
判断单元,包括判断模块和确定模块,所述判断模块用于通过所述所有服务器中的第一服务器判断与当前服务的帐号对应的号码中是否存在位于第一号码集合之外的目标号码,其中,与所述第一号码集合内的号码对应的帐号被配置为由所述第一服务器提供服务;
所述确定模块用于在判断出存在位于所述第一号码集合之外的所述目标号码的情况下,所述第一服务器判断出所述当前服务的帐号中存在目标帐号,并将与所述目标号码对应的帐号确定为所述目标帐号,所述目标帐号被配置为由所述所有服务器中的第二服务器提供服务;
迁移单元,用于通过所述第一服务器将所述目标帐号的数据迁移到所述第二服务器;
更新单元,用于在所述控制设备接收到所述第一服务器发送的迁移完成信息之后,通过所述控制设备更新所述服务器集群的集群状态信息,其中,所述迁移完成信息用于表示所述第一服务器完成对数据的迁移。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
同步单元,用于在所述控制设备更新所述服务器集群的集群状态信息之后,通过所述控制设备将更新后的所述集群状态信息同步到服务设备,其中,所述服务设备用于根据所述更新后的所述集群状态信息将服务请求发送到所述服务器集群中对应的服务器。
13.根据权利要求11所述的装置,其特征在于,所述检测单元用于:
通过所述控制设备通过心跳包检测到所述服务器集群中的服务器数量发生变更,其中,所述心跳包用于指示所述服务器集群中增加或减少的服务器;或者通过所述控制设备通过获取的配置信息检测到所述服务器集群中的服务器数量发生变更,其中,所述配置信息用于表示所述服务器集群中增加或减少的服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710327644.5A CN107105049B (zh) | 2017-05-10 | 2017-05-10 | 数据迁移方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710327644.5A CN107105049B (zh) | 2017-05-10 | 2017-05-10 | 数据迁移方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107105049A CN107105049A (zh) | 2017-08-29 |
CN107105049B true CN107105049B (zh) | 2018-10-02 |
Family
ID=59670186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710327644.5A Active CN107105049B (zh) | 2017-05-10 | 2017-05-10 | 数据迁移方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107105049B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019529B (zh) * | 2017-12-29 | 2024-01-30 | 华为技术有限公司 | 数据节点的管理方法、系统以及相关设备 |
CN108282527B (zh) * | 2018-01-22 | 2019-07-09 | 北京百度网讯科技有限公司 | 生成服务实例的分布式系统和方法 |
CN114095759B (zh) * | 2020-08-03 | 2024-01-12 | 海能达通信股份有限公司 | 一种流媒体重定向方法及相关装置 |
CN114615263A (zh) * | 2022-02-10 | 2022-06-10 | 深圳市小满科技有限公司 | 集群在线迁移方法、装置、设备及存储介质 |
CN115277114B (zh) * | 2022-07-08 | 2023-07-21 | 北京城市网邻信息技术有限公司 | 分布式锁处理方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105208435A (zh) * | 2014-06-27 | 2015-12-30 | 中兴通讯股份有限公司 | Iptv系统中的数据处理方法及网元设备 |
CN105760431A (zh) * | 2016-01-29 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种文件块的迁移方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296176B (zh) * | 2007-04-25 | 2010-12-22 | 阿里巴巴集团控股有限公司 | 一种基于群集的数据处理方法和装置 |
CN102769582B (zh) * | 2012-08-02 | 2015-06-03 | 深圳中兴网信科技有限公司 | 逻辑服务器、即时通信系统和即时通信方法 |
-
2017
- 2017-05-10 CN CN201710327644.5A patent/CN107105049B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105208435A (zh) * | 2014-06-27 | 2015-12-30 | 中兴通讯股份有限公司 | Iptv系统中的数据处理方法及网元设备 |
CN105760431A (zh) * | 2016-01-29 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种文件块的迁移方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107105049A (zh) | 2017-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107105049B (zh) | 数据迁移方法和装置 | |
CN105915650B (zh) | 负载均衡方法和装置 | |
CN104243337B (zh) | 一种跨集群负载均衡的方法及装置 | |
CN108040108A (zh) | 通信切换方法、装置、协调服务器及可读存储介质 | |
CN106657330B (zh) | 用户数据迁移方法和用户数据备份方法、装置及系统 | |
CN107925681A (zh) | 用于分布式软件定义网络分组核心系统中的负载平衡的系统和方法 | |
CN109076357A (zh) | 移动边缘系统中迁移应用方法、相关设备及系统 | |
CN112653577A (zh) | 网元管理方法、装置及存储介质 | |
CN105897827A (zh) | 服务器节点、局域网服务器集群及其实现方法 | |
CN105578527B (zh) | 实现云ac负载均衡的方法、装置及系统 | |
CN108696581A (zh) | 分布式信息的缓存方法、装置、计算机设备以及存储介质 | |
CN106453124A (zh) | 流量调度方法及装置 | |
US9894600B1 (en) | Providing adaptive network access | |
CN108696417A (zh) | 备份网络中的业务切换方法及装置 | |
CN108595670A (zh) | 一种数据存储方法、装置、计算机装置及存储介质 | |
CN108964949A (zh) | 虚拟机迁移方法、sdn控制器及计算机可读存储介质 | |
CN102387028A (zh) | 网络系统、管理服务器及oam试验管理方法 | |
CN105429799A (zh) | 服务器备份方法及装置 | |
US20240049102A1 (en) | State pooling for stateful re-homing in a disaggregated radio access network | |
CN107241387A (zh) | 数据请求的处理方法、装置及系统 | |
CN109088823A (zh) | 一种实现终端互联的方法及装置 | |
CN103546308A (zh) | 无线控制器组网的分配方法、装置以及系统 | |
CN103348722B (zh) | 用于提供通信连接弹性的系统和方法 | |
CN103581240B (zh) | 下载应用程序的方法、用户设备和应用服务器 | |
CN106911769A (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 |