CN113505176A - 分布式系统集群在线分片扩容方法及装置 - Google Patents

分布式系统集群在线分片扩容方法及装置 Download PDF

Info

Publication number
CN113505176A
CN113505176A CN202110773730.5A CN202110773730A CN113505176A CN 113505176 A CN113505176 A CN 113505176A CN 202110773730 A CN202110773730 A CN 202110773730A CN 113505176 A CN113505176 A CN 113505176A
Authority
CN
China
Prior art keywords
cluster
newly added
original
sequence number
segment interval
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.)
Pending
Application number
CN202110773730.5A
Other languages
English (en)
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 CN202110773730.5A priority Critical patent/CN113505176A/zh
Publication of CN113505176A publication Critical patent/CN113505176A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Abstract

一种分布式系统集群在线分片扩容方法及装置,可用于金融领域或其他领域。方法包括:对新增集群进行集群编号,在集群路由配置规则中设置新增集群的序号段区间;序号段区间中的序号为连续且单调递增的数字;接收外部数据请求,确定外部数据请求中业务字段对应的哈希值;若原始集群中集群数据数量小于其序号段区间的序号个数,则根据哈希值确定对应的原始集群的集群编号,将集群数据路由至对应的原始集群;若原始集群中集群数据数量不小于其序号段区间中的序号个数,则根据哈希值确定对应的新增集群的集群编号,将集群数据路由至对应的新增集群。本发明避免了集群扩容大量数据迁移,几乎不需要变更时间,降低对业务系统造成的影响,节省了资源成本。

Description

