一种用户迁移的方法和设备与流程

文档序号:12037935阅读:212来源:国知局
一种用户迁移的方法和设备与流程

本公开内容涉及网络通信技术领域,特别涉及一种用户迁移的方法和设备。



背景技术:

随着互联网技术的发展,互联网的用户越来越多,分布也越来越广泛。尤其大互联网公司,其用户大都分布在广泛的地理区域,而且越来越多的大型互联网公司将业务向全球发展,这使得其提供的网络服务面临着分布全球的海量用户。

随着互联网公司用户的增多,以及用户分布越来越广泛,互联网公司为了更好地满足用户需要,需要提供多个数据中心,多个数据中心同时对外提供网络服务,每个数据中心服务一部分用户,所有的数据中心服务的用户加起来是全局所有的用户。在互联网公司的多数据中心架构中,包括一个重要的部分就是用户与其归属数据中心的绑定关系。并且,随着互联网用户的不断增多,互联网公司的多数据中心架构往往会新增加数据中心,在新增数据中心后,还需要为新增的数据中心分配用户。

目前,在多数据中心架构中新增数据中心时,往往是停止全局所有数据中心停止对外服务,影响全局所有用户的使用。在暂停所有数据中心服务的过程中,生成新的数据中心与归属数据中心用户的绑定关系,并将归属于新增数据中心的用户迁移至新增数据中心。在人工确认归属于新增数据中心的用户迁移完成后,再启动包含新增数据中心在内的全局所有数据中心对外提供服务。

综上,目前在将用户迁移至新增数据中心时,需要停止全局所有数据中心对外服务,影响全局所有用户的使用。



技术实现要素:

本公开内容提供一种用户迁移的方法和设备,用以解决目前在将用户迁移至新增数据中心时,需要停止全局所有数据中心对外服务,影响全局所有用户的使用的问题。

基于上述问题,本公开内容实施例提供一种用户迁移的方法,包括:

在确定增加数据中心后,停止变更用户和数据中心的绑定关系,确定归属于新增数据中心的所有的目标用户;

根据所述绑定关系,将每个所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据向所述新增数据中心进行同步;

针对任意一个目标用户,在所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据向所述新增数据中心进行同步后,控制所述目标用户绑定的原数据中心停止写入所述目标用户的用户数据,将所述绑定关系中与所述目标用户绑定的原数据中心替换为所述新增数据中心。

由于本公开内容实施例在确定需要新增数据中心时,短暂停止变更用户和数据中心的绑定关系,确定出需要迁移至新增数据中心的目标用户。在确定出目标用户后,即可变更其他用户的于数据中心的绑定关系,不再影响其他用户。在将目标用户迁移至新增数据中心时,需要先将目标用户的全部用户数据同步至新增数据中心,并停止目标用户写入数据,实现将目标用户进行迁移。

可选的,在所述控制所述目标用户绑定的原数据中心停止写入所述目标用户的用户数据之后,所述将所述绑定关系中与所述目标用户绑定的原数据中心替换为所述新增数据中心之前,还包括:

确定与所述目标用户绑定的原数据中心中所述目标用户的所述全部用户数据同步完成。

由于本公开内容实施例在将目标用户迁移至新增数据中心之前,需要确定完成目标用户的全部用户数据向新增数据中心的同步,从而能够保证原数据中心和新增数据中心中目标用户的用户数据的一致性。

可选的,所述每个所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据包括增量数据和存量数据;

所述根据所述绑定关系,将每个所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据向所述新增数据中心进行同步,包括:

将每个所述目标用户绑定的原数据中心中的所述目标用户的所述增量数据和所述存量数据向所述新增数据中心进行同步;

其中,所述目标用户的所述增量数据为,在将所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据向所述新增数据中心进行同步之后新增加或发生变化的数据;所述目标用户的所述存量数据为,在将所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据向所述新增数据中心进行同步之前产生的数据。

由于本公开内容实施例将目标用户的全部用户数据分为增量数据和存量数据;并且将目标用户的全部增量数据和全部存量数据同步至新增数据中心,从而保证将目标用户在原数据中心产生的所有用户数据全部同步至新增数据中心。

可选的,所述将每个所述目标用户绑定的原数据中心中的所述目标用户的所述增量数据和所述存量数据向所述新增数据中心进行同步,包括:

针对任意一个目标用户,通过所述目标用户绑定的原数据中心和所述新增数据中心之间的增量数据同步程序,将所述目标用户在所述目标用户绑定的原数据中心中的所述增量数据向所述新增数据中心进行同步;

在将所述目标用户在所述目标用户绑定的原数据中心中的所述增量数据向所述新增数据中心进行同步之后,通过所述目标用户绑定的原数据中心和所述新增数据中心之间的存量数据同步程序,将所述目标用户在所述目标用户绑定的原数据中心中的所述存量数据向所述新增数据中心进行同步。

由于本公开内容实施例的增量数据通过原数据中心和新增数据中心之间的增量数据同步程序执行,存量数据通过原数据中心和新增数据中心之间的存 量数据同步程序执行,并且在目标用户的增量数据的同步开始之后,将目标用户的存量数据进行同步。本公开内容实施例提供了进行增量数据和存量数据同步的方法,从而有效保证目标用户的增量数据和存量数据全部同步至新增数据中心。

可选的,所述控制所述目标用户绑定的原数据中心停止写入所述目标用户的用户数据之前,还包括:

针对任意一个目标用户,确定所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据同步完成;

所述确定与所述目标用户绑定的原数据中心中所述目标用户的所述全部用户数据同步完成,包括:

若确定所述目标用户绑定的原数据中心中的所述目标用户的全部所述增量数据同步完成,则确定与所述目标用户绑定的原数据中心中所述目标用户的所述全部用户数据同步完成。

