1.本发明涉及分布式存储技术领域,可用于金融领域,尤其涉及一种分布式缓存系统的数据迁移方法和装置。
背景技术:2.随着数据存储量急速增长,对数据快速访问的需求日渐增高,内存型数据库、分布式缓存系统的使用日渐广泛。作为提供高并发数据读写服务的最底层设施——内存型数据库,其承载的数据量不断增大,读写压力不断增高,业务处理对缓存的依赖性越来越强。与此同时,容器技术和容器编排的不断发展和成熟,容器以其轻便、弹性伸缩、隔离、易于部署维护等优点,逐渐受到用户青睐,越来越多的应用选择部署在容器上。在此技术发展的背景推动下,一些存量应用也逐渐向容器进行迁移。
3.为完成分布式缓存系统中底层存储节点从虚拟机向容器的迁移,目前的迁移方案很难保证迁移数据的完整性,且手工步骤繁杂,迁移前需要人工填写确认的配置信息非常多,在批量迁移的情况下,手工操作更加繁琐,迁移复杂度高、易出错。
技术实现要素:4.有鉴于此,本发明提供一种分布式缓存系统的数据迁移方法和装置,以解决上述提及的至少一个问题。
5.为了实现上述目的,本发明采用以下方案:
6.根据本发明的第一方面,提供一种分布式缓存系统的数据迁移方法,所述方法包括:获取需要迁移的租户的基础信息,所述基础信息包括租户名和所在集群名;根据所述基础信息获取需要迁移的租户的存储信息,所述存储信息包括存储节点信息和主备关系信息;根据所述存储信息确定租户的分片数量,每组分片对应一组存储节点;根据分片数量创建对应数量的容器;将旧存储节点的配置信息和数据同步至对应的容器。
7.根据本发明的第二方面,提供一种分布式缓存系统的数据迁移装置,所述装置包括:基础信息获取单元,用于获取需要迁移的租户的基础信息,所述基础信息包括租户名和所在集群名;存储信息获取单元,用于根据所述基础信息获取需要迁移的租户的存储信息,所述存储信息包括存储节点信息和主备关系信息;分片确定单元,用于根据所述存储信息确定租户的分片数量,每组分片对应一组存储节点;容器创建单元,用于根据分片数量创建对应数量的容器;同步单元,用于将旧存储节点的配置信息和数据同步至对应的容器。
8.根据本发明的第三方面,提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,处理器执行所述计算机程序时实现上述方法的步骤。
9.根据本发明的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
10.根据本发明的第五方面,提供一种计算机程序产品,包括计算机程序/指令,所述
计算机程序/指令被处理器执行时实现上述方法的步骤。
11.由上述技术方案可知,本技术在对迁移工具的使用者而言,迁移的最小粒度是租户,而在程序内部迁移是以分片为粒度进行的,多个分片同步执行迁移,大大的缩短了迁移时长,提升了迁移效率。
附图说明
12.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
13.图1是现有技术中一种分布式缓存系统的整体架构图;
14.图2是本技术实施例提供的一种分布式缓存系统的数据迁移方法的流程示意图;
15.图3是本技术另一实施例提供的一种分布式缓存系统的数据迁移方法的流程示意图;
16.图4是本技术实施例提供的断开存储节点主备关系的的流程示意图;
17.图5是本技术实施例提供的一种分布式缓存系统的数据迁移设计图;
18.图6本技术提供的一种分布式缓存系统的数据迁移装置的结构示意图;
19.图7是本技术另一实施例提供的电子设备的系统构成示意框图。
具体实施方式
20.本发明实施例提供的分布式缓存系统的数据迁移方法和装置,可用于金融领域及其他领域,需要说明的是,本发明的分布式缓存系统的数据迁移方法和装置可用于金融领域,也可用于除金融领域之外的任意领域,本发明对分布式缓存系统的数据迁移方法和装置不做限定。
21.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
22.如图1所示为现有技术中一种分布式缓存系统的整体架构图,下面先对整个系统的关键组件进行如下介绍:
23.代理节点:主要用于应用请求的解析转发,根据key计算数据的所属分片,再将数据转发至对应的存储节点,同时也负责请求全路径的跟踪记录。
24.存储节点:以redis作为系统的存储节点,在主备集群模式下,存储节点采用一主一备的部署方式,备节点仅提供数据备份能力,主节点负责提供数据读写能力。redis是目前最流行的键值对(key-value)数据库之一,是一款内存型数据库,其以快速的读写处理能力著称,支持多种数据类型,能满足多种业务场景的需要。
25.监控节点:用于监控集群中所有节点的状态,并将异常状态节点信息同步至注册中心,同时负责异常节点的报警。
26.注册中心:用于集群状态的管理。
27.如图2所示为本技术实施例提供的一种分布式缓存系统的数据迁移方法的流程示
意图,本技术即针对图1所示的主备模式的存储节点所进行的数据迁移,该方法包括如下步骤:
28.步骤s201:获取需要迁移的租户的基础信息,所述基础信息包括租户名和所在集群名。由于整个分布式缓存系统中可以存在多套集群,而每套集群内又包含多个租户,因此首先要确定所需要迁移的租户位于哪个集群中,因此必须要先获得需要迁移租户的租户名以及所在集群名来定位该租户。
29.步骤s202:根据所述基础信息获取需要迁移的租户的存储信息,所述存储信息包括存储节点信息和主备关系信息。
30.本步骤获得的租户的存储信息,即租户的数据分布在集群内的哪些存储节点之上,这些存储节点之间的主备关系数据等。
31.步骤s203:根据所述存储信息确定租户的分片数量,每组分片对应一组存储节点。
32.为满足租户对数据存储量的需求,会根据租户数据量的多少,在搭建环境时,就为其分配多组存储节点,一个组即一对主备存储节点,一个组即称为一个分片。因此根据步骤s202所获得存储数据,可以确定该租户具有多少分片数量。
33.步骤s204:根据分片数量创建对应数量的容器。
34.在本实施例中,优选的,一个分片可以对应两个容器,即容器数量和旧主备存储节点一一对应,即容器的主备关系为一主一备。当然,本领域技术人员可以明确的是,一个分片也可以对应三个或三个以上的容器,当一个分片对应三个容器时,容器间的主备关系为主-备-备的关系。因此,本实施例对分片数量与容器数量的对应关系并不加以限制。
35.步骤s205:将旧存储节点的配置信息和数据同步至对应的容器。
36.在本实施例中,可以先将存储节点的配置信息同步至对应的容器,由于租户的存储节点可能会在使用过程中开启一些特殊配置项,因此,需要将这些特殊配置项也同步到新的容器化节点,以免配置丢失。将配置信息同步好后,再将旧存储节点的数据同步至对应的容器中以完成数据迁移。
37.由上述技术方案可知,本技术提供的分布式缓存系统的数据迁移方法,在对迁移工具的使用者而言,迁移的最小粒度是租户,而在程序内部迁移是以分片为粒度进行的,多个分片同步执行迁移,大大的缩短了迁移时长,提升了迁移效率。
38.如图3所示为本技术另一实施例提供的一种分布式缓存系统的数据迁移方法的流程示意图,该方法包括如下步骤:
39.步骤s301:获取需要迁移的租户的基础信息,所述基础信息包括租户名和所在集群名。
40.步骤s302:在注册中心中为需要迁移的租户开启黑名单。
41.由于在整个集群的正常运行过程中,监控节点会对整个集群的全部节点进行状态检查和故障转移,即监控节点经检查发现主存储节点状态异常,就会对存储节点进行主备切换,使备用存储节点对外提供读写服务,并不断尝试重启原主存储节点,若原主存储节点重启成功,就将原主存储节点作为备用节点挂在新的主存储节点之下。
42.因此,为了防止在数据迁移过程中监控节点修改迁移中租户的存储节点信息,造成迁移工具对节点信息的修改失效,因此,在数据正式迁移前,本实施例在注册中心打开需要迁移租户的黑名单,使得监控节点不再检测该租户的存储节点状态,也不会对其注册信
息进行修改。
43.步骤s303:根据所述基础信息获取需要迁移的租户的存储信息,所述存储信息包括存储节点信息和主备关系信息。
44.步骤s304:根据所述存储信息确定租户的分片数量,每组分片对应一组存储节点。
45.步骤s305:根据分片数量创建对应数量的容器。
46.步骤s306:生成用于记录迁移前各项信息的迁移表,所述迁移表中信息以租户分片组为粒度进行存放,所述迁移表中信息包括注册中心节点ip和服务端口、租户名、分片组、分片区间、新旧存储节点ip和端口、集群模式、容器名、容器所属集群。通过迁移表的生成,可以方便数据迁移过程中出现问题时进行排查以及恢复运行环境。
47.步骤s307:将旧存储节点的配置信息同步至对应的容器。
48.步骤s308:将第一新容器挂载在旧主存储节点之下,作为所述旧主存储节点的备用节点,并且将第二新容器挂载在所述第一新容器之下,也作为所述旧主存储节点的备用节点。
49.对于一组分片来说,包含一个旧主存储节点(假设为节点a)和一个旧备存储节点(假设为节点b),通过步骤s305对应创建了一个第一新容器(假设为节点c)和一个第二新容器(假设为节点d),该步骤即为将节点c挂载在节点a之下,然后将节点d挂载在节点c之下,这样挂载后就有两条复制链路:a—》b和a—》c—》d。
50.步骤s309:将旧主存储节点的数据同步至所述第一新容器和所述第二新容器。
51.本步骤即根据上述复制链路a—》c—》d,将节点a数据同步至节点c和节点d。
52.步骤s310:断开旧主存储节点与第一新容器之间的主备关系并关闭旧主存储节点。
53.在本实施例中,为了避免数据同步后新容器内出现脏数据,在断开旧主存储节点与第一新容器之间的主备关系的时候采用了如图4所示的执行顺序:
54.步骤s3101:关闭旧主存储节点。
55.步骤s3102:断开旧主存储节点与所述第一新容器之间的主备关系。
56.步骤s3103:修改注册中心的节点信息。
57.先关闭旧主存储节点,此时注册中心的节点信息并未更改,因此会存在数据写入旧主存储节点失败的情况,但是却不会存在数据写入到旧主存储节点但未更新到新主存储节点的情况,因此新主存储节点不会出现脏数据。但是如果先断开旧主存储节点与第一新容器之间的主备关系,此时注册中心的节点信息也未进行更改,因此交易进来的时候是直接写入旧主存储节点的,但这时由于主备关系已经断开,因此新主存储节点就无法同步到这部分数据,数据没有在新主存储节点更新,从而会导致新主存储节点存在脏数据,而且上述过程的处理时间再毫秒级就可以完成。
58.步骤s311:验证租户新的服务是否可以正常进行,响应于验证通过,在注册中心中将需要迁移的租户从黑名单中移除。
59.在将租户从黑名单中移除后,监控节点便可以继续对该租户进行监控报警,此时,整个数据迁移完成,分布式缓存系统恢复正常运行。
60.由上述技术方案可知,本技术提供的分布式缓存系统的数据迁移方法,在对迁移工具的使用者而言,迁移的最小粒度是租户,而在程序内部迁移是以分片为粒度进行的,多
个分片同步执行迁移,大大的缩短了迁移时长,提升了迁移效率。另外数据同步后断开主备关系的操作方法也可以避免脏数据产生的问题。最后,上述整个数据迁移过程都无需人工进行干预即可自动完成,实用性高。
61.下面通过一迁移设计图来对上述方法进行进一步描述,如图5所示为本技术实施例提供的一种分布式缓存系统的数据迁移设计图,由图5可见,本技术上述实施例的方法可以由迁移工具来完成,通过配置迁移工具,首先修改注册中心的黑名单文件,让监控节点无法对需要迁移的租户进行监控,然后再旧的主存储节点(主1)之下挂载两个新的存储容器(新1和新2),然后再将主1的数据同步至新1和新2,接着再关闭主1,并断开主1与新1之间的主备关系,并修改注册中心的主备关系信息,使得新1作为新的主存储节点,而新2作为新的备存储节点,最后修改注册中心黑名单信息,将租户从黑名单移除,恢复监控节点对租户的监控。
62.如图6所示为本技术提供的一种分布式缓存系统的数据迁移装置的结构示意图,该装置包括:基础信息获取单元610、存储信息获取单元620、分片确定单元630、容器创建单元640和同步单元650,它们之间依次相连。
63.基础信息获取单元610用于获取需要迁移的租户的基础信息,所述基础信息包括租户名和所在集群名。
64.存储信息获取单元620用于根据所述基础信息获取需要迁移的租户的存储信息,所述存储信息包括存储节点信息和主备关系信息。
65.分片确定单元630用于根据所述存储信息确定租户的分片数量,每组分片对应一组存储节点。
66.容器创建单元640用于根据分片数量创建对应数量的容器。
67.同步单元650用于将旧存储节点的配置信息和数据同步至对应的容器。
68.优选的,该装置还包括一黑名单开启单元,用于在存储信息获取单元620根据基础信息获取需要迁移的租户的存储信息之前,在注册中心中为需要迁移的租户开启黑名单。
69.优选的,还包括一黑名单移除单元,用于在同步单元650将旧存储节点的配置信息和数据同步至对应的容器后,验证租户新的服务是否可以正常进行,响应于验证通过,在注册中心中将需要迁移的租户从黑名单中移除。
70.优选的,同步单元650将旧存储节点的数据同步至对应的容器具体包括:将第一新容器挂载在旧主存储节点之下,作为所述旧主存储节点的备用节点;将第二新容器挂载在所述第一新容器之下,作为所述旧主存储节点的备用节点;将旧主存储节点的数据同步至所述第一新容器和所述第二新容器。
71.优选的,该装置还包括一主备断开单元,用于在同步单元650将旧主存储节点的数据同步至所述第一新容器和所述第二新容器之后,关闭旧主存储节点,断开旧主存储节点与所述第一新容器之间的主备关系,以及修改注册中心的节点信息。
72.优选的,该装置还包括一迁移表生成单元,用于在容器创建单元640根据分片数量创建对应数量的容器之后,生成用于记录迁移前各项信息的迁移表,所述迁移表中信息以租户分片组为粒度进行存放,所述迁移表中信息包括注册中心节点ip和服务端口、租户名、分片组、分片区间、新旧存储节点ip和端口、集群模式、容器名、容器所属集群。
73.由上述技术方案可知,本技术提供的分布式缓存系统的数据迁移装置,在对迁移
工具的使用者而言,迁移的最小粒度是租户,而在程序内部迁移是以分片为粒度进行的,多个分片同步执行迁移,大大的缩短了迁移时长,提升了迁移效率。另外数据同步后断开主备关系的操作方法也可以避免脏数据产生的问题。最后,上述整个数据迁移过程都无需人工进行干预即可自动完成,实用性高。
74.本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现上述方法。
75.本发明实施例还提供一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时实现上述方法的步骤。
76.本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有执行上述方法的计算机程序。
77.如图7所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理器130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图7中所示的所有部件;此外,电子设备600还可以包括图7中没有示出的部件,可以参考现有技术。
78.如图7所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
79.其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
80.输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为lcd显示器,但并不限于此。
81.该存储器140可以是固态存储器,例如,只读存储器(rom)、随机存取存储器(ram)、sim卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为eprom等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
82.存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
83.通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
84.基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克
风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
85.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
86.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
87.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
88.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
89.本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。