分布式系统集群在线分片扩容方法及装置
技术领域
本发明涉及分布式系统技术领域,尤指一种分布式系统集群在线分片扩容方法及装置。
背景技术
目前,一个新的业务系统刚上线时,业务量较小,为了节省资源和成本,一般采用最小集群部署。对于采用单元化或微服务架构的系统,数据库和应用容器合并部署。数据库分片一般采用业务字段hash后对初始集群取模的方式确定数据所在集群(其中业务字段即为hash要素),公式表示为:mod(hash(业务字段),集群数n)。业务上线初期集群数n较小,在同城双活的部署架构下,n一般取双数,两个园区对等部署,比如n=2。后续随着业务量增加,集群数需要扩容时。对于7×24小时业务,为了不影响业务连续性,将扩容停机时间在正常投产时间内完成。目前常用的做法可采取双倍扩容方式,即集群数扩容后为n×2,扩容后业务数据在新集群的分片计算公式为:mod(hash(业务字段),集群数n*2)。
按双倍扩容方式,原来集群0中的数据扩容后必然在新集群0和集群2中,原来集群1的数据将扩容后将在新集群1和集群3。利用数据库半同步复制技术,可以实现数据的在线扩容。然而,实际生产可能数据分布并不均匀,某些集群的业务比较活跃,数据量增加较快,这些集群的数据库性能容量很快不足。而每次都双倍扩容不仅浪费了资源,而且每次扩容涉及全量数据迁移,影响面较大,工作量也较大。
发明内容
针对现有技术中存在的问题,本发明实施例的主要目的在于提供一种分布式系统集群在线分片扩容方法及装置,实现集群在线分片扩容,保证业务的连续性,减少数据复制迁移的工作量等。
为了实现上述目的,本发明实施例提供一种分布式系统集群在线分片扩容方法,所述方法包括:
对新增集群进行集群编号,在分布式系统的集群路由配置规则中设置所述新增集群对应的序号段区间;其中,所述集群路由配置规则包括原始集群的集群编号及序号段区间,所述原始集群与新增集群的序号段区间中的序号为连续且单调递增的数字;
接收外部数据请求,并利用哈希算法,确定所述外部数据请求中的业务字段对应的哈希值;
若所述原始集群中集群数据数量小于其序号段区间的序号个数,则根据所述哈希值确定所述业务字段对应的原始集群的集群编号,并将所述业务字段对应的集群数据路由至对应的原始集群;
若所述原始集群中集群数据数量不小于其序号段区间中的序号个数,则根据所述哈希值确定所述业务字段对应的新增集群的集群编号,并将所述业务字段对应的集群数据路由至对应的新增集群。
可选的,在本发明一实施例中,所述对新增集群进行集群编号包括:
对分布式系统中新搭建的集群设备对应的新增集群进行集群编号,并关闭所述新增集群的服务开关。
可选的,在本发明一实施例中,所述在分布式系统的集群路由配置规则中设置所述新增集群对应的序号段区间包括:
根据所述新增集群的集群编号及原始集群的序号段区间,在集群路由配置规则的集群信息列表中增加所述新增集群对应的序号段区间,并打开新增集群的服务开关。
可选的,在本发明一实施例中,所述根据所述哈希值确定所述业务字段对应的原始集群的集群编号包括:
将所述哈希值与所述原始集群的集群编号进行比对,确定所述业务字段对应的原始集群的集群编号。
本发明实施例还提供一种分布式系统集群在线分片扩容装置,所述装置包括:
新增集群模块,用于对新增集群进行集群编号,在分布式系统的集群路由配置规则中设置所述新增集群对应的序号段区间;其中,所述集群路由配置规则包括原始集群的集群编号及序号段区间,所述原始集群与新增集群的序号段区间中的序号为连续且单调递增的数字;
哈希值模块,用于接收外部数据请求,并利用哈希算法,确定所述外部数据请求中的业务字段对应的哈希值;
第一路由模块,用于若所述原始集群中集群数据数量小于其序号段区间的序号个数,则根据所述哈希值确定所述业务字段对应的原始集群的集群编号,并将所述业务字段对应的集群数据路由至对应的原始集群;
第二路由模块,用于若所述原始集群中集群数据数量不小于其序号段区间中的序号个数,则根据所述哈希值确定所述业务字段对应的新增集群的集群编号,并将所述业务字段对应的集群数据路由至对应的新增集群。
可选的,在本发明一实施例中,所述新增集群模块还用于对分布式系统中新搭建的集群设备对应的新增集群进行集群编号,并关闭所述新增集群的服务开关。
可选的,在本发明一实施例中,所述新增集群模块还用于根据所述新增集群的集群编号及原始集群的序号段区间,在集群路由配置规则的集群信息列表中增加所述新增集群对应的序号段区间,并打开新增集群的服务开关。
可选的,在本发明一实施例中,所述第一路由模块还用于将所述哈希值与所述原始集群的集群编号进行比对,确定所述业务字段对应的原始集群的集群编号。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
本发明通过基于hash要素单调递增逐步增加集群的方式,实现在分布式系统下的分片扩容,避免了集群扩容大量数据迁移,几乎不需要变更时间,降低了对业务系统造成的影响,节省了资源成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为双倍集群扩容数据分片拆分示意图;
图2为本发明实施例一种分布式系统集群在线分片扩容方法的流程图;
图3为本发明实施例中在线分片扩容示意图;
图4为本发明一具体实施例中分布式系统集群在线分片扩容架构示意图;
图5为本发明一具体实施例中在线分片扩容流程图;
图6为本发明实施例一种分布式系统集群在线分片扩容装置的结构示意图;
图7为本发明一实施例所提供的电子设备的结构示意图。
具体实施方式
本发明实施例提供一种分布式系统集群在线分片扩容方法及装置,可用于金融领域或其他领域,需要说明的是,本发明的分布式系统集群在线分片扩容方法及装置可用于金融领域,也可用于除金融领域之外的任意领域,本发明的分布式系统集群在线分片扩容方法及装置应用领域不做限定。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前常用的做法可采取双倍扩容方式,数据扩容后分布如图1所示,即双倍集群扩容数据分片拆分示意图,图中所示方案的扩容大致步骤如下:
1、在原各个集群数据库增加跨园区半同步备库,待数据同步完成。
2、修改路由配置,集群数扩容为原集群数的2倍,使用新的路由算法:mod(hash(业务字段),集群数n*2),同时新扩容业务暂停对外服务。
3、将半同步备库修改为主库,新增集群连接新增的主库。如图1,业务集群1使用原集群1的备库,业务集群2使用原集群0的备库。
4、新扩容集群开始承接服务。
5、删除各个集群中的冗余数据。
按双倍扩容方式,原来集群0中的数据扩容后必然在新集群0和集群2中,原来集群1的数据将扩容后将在新集群1和集群3。利用数据库半同步复制技术,可以实现数据的在线扩容。然而,实际生产可能数据分布并不均匀,某些集群的业务比较活跃,数据量增加较快,这些集群的数据库性能容量很快不足。而每次都双倍扩容不仅浪费了资源,而且每次扩容涉及全量数据迁移,影响面较大,工作量也较大。
如图2所示为本发明实施例一种分布式系统集群在线分片扩容方法的流程图,本发明实施例提供的分布式系统集群在线分片扩容方法的执行主体包括但不限于计算机。图中所示方法包括:
步骤S1,对新增集群进行集群编号,在分布式系统的集群路由配置规则中设置所述新增集群对应的序号段区间;其中,所述集群路由配置规则包括原始集群的集群编号及序号段区间,所述原始集群与新增集群的序号段区间中的序号为连续且单调递增的数字。
其中,如图3所示为本发明实施例中在线分片扩容示意图,具体的,在分布式系统中,例如用于分片的业务字段A,即hash要素是单调递增的,比如从0开始到999999999的逐步递增的数字,根据业务开展情况确定每个集群承载的业务量,比如每两个集群承载999999个序号对应的业务量。上线初期为了节约成本只有两个集群,则集群信息列表为{[0-999999]:(0,1)},代表0和1两个集群,[0-999999]为0集群与1集群共同承载的序号段区间。
进一步的,当999999个序号将耗尽不足,回启用新的号段。具体的,在分布式系统中搭建新集群设备,并在分布式系统的集群路由配置规则中,对新增集群进行设置。
具体的,例如原集群路由配置规则中集群信息列表为{[0-999999]:(0,1)},999999个序号将耗尽,则设置新增集群编号为2和3。集群信息列表改成{[0-999999]:(0,1),[1000000-1999999]:(2,3)},代表了新增两个新子集群2和3,原来的0和1集群保持不变。
进一步的,原始集群与新增集群的序号段区间中的序号为连续且单调递增的数字,例如,原始集群为0集群和1集群,对应的序号段区间为[0-999999],则新增集群对应的序号段区间应与原始集群序号段区间连续,可以为[1000000-1999999]。
步骤S2,接收外部数据请求,并利用哈希算法,确定所述外部数据请求中的业务字段对应的哈希值。
其中,接收外部数据请求,根据外部数据请求中的业务字段,例如业务字段为A。将业务字段A作为集群分片字段,则计算业务字段的哈希值hash(A)。
步骤S3,若所述原始集群中集群数据数量小于其序号段区间的序号个数,则根据所述哈希值确定所述业务字段对应的原始集群的集群编号,并将所述业务字段对应的集群数据路由至对应的原始集群。
其中,若原始集群中集群数据数量小于其序号段区间的序号个数,说明原始集群的序号段区间中的序号并未被耗尽,则计算哈希值与原始集群个数的余数值,即mod(hash(A),2)。
进一步的,将余数值与集群路由配置规则中集群信息列表进行比对,例如余数值是0,则将外部数据请求对应的集群数据路由到0集群。
步骤S4,若所述原始集群中集群数据数量不小于其序号段区间中的序号个数,则根据所述哈希值确定所述业务字段对应的新增集群的集群编号,并将所述业务字段对应的集群数据路由至对应的新增集群。
其中,若所述原始集群中集群数据数量不小于其序号段区间中的序号个数,说明原始集群的序号段区间中的序号已被耗尽。例如,当原始集群的0-999999序号耗尽,则新集群序号启用。对新增集群的外部数据请求的路由计算方式与上述方式类似,计算哈希值与新增集群个数的余数值,即使用mod(hash(A),2)计算余数值。
进一步的,将余数值与集群路由配置规则中集群信息列表进行比对,例如余数值是0,此时序号0与2集群对应,则将外部数据请求对应的集群数据路由到2集群。
作为本发明的一个实施例,对新增集群进行集群编号包括:对分布式系统中新搭建的集群设备对应的新增集群进行集群编号,并关闭所述新增集群的服务开关。
其中,在分布式系统中搭建新集群设备,并在分布式系统的集群路由配置规则中,对新增集群进行设置。具体的,原始集群序号为0和1,则新增集群序号可以设为2和3。
进一步的,因为新增集群对应的路由还未修改,所以不会接收业务,因此,关闭新增集群的服务开关。
作为本发明的一个实施例,在分布式系统的集群路由配置规则中设置所述新增集群对应的序号段区间包括:根据所述新增集群的集群编号及原始集群的序号段区间,在集群路由配置规则的集群信息列表中增加所述新增集群对应的序号段区间,并打开新增集群的服务开关。
其中,原始集群与新增集群的序号段区间中的序号为连续且单调递增的数字,例如,原始集群为0集群和1集群,对应的序号段区间为[0-999999],则新增集群对应的序号段区间应与原始集群序号段区间连续,可以为[1000000-1999999]。
进一步的,新增集群对应的路由配置规则设置完成后,可以接收外部数据请求,则打开新增集群的服务开关。
作为本发明的一个实施例,根据所述哈希值确定所述业务字段对应的原始集群的集群编号包括:将所述哈希值与所述原始集群的集群编号进行比对,确定所述业务字段对应的原始集群的集群编号。
其中,计算哈希值与原始集群个数的余数值,即mod(hash(A),2)。将余数值与集群路由配置规则中集群信息列表进行比对,例如余数值是0,则将外部数据请求对应的集群数据路由到0集群。
作为本发明一具体实施例,如图4所示为分布式系统集群在线分片扩容架构示意图,由配置中心、接入网关层和业务处理层三大部分组成。其中配置中心保存路由配置信息和集群流量控制开关,接入网关层和业务处理层都访问配置中心获取相关配置。
其中,本发明利用hash要素字段单调递增特性和集群数据都是围绕该要素开展的,指定每个集群hash要素的序号段,逐步增加集群个数。比如假设业务是按客户维度开展,而客编是9位单调递增的数字,则系统可以约定每个集群支撑客编数,如0和1集群支持[0-999999]序号段,当0集群序号使用达到80%时,启用2和3集群,序号段是[1000000-1999999]。只需将相关参数数据同步到新集群即可,可以实现业务不中断在线升级,比双倍扩容方式节约资源,系统扩容对客户无感等优势。
在分布式系统中,用于分片的业务字段A,即hash要素是单调递增的,比如从0开始到999999999的逐步递增的数字,根据业务开展情况确定每个集群承载的业务量,比如每两个集群承载999999个序号对应的业务量。上线初期为了节约成本只有两个集群,则配置中心保存集群信息列表{[0-999999]:(0,1)},代表0和1两个集群。则计算分片规则是:
(1)判断A在那个序号段区间,假设在0-999999之间。
(2)使用mod(hash(A),2),将得出的余数与配置中心的信息列表(0,1)的序号,比如是0,则路由到0集群。
其中,图5为在线分片扩容的方法流程图,假设业务量不断增加,0-999999即将耗尽不足,启用新的号段,大致步骤如下:
步骤S101,搭建新集群相关设备并上线,集群编号是2和3,因为路由还未修改,所以不会接收业务。
步骤S102,修改配置中心的集群路由配置,改成{[0-999999]:(0,1),[1000000-1999999]:(2,3)},新增两个新子集群2和3,原来的0和1集群保持不变,继续接收请求;
步骤S103,新集群开始接收请求。当0-999999序号耗尽,则新集群序号启用;新集群请求的路由计算方式类似,使用mod(hash(A),2)计算余数,将得出的余数是配置中心的信息列表(2,3)的序号,比如是0,则路由到2集群。
进一步的,如图3所示为基于hash要素单调递增分片扩容的示意图,随着业务量的增长,集群数逐步增加。当然如果原来的预分配的集群压力不大,可以给原集群增加序号段来,计算分片时,能匹配多个序号段即可,比如{([0-999999],[2000000-2999999]):(0,1),[1000000-1999999]:(2,3)}。如此可以对集群的数据处理进行动态调整。
本发明利用对分表分库业务字段单调递增的特性,逐步增加集群的方式,实现业务增长时集群进行在线扩容。可以保证业务的连续性,减少数据复制量和迁移工作量,升级过程对全量客户无感等。
本发明通过基于hash要素单调递增逐步增加集群的方式,实现在分布式系统下的分片扩容,避免了集群扩容大量数据迁移,几乎不需要变更时间,降低了对业务系统造成的影响,节省了资源成本。
如图6所示为本发明实施例一种分布式系统集群在线分片扩容装置的结构示意图,图中所示装置包括:
新增集群模块10,用于对新增集群进行集群编号,在分布式系统的集群路由配置规则中设置所述新增集群对应的序号段区间;其中,所述集群路由配置规则包括原始集群的集群编号及序号段区间,所述原始集群与新增集群的序号段区间中的序号为连续且单调递增的数字。
其中,在分布式系统中,例如用于分片的业务字段A,即hash要素是单调递增的,比如从0开始到999999999的逐步递增的数字,根据业务开展情况确定每个集群承载的业务量,比如每两个集群承载999999个序号对应的业务量。上线初期为了节约成本只有两个集群,则集群信息列表为{[0-999999]:(0,1)},代表0和1两个集群,[0-999999]为0集群与1集群共同承载的序号段区间。
进一步的,当999999个序号将耗尽不足,回启用新的号段。具体的,在分布式系统中搭建新集群设备,并在分布式系统的集群路由配置规则中,对新增集群进行设置。
具体的,例如原集群路由配置规则中集群信息列表为{[0-999999]:(0,1)},999999个序号将耗尽,则设置新增集群编号为2和3。集群信息列表改成{[0-999999]:(0,1),[1000000-1999999]:(2,3)},代表了新增两个新子集群2和3,原来的0和1集群保持不变。
进一步的,原始集群与新增集群的序号段区间中的序号为连续且单调递增的数字,例如,原始集群为0集群和1集群,对应的序号段区间为[0-999999],则新增集群对应的序号段区间应与原始集群序号段区间连续,可以为[1000000-1999999]。
哈希值模块20,用于接收外部数据请求,并利用哈希算法,确定所述外部数据请求中的业务字段对应的哈希值。
其中,接收外部数据请求,根据外部数据请求中的业务字段,例如业务字段为A。将业务字段A作为集群分片字段,则计算业务字段的哈希值hash(A)。
第一路由模块30,用于若所述原始集群中集群数据数量小于其序号段区间的序号个数,则根据所述哈希值确定所述业务字段对应的原始集群的集群编号,并将所述业务字段对应的集群数据路由至对应的原始集群。
其中,若原始集群中集群数据数量小于其序号段区间的序号个数,说明原始集群的序号段区间中的序号并未被耗尽,则计算哈希值与原始集群个数的余数值,即mod(hash(A),2)。
进一步的,将余数值与集群路由配置规则中集群信息列表进行比对,例如余数值是0,则将外部数据请求对应的集群数据路由到0集群。
第二路由模块40,用于若所述原始集群中集群数据数量不小于其序号段区间中的序号个数,则根据所述哈希值确定所述业务字段对应的新增集群的集群编号,并将所述业务字段对应的集群数据路由至对应的新增集群。
其中,若所述原始集群中集群数据数量不小于其序号段区间中的序号个数,说明原始集群的序号段区间中的序号已被耗尽。例如,当原始集群的0-999999序号耗尽,则新集群序号启用。对新增集群的外部数据请求的路由计算方式与上述方式类似,计算哈希值与新增集群个数的余数值,即使用mod(hash(A),2)计算余数值。
进一步的,将余数值与集群路由配置规则中集群信息列表进行比对,例如余数值是0,此时序号0与2集群对应,则将外部数据请求对应的集群数据路由到2集群。
作为本发明的一个实施例,所述新增集群模块还用于对分布式系统中新搭建的集群设备对应的新增集群进行集群编号,并关闭所述新增集群的服务开关。
作为本发明的一个实施例,所述新增集群模块还用于根据所述新增集群的集群编号及原始集群的序号段区间,在集群路由配置规则的集群信息列表中增加所述新增集群对应的序号段区间,并打开新增集群的服务开关。
作为本发明的一个实施例,所述第一路由模块还用于将所述哈希值与所述原始集群的集群编号进行比对,确定所述业务字段对应的原始集群的集群编号。
基于与上述一种分布式系统集群在线分片扩容方法相同的申请构思,本发明还提供了上述一种分布式系统集群在线分片扩容装置。由于该一种分布式系统集群在线分片扩容装置解决问题的原理与一种分布式系统集群在线分片扩容方法相似,因此该一种分布式系统集群在线分片扩容装置的实施可以参见一种分布式系统集群在线分片扩容方法的实施,重复之处不再赘述。
本发明通过基于hash要素单调递增逐步增加集群的方式,实现在分布式系统下的分片扩容,避免了集群扩容大量数据迁移,几乎不需要变更时间,降低了对业务系统造成的影响,节省了资源成本。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
如图7所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图7中所示的所有部件;此外,电子设备600还可以包括图7中没有示出的部件,可以参考现有技术。
如图7所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种分布式系统集群在线分片扩容方法,其特征在于,所述方法包括:
对新增集群进行集群编号,在分布式系统的集群路由配置规则中设置所述新增集群对应的序号段区间;其中,所述集群路由配置规则包括原始集群的集群编号及序号段区间,所述原始集群与新增集群的序号段区间中的序号为连续且单调递增的数字;
接收外部数据请求,并利用哈希算法,确定所述外部数据请求中的业务字段对应的哈希值;
若所述原始集群中集群数据数量小于其序号段区间的序号个数,则根据所述哈希值确定所述业务字段对应的原始集群的集群编号,并将所述业务字段对应的集群数据路由至对应的原始集群;
若所述原始集群中集群数据数量不小于其序号段区间中的序号个数,则根据所述哈希值确定所述业务字段对应的新增集群的集群编号,并将所述业务字段对应的集群数据路由至对应的新增集群。
2.根据权利要求1所述的方法,其特征在于,所述对新增集群进行集群编号包括:
对分布式系统中新搭建的集群设备对应的新增集群进行集群编号,并关闭所述新增集群的服务开关。
3.根据权利要求2所述的方法,其特征在于,所述在分布式系统的集群路由配置规则中设置所述新增集群对应的序号段区间包括:
根据所述新增集群的集群编号及原始集群的序号段区间,在集群路由配置规则的集群信息列表中增加所述新增集群对应的序号段区间,并打开新增集群的服务开关。
4.根据权利要求1所述的方法,其特征在于,所述根据所述哈希值确定所述业务字段对应的原始集群的集群编号包括:
将所述哈希值与所述原始集群的集群编号进行比对,确定所述业务字段对应的原始集群的集群编号。
5.一种分布式系统集群在线分片扩容装置,其特征在于,所述装置包括:
新增集群模块,用于对新增集群进行集群编号,在分布式系统的集群路由配置规则中设置所述新增集群对应的序号段区间;其中,所述集群路由配置规则包括原始集群的集群编号及序号段区间,所述原始集群与新增集群的序号段区间中的序号为连续且单调递增的数字;
哈希值模块,用于接收外部数据请求,并利用哈希算法,确定所述外部数据请求中的业务字段对应的哈希值;
第一路由模块,用于若所述原始集群中集群数据数量小于其序号段区间的序号个数,则根据所述哈希值确定所述业务字段对应的原始集群的集群编号,并将所述业务字段对应的集群数据路由至对应的原始集群;
第二路由模块,用于若所述原始集群中集群数据数量不小于其序号段区间中的序号个数,则根据所述哈希值确定所述业务字段对应的新增集群的集群编号,并将所述业务字段对应的集群数据路由至对应的新增集群。
6.根据权利要求5所述的装置,其特征在于,所述新增集群模块还用于对分布式系统中新搭建的集群设备对应的新增集群进行集群编号,并关闭所述新增集群的服务开关。
7.根据权利要求6所述的装置,其特征在于,所述新增集群模块还用于根据所述新增集群的集群编号及原始集群的序号段区间,在集群路由配置规则的集群信息列表中增加所述新增集群对应的序号段区间,并打开新增集群的服务开关。
8.根据权利要求5所述的装置,其特征在于,所述第一路由模块还用于将所述哈希值与所述原始集群的集群编号进行比对,确定所述业务字段对应的原始集群的集群编号。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至4任一项所述方法的计算机程序。
CN202110773730.5A 2021-07-08 2021-07-08 分布式系统集群在线分片扩容方法及装置 Pending CN113505176A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110773730.5A CN113505176A (zh) 2021-07-08 2021-07-08 分布式系统集群在线分片扩容方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110773730.5A CN113505176A (zh) 2021-07-08 2021-07-08 分布式系统集群在线分片扩容方法及装置