由于本公开内容实施例在确定目标用户在原数据中心中的全部存量数据同步至所述新增数据中心后,该原数据中心停止目标用户的所有数据,从而可以最大限度的减小对目标用户的影响;并且,由于在存量数据同步完成之后,控制原数据中心停止写入目标用户的用户数据,在停止写入目标用户的用户数据之后,才能判断增量数据是否同步完成,因此,在增量数据同步完成之后,可以确定存量数据已经同步完成,即确定目标用户的全部用户数据同步完成。

可选的,根据下列方式判断所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据是否同步完成:

判断所述目标用户绑定的原数据中心和所述新增数据中心之间的所有存量数据同步程序是否执行完成;

如果是,则确定所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据同步完成;

否则,确定所述目标用户绑定的原数据中心中的所述目标用户的全部所 述存量数据未同步完成。

由于本公开内容实施例提供了判断目标用户在原数据中心中的全部存量数据是否同步至新增数据中心的方法,从而能够准确判断目标用户在原数据中心中的全部存量数据是否同步至新增数据中心。

可选的,所述控制所述目标用户绑定的原数据中心停止写入所述目标用户的用户数据,包括:

在设定时长内判断所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据是否同步完成;

如果是,则控制所述目标用户绑定的原数据中心停止写入所述目标用户的用户数据;

否则,下一个所述设定时长内继续判断所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据是否同步完成,直到所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据同步完成。

由于本公开内容实施例是在设定时长内原数据中心停止目标用户写入所有数据,并且在停止目标用户写入所有数据前,还需要保证目标用户在原数据中心中的全部存量数据同步至所述新增数据中心,从而最大限度的减小目标用户迁移的过程对目标用户的影响。

可选的,根据下列方式判断所述目标用户绑定的原数据中心中的所述目标用户的全部所述增量数据是否同步完成:

获取所述目标用户绑定的原数据中心和所述新增数据中心之间的所有增量数据同步程序的位点;

判断所述所有增量数据同步程序的位点是否全部晚于所述目标用户绑定的原数据中心停止写入所述目标用户的用户数据的时间点;

如果是,则确定所述目标用户绑定的原数据中心中的所述目标用户的全部所述增量数据同步完成;

否则,返回获取所述目标用户绑定的原数据中心和所述新增数据中心之间 的所有增量数据同步程序的位点的步骤。

由于本公开内容实施例提供了准确判断目标用户对应的全部增量数据同步完成的方法,从而保证在目标用户从原数据中心向新增数据中心迁移之前,目标用户对应的全部增量数据数据全部同步至新增数据中心。

可选的,所述在设定时长内判断所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据是否同步完成,包括:

根据所述目标用户对应的历史访问数据,确定所述目标用户对应的空闲时段;

从所述空闲时段中选取一段时长,将所述一段时长作为所述设定时长,在所述设定时长内判断所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据是否同步完成。

由于本公开内容实施例选择目标用户空闲时间段内的一个设定时长内判断存量数据是否完成,并在确定存量数据同步完成后对该目标用户停写,从而可以保证在停写时存量数据已经同步完成,减少对目标用户的停写时长,并且将迁移的过程对该目标用户透明,大大减小对目标用户的影响。

另一方面,本公开内容实施例还提供一种对用户进行迁移的设备,包括:

确定模块,用于在确定增加数据中心后,停止变更用户和数据中心的绑定关系,确定归属于新增数据中心的所有的目标用户;

同步模块,用于根据所述绑定关系,将每个所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据向所述新增数据中心进行同步;

处理模块,用于针对任意一个目标用户,在所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据向所述新增数据中心进行同步后,控制所述目标用户绑定的原数据中心停止写入所述目标用户的用户数据,将所述绑定关系中与所述目标用户绑定的原数据中心替换为所述新增数据中心。

可选的,所述处理模块,还用于:

确定与所述目标用户绑定的原数据中心中所述目标用户的所述全部用户 数据同步完成。

可选的,所述每个所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据包括增量数据和存量数据;

所述同步模块,具体用于:

将每个所述目标用户绑定的原数据中心中的所述目标用户的所述增量数据和所述存量数据向所述新增数据中心进行同步;其中,所述目标用户的所述增量数据为,在将所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据向所述新增数据中心进行同步之后新增加或发生变化的数据;所述目标用户的所述存量数据为,在将所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据向所述新增数据中心进行同步之前产生的数据。

可选的,所述同步模块,具体用于:

针对任意一个目标用户,通过所述目标用户绑定的原数据中心和所述新增数据中心之间的增量数据同步程序,将所述目标用户在所述目标用户绑定的原数据中心中的所述增量数据向所述新增数据中心进行同步;在将所述目标用户在所述目标用户绑定的原数据中心中的所述增量数据向所述新增数据中心进行同步之后,通过所述目标用户绑定的原数据中心和所述新增数据中心之间的存量数据同步程序,将所述目标用户在所述目标用户绑定的原数据中心中的所述存量数据向所述新增数据中心进行同步。

可选的,所述处理模块,还用于:

针对任意一个目标用户,确定所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据同步完成;

若确定所述目标用户绑定的原数据中心中的所述目标用户的全部所述增量数据同步完成,则确定与所述目标用户绑定的原数据中心中所述目标用户的所述全部用户数据同步完成。

可选的,所述处理模块,还用于:

根据下列方式判断所述目标用户绑定的原数据中心中的所述目标用户的 全部所述存量数据是否同步完成:

判断所述目标用户绑定的原数据中心和所述新增数据中心之间的所有存量数据同步程序是否执行完成;如果是,则确定所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据同步完成;否则,确定所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据未同步完成。

可选的,所述处理模块,具体用于:

