一种配置数据中心的方法和系统与流程

文档序号:16537066发布日期:2019-01-08 19:59阅读:272来源:国知局
本申请涉及互联网
技术领域
:,特别涉及一种配置数据中心的方法和系统。
背景技术
::随着互联网技术的发展,互联网的用户越来越多,分布也越来越广泛。尤其大互联网公司,其用户大都分布在广泛的地理区域,而且越来越多的大型互联网公司将业务向全球发展,这使得其提供的网络服务面临着分布全球的海量用户。随着互联网公司用户的增多,以及用户分布越来越广泛,互联网公司为了更好地满足用户需要,需要提供多个idc(internetdatacenter,互联网数据中心),idc中存放了一定数量网络服务器,并在服务器上部署特定的互联网软件,多个idc同时对外提供网络服务,每个idc服务一部分用户,所有的数据中心服务的用户加起来是全局所有的用户。对于多个idc组成的结构,使得原本存储于一个库的数据分块会存储到多个库上,把原本存储于一个表的数据分块存储到多个表上,这种处理叫做分库分表。针对分库分表的方案,每个idc都会对应sequence(序列)信息,信息中需要保证每个idc的主键区段在所有idc中唯一。目前的方式是人工在每个idc上信息相同的多个sequence信息,每个sequence信息中的主键区段都是不同的,由人工选择每个idc使用的sequence信息。比如图1所示,现在有两个idc,每个idc都配置有四个sequence信息,sequence信息1的主键区段包括(0,1000],(4000,5000]…….;sequence信息2的主键区段包括(1000,2000],(5000,6000]…….;sequence信息3的主键区段包括(2000,3000],(6000,7000]…….;sequence信息4的主键区段包括(3000,4000],(7000,8000]…….。维护人员可以设置idc1使用sequence信息1和sequence信息2,设置idc2使用sequence信息3和sequence信息4,这样可以保证idc1和idc2的主键区段在所有idc中唯一。但是如果有需要增加的idc,维护人员就需要为新增加的idc配置sequence信息,从图1可以看出如果新增加sequence信息,就必须变动原有的sequence信息,这样才能保证每个sequence信息中的主键区段都是不同的。综上所述,目前如果新增加idc就需要人工手动对所有idc的信息进行调整,从而增加了增加idc的时间,并且效率非常低。技术实现要素:本申请提供一种配置数据中心的方法和系统,用以解决现有技术中存在的如果新增加idc就需要人工手动对新增idc所有数据库表的主键区段信息进行设置,从而增加了增加idc的时间,并且效率非常低的问题。本申请实施例提供的一种配置数据中心的方法,该方法包括:管控系统确定已配置给数据中心的列表信息中的主键区段;所述管控系统从所述主键区域中确定新增加的数据中心使用的主键区段,其中所述新增加的数据中心使用的主键区段与配置给数据中心的列表信息中的主键区段不重叠;所述管控系统根据确定的所述新增加的数据中心使用的主键区段,为所述新增加的数据中心配置列表信息。本申请实施例提供的一种配置数据中心的系统,该系统包括:区段确定模块,用于确定已配置给数据中心的列表信息中的主键区段;处理模块,用于从所述主键区域中确定新增加的数据中心使用的主键区段,其中所述新增加的数据中心使用的主键区段与配置给数据中心的列表信息中的主键区段不重叠;配置模块,用于根据确定的所述新增加的数据中心使用的主键区段,为所述新增加的数据中心配置列表信息。本申请实施例管控系统确定已配置给数据中心的列表信息中的主键区段,从所述主键区域中确定新增加的数据中心使用的主键区段,其中所述新增加的数据中心使用的主键区段与配置给数据中心的列表信息中的主键区段不重叠,根据确定的所述新增加的数据中心使用的主键区段,为所述新增加的数据中心配置列表信息。由于管控系统能够为新增加的数据中心配置与当前工作的数据中心的列表信息中的主键区段不重叠的主键区段,从而在新增加数据中心时不需要人工手动对所有数据中心的列表信息进行调整,缩短了配置数据中心的时间,提高了效率。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为
背景技术
:中idc配置的sequence信息的示意图;图2为本申请实施例管控中心进行管控的示意图;图3为本申请实施例配置数据中心的方法流程示意图;图4为本申请实施例配置数据中心的系统结构示意图。具体实施方式本申请实施例在数据中心上层增加了一个管控系统,该管控系统可以对每个数据中心进行管理和控制。这里的数据中心可以是idc,也可以是其他设备。如图2所示,本申请实施例管控中心进行管控的示意图中,管控系统预先存储了列表信息模板(也可以称为sequence信息模板),该列表信息模板中包括但不限于下列信息中的部分或全部:主键区段:为每个表可分配的区段范围(range_start,range_start+step);sequence_name:表示某个table的主键名字,比如有一个ali_order表,则该表的sequence_name值为ali_order_seq;idc:表示sequence配置归属的数据中心标识,即每个区域机房的名字,比如果部署了杭州和美国2个机房,分别为每个机房定义一个名字,分别为hz_idc和us_idc;db_key:通过该key可以获取存储sequence表的数据库信息;range_start:对应idc的区段起始值;step:对应idc的区段步长。在初始配置数据中心时,管控系统会根据列表信息模板,为每个数据中心配置列表信息。比如管控系统通过调用各个数据中心中的管控系统服务功能为每个数据中心配置列表信息。在配置列表信息时,管控系统需要统一为每个所述数据中心配置列表信息,从而保证每个数据中心的主键区段不重叠。比如有数据中心a和b两个数据中心,主键区段的粒度是1000万,则管控系统为数据中心a分配的主键区段是(0,1000万],为数据中心b分配的主键区段是(1000万,2000万]。管控系统在为数据中心配置主键区段时,可以每个数据中心配置宽度相同的主键区段;也可以根据每个数据中心所在的位置等信息,有针对性的为每个数据中心配置主键区段。比如根据数据中心所在位置确定数据中心服务的用户数量会比较多,则可以为数据中心分配比较宽的主键区段。举例:假设一个元数据表,名字叫sequence_meta,表记录具体如下:上述配置表示业务表ali_order的每个机房的主键区段定义,其中hz_idc分配的区段为(0,1000000),us_idc分配的区段为(1000000,2000000)利用元数据通过管控中心对各个机房初始化后,结果如下:hz_idc机房schema_order数据库sequence表状态:idsequence_keycurrent_max1ali_order_seq0之后,可以不断获取小的区段,并更新已经用到当前值current_maxus_idc机房schema_order数据库sequence表状态:idsequence_keycurrent_max1ali_order_seq1000000如果此时新增俄罗斯机房ru_idc,则可以自动生成每个表在该机房的主键区段,此时sequence_meta数据变成如下表:idsequence_nameidcdb_keyrange_startstep1ali_order_seqhz_idcschema_order010000002ali_order_sequs_idcschema_order100000020000003ali_order_seqru_idcschema_order20000003000000为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部份实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。如图3所示,本申请实施例配置数据中心的方法包括:步骤300、管控系统确定已配置给数据中心的列表信息中的主键区段;步骤301、所述管控系统从所述主键区域中确定新增加的数据中心使用的主键区段,其中所述新增加的数据中心使用的主键区段与配置给数据中心的列表信息中的主键区段不重叠;步骤302、所述管控系统根据确定的所述新增加的数据中心使用的主键区段,为所述新增加的数据中心配置列表信息。本申请实施例管控系统确定已配置给数据中心的列表信息中的主键区段,从所述主键区域中确定新增加的数据中心使用的主键区段,其中所述新增加的数据中心使用的主键区段与配置给数据中心的列表信息中的主键区段不重叠,根据确定的所述新增加的数据中心使用的主键区段,为所述新增加的数据中心配置列表信息。由于管控系统能够为新增加的数据中心配置与当前工作的数据中心的列表信息中的主键区段不重叠的主键区段,从而在新增加数据中心时不需要人工手动对所有数据中心的列表信息进行调整缩短了配置数据中心的时间,提高了效率。其中,配置给不同数据中心的列表信息中的主键区段不同,已配置给数据中心的列表信息中的主键区段是整个主键区域的一部分。在实施中,管控系统统一为各数据中心配置列表信息后,可以实时或周期从每个数据中心中获取所述列表信息,从而可以对数据中心当前的运行状态进行监控。比如管控系统可以通过调用各个数据中心中的管控系统服务功能获取从每个数据中心的列表信息。管控系统根据获取到的列表信息就可以知道每个数据中心使用的主键区段。如果需要增加新的数据中心,管控系统就可以为新增加的数据中心分配与其他数据中心使用的主键区段不重叠的主键区段。比如当前有数据中心a和数据中心b两个数据中心。管控系统中可以获取数据中心a和数据中心b的列表信息,具体包括下列信息:数据中心a分配的大区段:(0,10000000];数据中心b分配的大区段:(10000000,20000000]。数据中心a:数据中心b:idseq_namecurrent_max1table_a10000000在实施中,一个应用表中的id从主键大区段依次获取一个小区段(本例中区段大小为1000),在应用获取后,需要更新各个数据中心的表中的current_max,以便后续应用可以从current_max值开始获取下一个主键小区段。例如数据中心a的应用软件(app),获取一个主键区段(0,1000],同时更新current_max为下一个小区段的起始值,此时数据中心a的表就变为:idseq_namecurrent_max1table_a1000数据中心b的应用软件,获取一个段(10000000,10001000],同时更新current_max为下一个小区段的起始值,此时数据中心b的表就变为:idseq_namecurrent_max1table_a10001000上面的例子中每个数据中心只分配了一个大区段,当该区段快被使用完时(即current_max快增长到区段最大值时),该机房会被重新分配一个新的大区段,该区段的最小值等于当前所有机房区段最大值+1,最大值等于最小值+步长。所以可以确保分配的每个区段全局唯一。假设需要新增数据中心c,配置粒度是1000万:根据获取到的所有数据中心可以知道已分配的主键区段是0~20000000,则为数据中心c配置的主键区间是(20000000,30000000]。此时数据中心c的表为:idseq_namecurrent_max1table_a20000000这样就实现在增加数据中心时可以不修改已有的数据中心的列表信息。可选的,在数据中心运行期间,为了能够使数据中心稳定运行,管控系统还会对数据中心的主键区段进行监控,如果发现需要增加新的主键区段,则会为数据中心配置新的主键区段,以保证数据中心稳定运行。具体的,若所述管控系统确定运行的数据中心中有需要增加主键区段的目标数据中心,则所述管控系统从所述主键区域中确定所述目标数据中心使用的新的主键区段;所述管控系统为所述目标数据中心配置所述新的主键区段。在实施中,新的主键区段的粒度可以与初始分配的主键区段粒度相同,也可以根据数据中心所在位置等信息确定。具体确定哪些数据中心是目标数据中心的方式有很多,下面列举有一种:针对任意一个运行的数据中心,若所述数据中心当前主键的最大值超过区段阈值,则所述管控系统确定所述数据中心为目标数据中心。可选的,所述区段阈值是根据所述数据中心的列表信息中主键区段的最大值确定的。比如可以设置区段阈值为主键区段的最大值的x%,x可以根据需要设置,比如80、90等。假设有三个数据中心,分别是数据中心a、数据中心b和新增加的数据中心c。其中,数据中心a的主键区段是(0,10000000];数据中心b的主键区段是(10000000,20000000];数据中心c的主键区段是(20000000,30000000]。假设数据中心a的应用软件一直获取id段,当current_max增长超过区段阈值(比如8000000)时,管控系统确定数据中心a为目标数据中心,即确定需要为数据中心a分配新的区段阈值。管控系统确定已分配的主键区段为(0,30000000],且分配利度为10000000。管控系统根据上述信息为数据中心a重新分配新的区段为(30000000,40000000]。此时数据中心a的表如下:idseq_namecurrent_max1table_a30000000此时已分配的各数据中心的主键区段为:数据中心a:(30000000,40000000];数据中心b:(10000000,20000000];数据中心c:(20000000,30000000]。由于(0,10000000]之前已经被数据中心a使用,所以不能被再次使用。可选的,所述新增加的数据中心使用的主键区段与配置给数据中心的列表信息中的主键区段不重叠,这里的数据中心的列表信息可以是所有数据中心的列表信息,也可以是当前正在工作的数据中心的列表信息。基于同一发明构思,本申请实施例中还提供了一种配置数据中心的系统,由于该系统解决问题的原理与本申请实施例配置数据中心的方法相似,因此该系统的实施可以参见方法的实施,重复之处不再赘述。如图4所示,本申请实施例配置数据中心的系统包括:区段确定模块400,用于确定已配置给数据中心的列表信息中的主键区段;处理模块401,用于从所述主键区域中确定新增加的数据中心使用的主键区段,其中所述新增加的数据中心使用的主键区段与配置给数据中心的列表信息中的主键区段不重叠;配置模块402,用于根据确定的所述新增加的数据中心使用的主键区段,为所述新增加的数据中心配置列表信息。本申请实施例管控系统确定已配置给数据中心的列表信息中的主键区段,从所述主键区域中确定新增加的数据中心使用的主键区段,其中所述新增加的数据中心使用的主键区段与配置给数据中心的列表信息中的主键区段不重叠,根据确定的所述新增加的数据中心使用的主键区段,为所述新增加的数据中心配置列表信息。由于管控系统能够为新增加的数据中心配置与当前工作的数据中心的列表信息中的主键区段不重叠的主键区段,从而在新增加数据中心时不需要人工手动对所有数据中心的列表信息进行调整缩短了配置数据中心的时间,提高了效率。在实施中,区段确定模块400可以实时或周期从每个数据中心中获取所述列表信息,从而可以对数据中心当前的运行状态进行监控。可选的,为所述新增加的数据中心配置列表信息之前,所述配置模块402还用于:统一为每个所述数据中心配置列表信息。其中,区段确定模块400根据获取到的列表信息就可以知道每个数据中心使用的主键区段。如果需要增加新的数据中心,处理模块401就可以为新增加的数据中心分配与其他数据中心使用的主键区段不重叠的主键区段。比如当前有数据中心a和数据中心b两个数据中心。管控系统中可以获取数据中心a和数据中心b的列表信息,具体包括下列信息:数据中心a:(0,10000000];数据中心b:(10000000,20000000]。数据中心a:idseq_namecurrent_max1table_a0数据中心b:idseq_namecurrent_max1table_a10000000在实施中,一个应用表中的id从主键区段获取一段,在应用获取后,需要更新各个数据中心的表中的current_max,以便后续应用可以从current_max值开始获取主键区段。例如数据中心a的应用软件(app),获取一个主键区段(0,1000],同时更新current_max的下一个段的rangestart,此时数据中心a的表就变为:idseq_namecurrent_max1table_a1000数据中心b的应用软件,获取一个段(10000000,10001000],同时更新current_max的下一个段的rangestart,此时数据中心b的表就变为:idseq_namecurrent_max1table_a10001000上面的例子中每个数据中心只给出一个id,根据需要每个数据中心也可以有多个id,每个id对应的主键区段不重叠。假设需要新增数据中心c,配置粒度是1000万:根据获取到的所有数据中心可以知道已分配的主键区段是0~20000000,则为数据中心c配置的主键区间是(20000000,30000000]。此时数据中心c的表为:idseq_namecurrent_max1table_a20000000这样就实现在增加数据中心时可以不修改已有的数据中心的列表信息。可选的,在数据中心运行期间,为了能够使数据中心稳定运行,处理模块401还会对数据中心的主键区段进行监控,如果发现需要增加新的主键区段,则会为数据中心配置新的主键区段,以保证数据中心稳定运行。具体的,处理模块401还用于:若确定运行的数据中心中有需要增加主键区段的目标数据中心,则从所述主键区域中确定所述目标数据中心使用的新的主键区段;相应的,所述配置模块401具体用于:为所述目标数据中心配置所述新的主键区段。在实施中,新的主键区段的粒度可以与初始分配的主键区段粒度相同,也可以根据数据中心所在位置等信息确定。具体确定哪些数据中心是目标数据中心的方式有很多,下面列举有一种:所述处理模块401通过下列方式确定所述目标数据中心:针对任意一个运行的数据中心,若所述数据中心当前主键的最大值超过区段阈值,则确定所述数据中心为目标数据中心。可选的,所述区段阈值是根据所述数据中心的列表信息中主键区段的最大值确定的。比如可以设置区段阈值为主键区段的最大值的x%,x可以根据需要设置,比如80、90等。假设有三个数据中心,分别是数据中心a、数据中心b和新增加的数据中心c。其中,数据中心a的主键区段是(0,10000000];数据中心b的主键区段是(10000000,20000000];数据中心c的主键区段是(20000000,30000000]。假设数据中心a的应用软件一直获取id段,当current_max增长超过区段阈值(比如8000000)时,管控系统确定数据中心a为目标数据中心,即确定需要为数据中心a分配新的区段阈值。管控系统确定已分配的主键区段为(0,30000000],且分配利度为10000000。管控系统根据上述信息为数据中心a重新分配新的区段为(30000000,40000000]。此时数据中心a的表如下:idseq_namecurrent_max1table_a30000000此时已分配的各数据中心的主键区段为:数据中心a:(30000000,40000000];数据中心b:(10000000,20000000];数据中心c:(20000000,30000000]。图4中的各个模块可以有设置在一个设备中,也可以设置在多个设备中。一个模块的功能可以由一个设备实现,也可以由多个设备实现。以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1