Publications (1)

Publication Number Publication Date
CN113505176A true CN113505176A (zh) 2021-10-15

Family

ID=78012220

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110773730.5A Pending CN113505176A (zh) 2021-07-08 2021-07-08 分布式系统集群在线分片扩容方法及装置

Country Status (1)

Country Link
CN (1) CN113505176A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115145893A (zh) * 2022-06-27 2022-10-04 招商银行股份有限公司 集群在线扩容方法、系统、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115145893A (zh) * 2022-06-27 2022-10-04 招商银行股份有限公司 集群在线扩容方法、系统、设备及存储介质
CN115145893B (zh) * 2022-06-27 2024-04-02 招商银行股份有限公司 集群在线扩容方法、系统、设备及存储介质

Similar Documents

Publication Publication Date Title
JP4944686B2 (ja) ソフトウェア更新方法および携帯端末装置
US8819403B2 (en) Method and device for performing data synchronization of a snapshot image by selectively reloading data from nonvolatile to volatile memory after wakeup from hibernation
CN102521289B (zh) 一种文件同步方法、装置及系统
WO2015157904A1 (zh) 一种文件同步方法、服务器及终端
CN104918114A (zh) 一种操作系统升级方法及装置
CN113505176A (zh) 分布式系统集群在线分片扩容方法及装置
CN112055242A (zh) 视频同步播放方法、装置、系统和存储介质
CN111858050A (zh) 服务器集群混合部署方法、集群管理节点及相关系统
CN112612851B (zh) 多中心数据同步方法及装置
CN113507390A (zh) 分布式系统集群在线分片扩容方法及装置
CN113220421B (zh) 一种服务器集群的管理方法、管理服务器及管理系统
CN113505177A (zh) 分布式系统集群在线分片扩容方法及装置
CN111782260A (zh) 灰度发布方法及灰度发布装置
US20200089801A1 (en) Disturbance-free partitioning and migration of data from one storage account to another storage account
CN111698337B (zh) 建立通信连接的方法、装置及设备
CN111858765A (zh) 应用于数据库扩容场景的数据处理方法、装置及系统
CN115292293A (zh) 分布式缓存系统的数据迁移方法和装置
CN114385596A (zh) 数据处理方法及装置
CN114610816A (zh) 数据库扩容方法、装置及系统
CN110569231A (zh) 数据迁移方法、装置、设备和介质
CN111026425A (zh) 服务更新方法、装置、服务器及介质
CN115543963A (zh) 数据库服务供应方法和装置
CN115378809B (zh) 一种软件版本升级方法及装置
CN112445574B (zh) 应用容器多集群迁移方法及装置
CN112910971B (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