在设定时长内判断所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据是否同步完成;如果是,则控制所述目标用户绑定的原数据中心停止写入所述目标用户的用户数据;否则,下一个所述设定时长内继续判断所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据是否同步完成,直到所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据同步完成。

可选的,所述处理模块,还用于:

根据下列方式判断所述目标用户绑定的原数据中心中的所述目标用户的全部所述增量数据是否同步完成:

获取所述目标用户绑定的原数据中心和所述新增数据中心之间的所有增量数据同步程序的位点;判断所述所有增量数据同步程序的位点是否全部晚于所述目标用户绑定的原数据中心停止写入所述目标用户的用户数据的时间点;如果是,则确定所述目标用户绑定的原数据中心中的所述目标用户的全部所述增量数据同步完成;否则,返回获取所述目标用户绑定的原数据中心和所述新增数据中心之间的所有增量数据同步程序的位点的步骤。

可选的,所述处理模块,具体用于:

根据所述目标用户对应的历史访问数据,确定所述目标用户对应的空闲时段;从所述空闲时段中选取一段时长,将所述一段时长作为所述设定时长,在所述设定时长内判断所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据是否同步完成。

附图说明

图1为本公开内容实施例对用户进行迁移的方法流程图;

图2为本公开内容实施例增量数据和存量数据分别进行同步的方法示意图;

图3本公开内容实施例判断目标用户在原idc的全部增量数据是否同步至新增idc的方法流程图;

图4a本公开内容实施例确定增量数据同步程序位点的方法示意图;

图4b本公开内容实施例确定原idc和新增idc之间增量数据同步程序位点的方法示意图;

图4c本公开内容实施例判断目标用户在原idc中的全部增量数据是否同步完成的方法示意图一;

图4d本公开内容实施例判断目标用户在原idc中的全部增量数据是否同步完成的方法示意图二;

图4e本公开内容实施例判断目标用户在原idc中的全部增量数据是否同步完成的方法示意图三;

图5为本公开内容实施例对用户进行迁移的方法整体流程图;

图6为本公开内容实施例对用户进行迁移的设备的结构示意图。

具体实施方式

为使本公开内容实施例的目的、技术方案和优点更加清楚,下面将结合本公开内容实施例中的附图,对本公开内容实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开内容一部分实施例,而不是全部的实施例。基于本公开内容中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开内容保护的范围。

本公开内容实施例在确定增加数据中心后,停止变更用户和数据中心的绑定关系,确定归属于新增数据中心的所有的目标用户;根据所述绑定关系,将 每个所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据向所述新增数据中心进行同步;针对任意一个目标用户,在所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据向所述新增数据中心进行同步后,控制所述目标用户绑定的原数据中心停止写入所述目标用户的用户数据,将所述绑定关系中与所述目标用户绑定的原数据中心替换为所述新增数据中心。

由于本公开内容实施例在确定需要新增数据中心时,短暂停止变更用户和数据中心的绑定关系,确定出需要迁移至新增数据中心的目标用户。在确定出目标用户后,即可变更其他用户的于数据中心的绑定关系,不再影响其他用户。在将目标用户迁移至新增数据中心时,需要先将目标用户的全部用户数据同步至新增数据中心,并停止目标用户写入数据,实现将目标用户进行迁移。

本公开内容实施例可以应用在有多个数据中心为用户提供服务的场景。在该场景中,在该场景中,一个重要的组成部分就是记录用户到其最近数据中心的映射关系,即确定用户与其归属的数据中心之间的关系。随着用户不断增多,或者业务不断发展,经常面临的一个问题就是在原有的多数据中心架构中新增加数据中心。在新增数据中心之后,还需要为新增数据中心分配用户,并且将归属于新增数据中心的用户迁移至新增数据中心。

本公开内容实施例将确定迁移至新增数据中心的用户作为目标用户。在将目标用户迁移至新增数据中心的过程中,一个重要的步骤就是将目标用户的数据同步至新增数据中心。在确定目标用户的所有数据同步至新增数据中心之后,将目标用户与新增数据中心进行绑定,完成对目标用户的迁移。

在确定新增数据中心之后,本公开内容实施例的控制中心停止全局所有用户的动态变更,其中,用户的动态变更为变更用户归属的数据中心。

并且,在确定新增数据中心之后,控制中心还需要根据包含新增数据中心在内的全局所有数据中心,生成最新的数据中心与归属数据中心的用户的绑定关系,从而确定出与新增数据中心绑定的目标用户。

具体的,本公开内容实施例在生成最新的数据中心与归属数据中心的用户 的绑定关系时,可以采用但不限于下列方式。

1、基于dns(domainnamesystem,域名系统)技术,根据用户的ip(internetprotocol,网络互联协议)地址段所归属的地理区域,将域名解析到就近的数据中心,确定用户归属的数据中心。

2、根据大数据分析,确定用户id(identity,身份标识号码)持续被dns解析到的归属地,将该归属地的数据中心作为用户归属的数据中心。

需要说明的是,本公开内容实施例给出的上述两种生成最新数据中心与归属数据中心的用户的绑定关系的方式,只是对本公开内容实施例生成最新的数据中心与归属数据中心的用户的绑定关系的举例说明,任何能够生成最新的数据中心与归属数据中心的用户的绑定关系的方式均适用于本公开内容。

本公开内容实施例在生成最新的数据中心与归属数据中心的用户的绑定关系后,确定与该新增数据中心绑定的目标用户。

需要说明的是,本公开内容实施例根据包含新增数据中心在内的全局所有数据中心生成的最新的数据中心与归属数据中心的用户的绑定关系,相比于原来的数据中心与归属数据中心的用户的绑定关系,只是将部分用户的归属关系由原来的数据中心(以下称为原数据中心)变更到新增数据中心。

本公开内容实施例的数据中心可以为idc(internetdatacenter,互联网数据中心),还可以是其它用于存放数据的中心。为了方便介绍,下面以数据中心是idc为例进行说明。需要说明的是,数据中心是其他用于存放数据的中心的处理方法与数据中心是idc的处理方法相同,在此不再赘述。

本公开内容实施例的idc具体为互联网数据中心,在该互联网数据中心中存放了一定数量的网络服务器,并在网络服务器上部署特定的互联网软件,对互联网的用户提供网络服务。

下面结合说明书附图对本公开内容实施例作进一步详细描述。

如图1所示,本公开内容实施例提供一种用户迁移的方法,包括:

步骤101、在确定增加idc后,停止变更用户和idc的绑定关系,确定归 属于新增idc的所有的目标用户;

步骤102、根据所述绑定关系,将每个所述目标用户绑定的原idc中的所述目标用户的全部用户数据向所述新增idc进行同步;

步骤103、针对任意一个目标用户,在所述目标用户绑定的原idc中的所述目标用户的全部用户数据向所述新增idc进行同步后,控制所述目标用户绑定的原idc停止写入所述目标用户的用户数据,将所述绑定关系中与所述目标用户绑定的原idc替换为所述新增idc。

本公开内容实施例将需要由原idc迁移至新增idc的用户作为目标用户。

针对任意一个目标用户,对目标用户进行迁移包括将目标用户的用户数据同步至新增idc,和将目标用户与新增idc进行绑定,并且在将目标用户与新增idc进行绑定之前,由目标用户归属的idc,即原idc为目标用户提供网络服务。

本公开内容实施例将目标用户的数据分为增量数据和存量数据。

其中,目标用户的增量数据为,在将所述目标用户绑定的原idc中的所述目标用户的全部用户数据向所述新增idc进行同步之后新增加或发生变化的数据;

目标用户的存量数据为,在将所述目标用户绑定的原idc中的所述目标用户的全部用户数据向所述新增idc进行同步之前产生的数据。

例如,用户a为一个目标用户,需要将用户a由原idc迁移至新增idc。确定用户a在00:00:00开始进行数据同步。则在00:00:00之后,用户a操作的所有数据均为增量数据,其中,用户a对数据的操作包括但不限于新增、更新、删除、读取的数据。在00:00:00之前,用户a产生的所有数据均称为存量数据,其中,用户a产生的数据包括用户a操作过的所有数据,即用户a在00:00:00之前新增、更新、删除、读取过的所有数据。

可选的,本公开内容实施例将每个所述目标用户绑定的原idc中的所述目标用户的全部用户数据向所述新增idc进行同步为,将每个所述目标用户绑定 的原idc中的所述目标用户的所述增量数据和所述存量数据向所述新增idc进行同步。

其中,本公开内容实施例在将所述目标用户绑定的原idc中的所述目标用户的全部用户数据向所述新增idc进行同步,是指将所述目标用户绑定的原idc中的所述目标用户的增量数据向所述新增idc进行同步。

即,本公开内容实施例在将目标用户的全部用户数据向新增idc进行同步时,首先将目标用户的增量数据向新增idc同步,在增量数据的同步开始之后,将目标用户的存量数据向新增idc同步,从而保证目标用户在原idc的全部用户数据同步至新增idc。

具体的,针对目标用户的增量数据,本公开内容实施例采用下列方式向新增idc进行同步。

针对任意一个目标用户,通过所述目标用户绑定的原idc和所述新增idc之间的增量数据同步程序,将所述目标用户在所述目标用户绑定的原idc中的所述增量数据向所述新增idc进行同步。

本公开内容实施例在原idc和新增idc之间同步目标用户的增量数据时,通过原idc和新增idc之间的所有增量数据同步程序,基于binlog/redolog的数据同步机制将原idc的目标用户的增量数据同步至新增idc中。

本公开内容实施例在原idc和新增idc之间包括一个或多个增量数据同步程序,每一个增量数据同步数据执行的是特定类型的用户数据,并且在原idc不同时,原idc和新增idc之间的增量数据同步程序也不相同。

例如,针对目标用户a,用户a原来归属的idc为idc1,idc3为新增idc,在idc1和idc3之间包括三个增量数据同步程序,分别为:第一增量数据同步程序、第二增量数据同步程序和第三增量数据同步程序。其中,第一增量数据同步程序执行的是将用户a在idc1中的商品增量数据同步至idc3;第二增量数据同步程序执行的是将用户a在idc1中的用户评论增量数据同步 至idc3;第三增量数据同步程序执行的是将用户a在idc1中的订单增量数据同步至idc3。

又比如,针对目标用户a,用户a原来归属的idc为idc1,idc3为新增idc,在idc1和idc3之间包括三个增量数据同步程序,分别为:第一增量数据同步程序、第二增量数据同步程序和第三增量数据同步程序。针对目标用户b,用户b原来归属的idc为idc2,idc3为新增idc,在idc2和idc3之间包括三个增量数据同步程序,分别为:第四增量数据同步程序、第五增量数据同步程序和第六增量数据同步程序。并且第一增量数据同步程序、第二增量数据同步程序、第三增量数据同步程序、第四增量数据同步程序、第五增量数据同步程序和第六增量数据同步程序为互不相同的增量数据同步程序。

具体的,针对目标用户的存量数据,本公开内容实施例采用下列方式向新增idc进行同步。

在将所述目标用户在所述目标用户绑定的原idc中的所述增量数据向所述新增idc进行同步之后,通过所述目标用户绑定的原idc和所述新增idc之间的存量数据同步程序,将所述目标用户在所述目标用户绑定的原idc中的所述存量数据向所述新增idc进行同步。

本公开内容实施例通过所述原idc和所述新增idc之间的存量数据同步程序,将所述目标用户在所述原idc中的存量数据同步至所述新增idc。

例如,在用户a为目标用户时,用户a归属的原idc为idc1,新增idc为idc3。如图2所示,将t0时刻将用户a的用户数据从idc1向idc3进行同步。则在t0时刻以后,用户a在idc1中产生的数据为增量数据,在t0时刻以前,用户a在idc1中产生的数据为存量数据,其中,t0时刻为00:00:00。

在t0时刻00:00:00到达后,将用户a在idc1中的增量数据同步至idc3。在t1时刻以后,将用户a在idc1中的存量数据同步至idc3,其中,t1时刻为00:01:00。

需要说明的是,本公开内容实施例的存量数据同步程序与增量数据同步程 序为不同的数据同步程序。

本公开内容实施例的存量数据同步程序在执行原idc和新增idc之间的存量数据同步时,根据原idc中存量数据对应的时间顺序,存量数据同步程序每次从原idc中读取固定大小的存量数据,并将每次读取的固定大小的存量数据同步至新增idc,直到原idc中所有的存量数据均同步至新增idc,则存量数据同步程序执行完成。

其中,存量数据的单位并非确定的,根据不同的数据类型,存量数据的单位也不同。例如在存量数据以每条数据的形式存储时,固定大小的存量数据为固定条数的存量数据;或者固定大小的存量数据还可以是固定容量的存量数据。

需要说明的是,在确定存量数据同步程序每次从原idc中读取的存量数据的大小时,可以根据存量数据同步程序的性能,以及需要的存量数据同步的效率确定。

本公开内容实施例在原idc和新增idc之间包括一个或多个存量数据同步程序,每一个存量数据同步程序执行的是特定类型的用户数据,并且在原idc不同时,原idc和新增idc之间的存量数据同步程序也不相同。

例如,针对目标用户a,用户a原来归属的idc为idc1,idc3为新增idc,在idc1和idc3之间包括三个存量数据同步程序,分别为:第一存量数据同步程序、第二存量数据同步程序和第三存量数据同步程序。其中,第一存量数据同步程序执行的是将用户a在idc1中的商品存量数据同步至idc3;第二存量数据同步程序执行的是将用户a在idc1中的用户评论存量数据同步至idc3;第三存量数据同步程序执行的是将用户a在idc1中的订单存量数据同步至idc3。

又比如,针对目标用户a,用户a原来归属的idc为idc1,idc3为新增idc,在idc1和idc3之间包括三个存量数据同步程序,分别为:第一存量数据同步程序、第二存量数据同步程序和第三存量数据同步程序。针对目 标用户b,用户b原来归属的idc为idc2,idc3为新增idc,在idc2和idc3之间包括三个存量数据同步程序,分别为:第四存量数据同步程序、第五存量数据同步程序和第六存量数据同步程序。并且第一存量数据同步程序、第二存量数据同步程序、第三存量数据同步程序、第四存量数据同步程序、第五存量数据同步程序和第六存量数据同步程序为互不相同的存量数据同步程序。

由于本公开内容实施例在将目标用户绑定新增idc之前,需要将目标用户在原idc的全部用户数据同步至新增idc,全部用户数据包括增量数据和存量数据。因此,在在将目标用户绑定新增idc之前,需要判断目标用户在原idc的全部增量数据是否同步至新增idc,以及目标用户在原idc的全部存量数据是否同步至新增idc。下面分别进行说明。

一、判断目标用户在原idc的全部存量数据是否同步至新增idc的方法。

本公开内容实施例根据下列方式判断所述目标用户绑定的原idc中的所述目标用户的全部存量数据是否同步完成:

判断所述目标用户绑定的原idc和所述新增idc之间的所有存量数据同步程序是否执行完成;如果是,则确定所述目标用户绑定的原idc中的所述目标用户的全部所述存量数据同步完成;否则,确定所述目标用户绑定的原idc中的所述目标用户的全部所述存量数据未同步完成。

本公开内容实施例原idc和新增idc之间包括一个或多个存量数据同步程序,在判断目标用户在原idc中的全部存量数据是否同步至新增idc时,判断原idc和新增idc之间的所有存量数据同步程序是否执行完成,若原idc和新增idc之间的所有存量数据同步程序全部执行完成,则确定所述目标用户绑定的原idc中的所述目标用户的全部所述存量数据同步完成;若原idc和新增idc之间的所有存量数据同步程序有至少一个没有执行完成,则确定所述目标用户绑定的原idc中的所述目标用户的全部所述存量数据未同步完成。

例如,针对目标用户a,用户a原来归属的idc为idc1,idc3为新增idc,在idc1和idc3之间包括三个存量数据同步程序,分别为:第一存量数 据同步程序、第二存量数据同步程序和第三存量数据同步程序。其中,第一存量数据同步程序执行的是将用户a在idc1中的商品存量数据同步至idc3;第二存量数据同步程序执行的是将用户a在idc1中的用户评论存量数据同步至idc3;第三存量数据同步程序执行的是将用户a在idc1中的订单存量数据同步至idc3。在判断用户a在idc1的全部存量数据是否同步至idc3时,分别判断第一存量数据同步程序、第二存量数据同步程序和第三存量数据同步程序是否执行完成,若第一存量数据同步程序、第二存量数据同步程序和第三存量数据同步程序全部执行完成,则确定用户a在idc1的全部存量数据同步至idc3;若第一存量数据同步程序、第二存量数据同步程序和第三存量数据同步程序中存在任一个存量数据同步程序没有执行完成,则确定用户a在idc1的全部存量数据没有全部同步至idc3。

二、判断目标用户绑定的原idc的所述目标用户的全部增量数据是否同步完成的方法。

如图3所示,本公开内容实施例根据下列方式判断目标用户绑定的原idc的所述目标用户的全部增量数据是否同步完成。

步骤301、控制所述目标用户绑定的原idc停止写入所述目标用户的用户数据;

步骤302、获取目标用户绑定的原idc和所述新增idc之间的所有增量数据同步程序的位点;

步骤303、判断所述所有增量数据同步程序的位点是否全部晚于所述目标用户绑定的原idc停止写入所述目标用户的用户数据的时间点,若是,执行步骤304,若否,执行步骤302;

步骤304、确定所述目标用户绑定的原idc中的所述目标用户的全部所述增量数据同步完成。

本公开内容实施例是通过停止目标用户在原idc中写入用户数据的方式,在停止目标用户在原idc中写入用户数据后,判断目标用户的全部增量数据是 否同步至新增idc。若确定目标用户的全部增量数据没有同步完成,则继续停止目标用户在原idc中写入所有数据,并持续判断目标用户的全部增量数据是否同步完成,直到确定目标用户的全部增量数据同步完成。

本公开内容实施例的停止写入又可以称为停止更新。具体的,写入数据包括但不限于下列操作:

新增数据、修改数据、删除数据和读取数据。

并且,本公开内容实施例在控制所述原idc停止写入所述目标用户的用户数据时,采用sql(structuredquerylanguage,结构化查询语言)拦截的方式,在sql拦截后抛出异常使事务回滚来实现停写。

本公开内容实施例原idc停止写入所述目标用户的用户数据的时间点并非任意一个时间点,为了最大限度的减少对用户的影响,本公开内容实施例采用下列方式确定原idc停止写入所述目标用户的所有数据的时间点。

在设定时长内判断所述目标用户绑定的原idc中的所述目标用户的全部所述存量数据是否同步完成;如果是,则控制所述目标用户绑定的原idc停止写入所述目标用户的用户数据;否则,下一个所述设定时长内继续判断所述目标用户绑定的原idc中的所述目标用户的全部所述存量数据是否同步完成,直到所述目标用户绑定的原idc中的所述目标用户的全部所述存量数据同步完成。

本公开内容实施例在确定目标用户的全部存量数据同步完成后,控制员idc停止写入目标用户的用户数据。若在目标用户的全部存量数据未同步完成时,控制原idc停止写入目标用户的用户数据,并在确定目标用户的增量数据同步完成,而存量数据尚未同步完成,则还需要等待时间,等待目标用户的全部存量数据同步完成。因此,本公开内容实施例在确定目标用户的全部存量数据同步完成后,控制员idc停止写入目标用户的用户数据,从而最大限度的减少等待时长,减小对目标用户的影响。

其中,本公开内容实施例根据下列方式确定设定时长。

可选的,根据所述目标用户对应的历史访问数据,确定所述目标用户对应的空闲时段;从所述空闲时段中选取一段时长,将所述一段时长作为所述设定时长,在所述设定时长内判断所述目标用户绑定的原idc中的所述目标用户的全部所述存量数据是否同步完成。

具体的,根据下列步骤确定设定时长。

1、获取目标用户一定时长内的历史访问数据,其中,该一定时长可以为一个月;

2、对获取到的目标用户一定时长内的历史访问数据进行分析,其中,数据分析的过程主要是确定目标用户每次访问的时间;

3、根据对一定时长内的历史访问数据的分析结果,确定出用户在全天24小时周期内不访问的时间范围,将该时间范围作为所述目标用户对应的空闲时段;

4、从所述空闲时段中选取一段时长,将所述一段时长作为所述设定时长,其中,选取的设定时长可以为空闲时间段的任意一段时长。

例如,在确定目标用户a对应的设定时长时,根据获取到的目标用户a的历史访问数据,经过对获取到的用户a的历史访问数据进行分析,确定目标用户a在00:00:00至00:10:00的时间段内不会访问,则将00:00:00至00:10:00作为目标用户a的空闲时间段,在00:00:00至00:10:00的空闲时间段内选取00:00:00至00:05:00这一段时长作为目标用户a对应的设定时长,在该设定时长内判断目标用户的存量数据是否同步完成,若同步完成,则停止写入目标用户的用户数据;若确定目标用户的存量数据没有同步完成,则在下一个00:00:00至00:05:00时长内再次进行判断。

或者,本公开内容实施例根据对所有目标用户一定时长内的历史访问数据进行分析,得到所有目标用户的空闲时间段。根据所有目标用户的空闲时间段对目标用户进行分组,将空闲时间段接近的目标用户分为一组,根据该组目标用户的空闲时间段,确定一个公共空闲时间段,在该公共空闲时间段内,选取 一段时长作为该组目标用户对应的设定时长。

实施中,若在目标用户对应的设定时长内确定目标用户的在原idc中的全部存量数据同步至新增idc,则控制原idc停止写入目标用户的所有数据。

若在目标用户对应的设定时长内确定目标用户的在原idc中的全部存量数据没有同步至新增idc,则在下一个该目标用户的空闲时段内继续判断。

需要说明的是,本公开内容实施例目标用户的设定时长为以24小时为周期的时长。例如,目标用户对应的设定时长为00:00:00-00:10:00,则每一天的00:00:00-00:10:00时段都为目标用户对应的设定时长。

本公开内容实施例中增量数据同步程序的位点为,当前时刻增量数据同步程序执行的数据对应的时间点,其中,数据对应的时间点为最后一次对该数据进行操作的时间点,并且对数据进行的操作包括但不限于下列操作:

新增数据、更新数据、删除数据和读取数据。

由于本公开内容实施例中通过增量数据同步程序,将目标用户对应的增量数据从原idc同步至新增idc的过程中会存在一定的延迟。在确定增量数据同步程序的位点时,将当前时刻数据同步程序执行的数据对应的时间点作为增量数据同步程序的位点。例如,如图4a所示,当前时刻t0为00:10:10,此时确定增量数据同步程序执行的数据对应的时间点t1为00:10:05,则确定该增量数据同步程序的位点为00:10:05。

本公开内容实施例的原idc和新增idc之间包括一个或多个增量数据同步程序,在判断该目标用户在原idc中的增量数据同步是否完成时,需要获取原idc和新增idc之间所有增量数据同步程序的位点,并且从确定的所有增量数据同步程序的位点中选择最早的位点。

例如,原idc和新增idc之间包括四个增量数据同步程序,分别为第一增量数据同步程序、第二增量数据同步程序、第三增量数据同步程序和第四增量数据同步程序。如图4b所示,假设当前时刻t0为12:10:10,并且,获取到第一增量数据同步程序的位点t1为12:10:08;获取到第二增量数据同步程序 的位点t2为12:10:05;获取到第三增量数据同步程序的位点t3为12:10:09;获取到第四增量数据同步程序的位点为12:09:56;则从获取到的四个增量数据同步程序的位点中,选择最早的位点,即第四增量数据同步程序的位点12:09:56。

本公开内容实施例在选择到原idc和新增idc之间所有增量数据同步程序的位点中最早的位点后,通过比较所有增量数据同步程序的位点中最早的位点与原idc停止写入目标用户的所有数据的时间点,判断目标用户在原idc中的增量数据同步是否同步完成;若所有增量数据同步程序的位点中最早的位点晚于原idc停止写入目标用户的所有数据的时间点,则确定目标用户在原idc中的全部增量数据同步完成;若所有增量数据同步程序的位点中最早的位点不晚于原idc停止写入目标用户的所有数据的时间点,则确定目标用户在原idc中的全部增量数据没有同步完成。

例如,如图4c所示,在12:10:00原idc停止写入目标用户的所有数据,则原idc停止写入目标用户的所有数据的时间点t1为12:10:00。并且原idc和新增idc之间包括四个增量数据同步程序,分别为第一增量数据同步程序、第二增量数据同步程序、第三增量数据同步程序和第四增量数据同步程序。在原idc停止写入目标用户的所有数据之后,假设在t0时刻获取各个增量数据同步程序的位点,且t0时刻为12:10:10。获取到第一增量数据同步程序的位点t1为12:10:00;获取到第二增量数据同步程序的位点t2为12:10:05;获取到第三增量数据同步程序的位点t3为12:10:03;获取到第四增量数据同步程序的位点t4为12:09:56。则从获取到的四个增量数据同步程序的位点中,选择最早的位点,即第四增量数据同步程序的位点t4。通过比较四个增量数据同步程序的位点中最早的位点t4,与原idc停止写入目标用户的所有数据的时间点t1,确定最早的位点t4早于原idc停止写入目标用户的所有数据的时间点t1,则确定目标用户在原idc中的全部增量数据没有同步完成。

还比如,如图4d所示,在12:10:00原idc停止写入目标用户的所有数据, 则原idc停止写入目标用户的所有数据的时间点t1为12:10:00。并且原idc和新增idc之间包括四个增量数据同步程序,分别为第一增量数据同步程序、第二增量数据同步程序、第三增量数据同步程序和第四增量数据同步程序。在原idc停止写入目标用户的所有数据之后,假设在t0时刻获取各个增量数据同步程序的位点,且t0时刻为12:10:10。获取到第一增量数据同步程序的位点t1为12:10:02;获取到第二增量数据同步程序的位点t2为12:10:05;获取到第三增量数据同步程序的位点t3为12:10:03;获取到第四增量数据同步程序的位点t4为12:10:06。则从获取到的四个增量数据同步程序的位点中,选择最早的位点,即第一增量数据同步程序的位点t1。通过比较四个增量数据同步程序的位点中最早的位点t1,与原idc停止写入目标用户的所有数据的时间点t1,确定最早的位点t1晚于原idc停止写入目标用户的所有数据的时间点t1,则确定目标用户在原idc中的全部增量数据同步完成。

需要说明的是,在确定所有增量数据同步程序的位点中最早的位点等于原idc停止写入目标用户的所有数据的时间点时,确定目标用户在原idc中的全部增量数据没有同步完成。

比如,如图4e所示,在12:10:00原idc停止写入目标用户的所有数据,则原idc停止写入目标用户的所有数据的时间点t1为12:10:00。并且原idc和新增idc之间包括四个增量数据同步程序,分别为第一增量数据同步程序、第二增量数据同步程序、第三增量数据同步程序和第四增量数据同步程序。在原idc停止写入目标用户的所有数据之后,假设在t0时刻获取各个增量数据同步程序的位点,且t0时刻为12:10:10。获取到第一增量数据同步程序的位点t1为12:10:00;获取到第二增量数据同步程序的位点t2为12:10:05;获取到第三增量数据同步程序的位点t3为12:10:03;获取到第四增量数据同步程序的位点t4为12:10:06。则从获取到的四个增量数据同步程序的位点中,选择最早的位点,即第一增量数据同步程序的位点t1。通过比较四个增量数据同步程序的位点中最早的位点t1,与原idc停止写入目标用户的所有数据的 时间点t1,确定最早的位点t1等于原idc停止写入目标用户的所有数据的时间点t1,则确定目标用户在原idc中的全部增量数据没有同步完成。

需要说明的是,本公开内容实施例在获取所述原idc和新增idc之间的所有数据同步程序的位点时,是同时获取原idc和新增idc之间的所有增量数据同步程序的位点。

如图5所示,本公开内容实施例提供的一种对用户进行迁移的方法的整体流程图。

步骤501、在确定增加idc后,停止变更用户和idc的绑定关系,确定归属于新增idc的所有的目标用户;

步骤502、针对任意一个目标用户,通过所述目标用户绑定的原idc和所述新增idc之间的增量数据同步程序,将所述目标用户在所述目标用户绑定的原idc中的所述增量数据向所述新增idc进行同步;

步骤503、通过所述目标用户绑定的原idc和所述新增idc之间的存量数据同步程序,将所述目标用户在所述目标用户绑定的原idc中的所述存量数据向所述新增idc进行同步;

步骤504、在设定时长内,判断目标用户绑定的原idc和所述新增idc之间的所有存量数据同步程序是否执行完成,若是,执行步骤506,若否,执行步骤505;

步骤505、下一个所述设定时长内继续判断所述目标用户绑定的原idc中的所述目标用户的全部所述存量数据是否同步完成,直到所述目标用户绑定的原idc中的所述目标用户的全部所述存量数据同步完成;

步骤506、控制所述目标用户绑定的原idc停止写入所述目标用户的用户数据;

步骤507、获取所述目标用户绑定的原idc和所述新增idc之间的所有增量数据同步程序的位点;

步骤508、判断所述所有增量数据同步程序的位点是否全部晚于所述目标 用户绑定的原idc停止写入所述目标用户的用户数据的时间点,若是,执行步骤509,若否,执行步骤507;

步骤509、确定所述目标用户绑定的原idc中的所述目标用户的全部所述增量数据同步完成;

步骤510、将所述绑定关系中与所述目标用户绑定的原idc替换为所述新增idc。

基于同一发明构思,本公开内容实施例中还提供了一种对用户进行迁移的设备,由于该设备解决问题的原理与本公开内容实施例对用户进行迁移的方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。

如图6所述,本公开内容实施例还提供一种对用户进行迁移的设备,包括:

确定模块601,用于在确定增加数据中心后,停止变更用户和数据中心的绑定关系,确定归属于新增数据中心的所有的目标用户;

同步模块602,用于根据所述绑定关系,将每个所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据向所述新增数据中心进行同步;

处理模块603,用于针对任意一个目标用户,在所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据向所述新增数据中心进行同步后,控制所述目标用户绑定的原数据中心停止写入所述目标用户的用户数据,将所述绑定关系中与所述目标用户绑定的原数据中心替换为所述新增数据中心。

可选的,所述处理模块603,还用于:

确定与所述目标用户绑定的原数据中心中所述目标用户的所述全部用户数据同步完成。

可选的,所述每个所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据包括增量数据和存量数据;

所述同步模块602,具体用于:

将每个所述目标用户绑定的原数据中心中的所述目标用户的所述增量数据和所述存量数据向所述新增数据中心进行同步;其中,所述目标用户的所述 增量数据为,在将所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据向所述新增数据中心进行同步之后新增加或发生变化的数据;所述目标用户的所述存量数据为,在将所述目标用户绑定的原数据中心中的所述目标用户的全部用户数据向所述新增数据中心进行同步之前产生的数据。

可选的,所述同步模块602,具体用于:

针对任意一个目标用户,通过所述目标用户绑定的原数据中心和所述新增数据中心之间的增量数据同步程序,将所述目标用户在所述目标用户绑定的原数据中心中的所述增量数据向所述新增数据中心进行同步;在将所述目标用户在所述目标用户绑定的原数据中心中的所述增量数据向所述新增数据中心进行同步之后,通过所述目标用户绑定的原数据中心和所述新增数据中心之间的存量数据同步程序,将所述目标用户在所述目标用户绑定的原数据中心中的所述存量数据向所述新增数据中心进行同步。

可选的,所述处理模块603,还用于:

针对任意一个目标用户,确定所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据同步完成;

若确定所述目标用户绑定的原数据中心中的所述目标用户的全部所述增量数据同步完成,则确定与所述目标用户绑定的原数据中心中所述目标用户的所述全部用户数据同步完成。

可选的,所述处理模块603,还用于:

根据下列方式判断所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据是否同步完成:

判断所述目标用户绑定的原数据中心和所述新增数据中心之间的所有存量数据同步程序是否执行完成;如果是,则确定所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据同步完成;否则,确定所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据未同步完成。

可选的,所述处理模块603,具体用于:

在设定时长内判断所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据是否同步完成;如果是,则控制所述目标用户绑定的原数据中心停止写入所述目标用户的用户数据;否则,下一个所述设定时长内继续判断所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据是否同步完成,直到所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据同步完成。

可选的,所述处理模块603,还用于:

根据下列方式判断所述目标用户绑定的原数据中心中的所述目标用户的全部所述增量数据是否同步完成:

获取所述目标用户绑定的原数据中心和所述新增数据中心之间的所有增量数据同步程序的位点;判断所述所有增量数据同步程序的位点是否全部晚于所述目标用户绑定的原数据中心停止写入所述目标用户的用户数据的时间点;如果是,则确定所述目标用户绑定的原数据中心中的所述目标用户的全部所述增量数据同步完成;否则,返回获取所述目标用户绑定的原数据中心和所述新增数据中心之间的所有增量数据同步程序的位点的步骤。

可选的,所述处理模块603,具体用于:

根据所述目标用户对应的历史访问数据,确定所述目标用户对应的空闲时段;从所述空闲时段中选取一段时长,将所述一段时长作为所述设定时长,在所述设定时长内判断所述目标用户绑定的原数据中心中的所述目标用户的全部所述存量数据是否同步完成。

以上参照示出根据本公开内容实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本公开内容。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作 的方法。

相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本公开内容。更进一步地,本公开内容可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本公开内容上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开内容范围的所有变更和修改。

显然,本领域的技术人员可以对本公开内容进行各种改动和变型而不脱离本公开内容的精神和范围。这样,倘若本公开内容的这些修改和变型属于本公开内容权利要求及其等同技术的范围之内,则本公开内容也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1