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

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

Info

Publication number
CN113507390A
CN113507390A CN202110773751.7A CN202110773751A CN113507390A CN 113507390 A CN113507390 A CN 113507390A CN 202110773751 A CN202110773751 A CN 202110773751A CN 113507390 A CN113507390 A CN 113507390A
Authority
CN
China
Prior art keywords
cluster
fragmented
distributed system
configuration rule
fragmentation
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
CN202110773751.7A
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 CN202110773751.7A priority Critical patent/CN113507390A/zh
Publication of CN113507390A publication Critical patent/CN113507390A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种分布式系统集群在线分片扩容方法及装置,可用于金融领域或其他领域。方法包括:根据预设的集群最大分片数,更新分布式系统中的集群路由配置规则;根据更新后的集群路由配置规则,在分布式系统的多个集群中确定待分片集群,对待分片集群进行拆分,得到新分片集群;根据接收到的外部数据请求,利用哈希算法确定外部数据请求对应的哈希值,计算哈希值与集群最大分片数的余数值;将余数值与更新后的集群路由配置规则进行比对,确定余数值对应的指定集群,将余数值对应的集群数据路由至指定集群。本发明实现在分布式系统下的分片扩容,对于热点集群进行拆分扩容,减少了扩容的节点、变更时间和对业务系统造成的影响,节省了资源成本。

Description

分布式系统集群在线分片扩容方法及装置
技术领域
本发明涉及分布式系统技术领域,尤指一种分布式系统集群在线分片扩容方法及装置。
背景技术
目前,一个新的业务系统刚上线时,业务量较小,为了节省资源和成本,一般采用最小集群部署。对于采用单元化或微服务架构的系统,数据库和应用容器合并部署。数据库分片一般采用业务字段hash后对初始集群取模的方式确定数据所在集群,公式表示为:mod(hash(业务字段),集群数n)。业务上线初期集群数n较小,在同城双活的部署架构下,n一般取双数,两个园区对等部署,比如n=2。后续随着业务量增加,集群数需要扩容时。对于7×24小时业务,为了不影响业务连续性,将扩容停机时间在正常投产时间内完成。目前常用的做法可采取双倍扩容方式,数据扩容后分布如图1所示,即集群数扩容后为n×2,扩容后业务数据在新集群的分片计算公式为:mod(hash(业务字段),集群数n*2)。
按双倍扩容方式,原来集群0中的数据扩容后必然在新集群0和集群2中,原来集群1的数据将扩容后将在新集群1和集群3。利用数据库半同步复制技术,可以实现数据的在线扩容。然而,实际生产可能数据分布并不均匀,某些集群的业务比较活跃,数据量增加较快,这些集群的数据库性能容量很快不足。而每次都双倍扩容不仅浪费了资源,而且每次扩容涉及全量数据迁移,影响面较大,工作量也较大。
发明内容
针对现有技术中存在的问题,本发明实施例的主要目的在于提供一种分布式系统集群在线分片扩容方法及装置,实现对指定业务集群进行扩容,降低扩容对整个业务系统的影响,减少迁移的工作量。
为了实现上述目的,本发明实施例提供一种分布式系统集群在线分片扩容方法,所述方法包括:
根据预设的集群最大分片数,更新分布式系统中的集群路由配置规则;
根据更新后的集群路由配置规则,在所述分布式系统的多个集群中确定待分片集群,并对所述待分片集群进行拆分,得到新分片集群;
根据接收到的外部数据请求,利用哈希算法确定所述外部数据请求对应的哈希值,并计算所述哈希值与所述集群最大分片数的余数值;
将所述余数值与更新后的集群路由配置规则进行比对,确定所述余数值对应的指定集群,并将所述余数值对应的集群数据路由至所述指定集群。
可选的,在本发明一实施例中,所述根据预设的集群最大分片数,更新分布式系统中的集群路由配置规则包括:
根据分布式系统中各集群的业务量及数据库容量,确定待分片集群的序号及集群拆分数;
根据所述待分片集群的序号、集群拆分数及预设的集群最大分片数,对所述分布式系统中的集群路由配置规则进行更新。
可选的,在本发明一实施例中,所述根据更新后的集群路由配置规则,在所述分布式系统的多个集群中确定待分片集群,并对所述待分片集群进行拆分,得到新分片集群包括:
根据更新后的集群路由配置规则,在所述分布式系统的多个集群中确定待分片集群;
关闭所述待分片集群的服务开关,对所述待分片集群进行拆分,得到新分片集群。
可选的,在本发明一实施例中,所述方法还包括:将待分片集群中的备数据库作为所述新分片集群的主数据库,并打开所述待分片集群的服务开关。
可选的,在本发明一实施例中,所述方法还包括:删除所述分布式系统中各集群中的冗余数据。
本发明实施例还提供一种分布式系统集群在线分片扩容装置,所述装置包括:
路由配置规则模块,用于根据预设的集群最大分片数,更新分布式系统中的集群路由配置规则;
集群分片模块,用于根据更新后的集群路由配置规则,在所述分布式系统的多个集群中确定待分片集群,并对所述待分片集群进行拆分,得到新分片集群;
哈希计算模块,用于根据接收到的外部数据请求,利用哈希算法确定所述外部数据请求对应的哈希值,并计算所述哈希值与所述集群最大分片数的余数值;
数据路由模块,用于将所述余数值与更新后的集群路由配置规则进行比对,确定所述余数值对应的指定集群,并将所述余数值对应的集群数据路由至所述指定集群。
可选的,在本发明一实施例中,所述路由配置规则模块包括:
集群拆分数单元,用于根据分布式系统中各集群的业务量及数据库容量,确定待分片集群的序号及集群拆分数;
规则更新单元,用于根据所述待分片集群的序号、集群拆分数及预设的集群最大分片数,对所述分布式系统中的集群路由配置规则进行更新。
可选的,在本发明一实施例中,所述集群分片模块包括:
待分片集群单元,用于根据更新后的集群路由配置规则,在所述分布式系统的多个集群中确定待分片集群;
新分片集群单元,用于关闭所述待分片集群的服务开关,对所述待分片集群进行拆分,得到新分片集群。
可选的,在本发明一实施例中,所述装置还包括:服务开关模块,用于将待分片集群中的备数据库作为所述新分片集群的主数据库,并打开所述待分片集群的服务开关。
可选的,在本发明一实施例中,所述装置还包括:冗余数据模块,用于删除所述分布式系统中各集群中的冗余数据。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
本发明通过基于哈希计算的预分配方式,实现在分布式系统下的分片扩容,通过指定集群最大分片数,实现对于热点集群进行拆分,对指定性能容量不足的集群进行扩容,减少了扩容的节点、变更时间和对业务系统造成的影响,节省了资源成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为双倍集群扩容数据分片拆分示意图;
图2为本发明实施例一种分布式系统集群在线分片扩容方法的流程图;
图3为本发明实施例中在线分片扩容示意图;
图4为本发明实施例中更新集群路由配置规则的流程图;
图5为本发明实施例中拆分待分片集群的流程图;
图6为本发明一具体实施例中分布式系统集群在线分片扩容架构示意图;
图7为本发明一具体实施例中在线分片扩容流程图;
图8为本发明实施例一种分布式系统集群在线分片扩容装置的结构示意图;
图9为本发明实施例中路由配置规则模块的结构示意图;
图10为本发明实施例中集群分片模块的结构示意图;
图11为本发明一具体实施例中分布式系统集群在线分片扩容装置的结构示意图;
图12为本发明另一具体实施例中分布式系统集群在线分片扩容装置的结构示意图;
图13为本发明一实施例所提供的电子设备的结构示意图。
具体实施方式
本发明实施例提供一种分布式系统集群在线分片扩容方法及装置,可用于金融领域或其他领域,需要说明的是,本发明的分布式系统集群在线分片扩容方法及装置可用于金融领域,也可用于除金融领域之外的任意领域,本发明的分布式系统集群在线分片扩容方法及装置应用领域不做限定。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前常用的做法可采取双倍扩容方式,数据扩容后分布如图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所示为本发明实施例中在线分片扩容示意图,具体的,设预估后续业务系统支持最大集群分片个数是1024,即未来将集群分片序号是0到1023。分布式系统上线初期为了节约资源,只有两个集群承载所有流量,假设分布式系统的0集群和1集群,则0集群承接[0-511]序号段的流量,1集群承接[512-1023]序号段的流量。那么,分布式系统的集群路由配置规则中的集群信息列表为{[0-511]:0,[512-1023]:1},代表0和1两个集群。
进一步的,假设集群0的业务量较大,数据库的容量不足,需要扩容,假设拆分2个集群。其中,可通过各集群业务量及数据库容量,来确定待分片集群。修改集群路由配置规则,改成{[0-255]:0,[256-511]:2,[512-1023]:1},代表0集群拆分成0和2,两个新分片集群。
步骤S2,根据更新后的集群路由配置规则,在所述分布式系统的多个集群中确定待分片集群,并对所述待分片集群进行拆分,得到新分片集群。
其中,根据更新后的集群路由配置规则,例如为{[0-255]:0,[256-511]:2,[512-1023]:1},将0集群拆分成0和2,两个新分片集群,原来的1集群保持不变。
进一步的,修改原0集群中的备库为新子集群的主库,原0集群的集群序号不变,新扩容集群的序号为2。
步骤S3,根据接收到的外部数据请求,利用哈希算法确定所述外部数据请求对应的哈希值,并计算所述哈希值与所述集群最大分片数的余数值。
其中,接收外部数据请求,根据外部数据请求中的业务字段,例如业务字段为A。将业务字段A作为集群分片字段,则利用哈希计算的分片规则是mod(hash(A),1024)。具体的,hash(A)为外部数据请求对应的哈希值,mod(hash(A),1024)代表了哈希值与集群最大分片数的余数值。
步骤S4,将所述余数值与更新后的集群路由配置规则进行比对,确定所述余数值对应的指定集群,并将所述余数值对应的集群数据路由至所述指定集群。
其中,将得出的余数值与集群路由配置规则的信息列表比较,如果能匹配上,则路由到指定集群。例如,mod(hash(A),1024)得数是256,和集群路由配置规则的集群信息列表比较,位于[256-511]区间,则2集群为指定集群,将与余数值对应的集群数据路由到2集群。
作为本发明的一个实施例,如图4所示,根据预设的集群最大分片数,更新分布式系统中的集群路由配置规则包括:
步骤S21,根据分布式系统中各集群的业务量及数据库容量,确定待分片集群的序号及集群拆分数;
步骤S22,根据所述待分片集群的序号、集群拆分数及预设的集群最大分片数,对所述分布式系统中的集群路由配置规则进行更新。
其中,通过各集群业务量及数据库容量,来确定待分片集群及集群拆分数,集群拆分数代表了将待分片集群拆分为几个新分片集群。分布式系统的集群路由配置规则中的集群信息列表记录有各集群的集群序号,例如0集群、1集群,还记录有各集群对应的序号段区间,例如集群信息列表可以为{[0-511]:0,[512-1023]:1}。
其中,预设集群最大分片数为1024,具体的,当前待分片集群的序号为0,即0集群,则可根据预设的集群分片数,例如集群分片数为2,表示将0集群分为2个新分片集群,此时更新后的集群路由配置规则中的集群信息列表为{[0-255]:0,[256-511]:2,[512-1023]:1}。
作为本发明的一个实施例,如图5所示,根据更新后的集群路由配置规则,在所述分布式系统的多个集群中确定待分片集群,并对所述待分片集群进行拆分,得到新分片集群包括:
步骤S31,根据更新后的集群路由配置规则,在所述分布式系统的多个集群中确定待分片集群;
步骤S32,关闭所述待分片集群的服务开关,对所述待分片集群进行拆分,得到新分片集群。
具体的,原集群信息列表可以为{[0-511]:0,[512-1023]:1},根据更新后的集群路由配置规则,例如为{[0-255]:0,[256-511]:2,[512-1023]:1},代表了将0集群拆分成0和2,两个新分片集群,原来的1集群保持不变。
进一步的,在对待分片集群进行拆分时,无法接受外部数据请求,则关闭待分片集群的服务开关,再进行集群拆分。
在本实施例中,方法还包括:将待分片集群中的备数据库作为所述新分片集群的主数据库,并打开所述待分片集群的服务开关。
具体的,将0集群拆分为2个新分片集群,即0集群及2集群,修改原0集群中的备库为新分片集群的主库,原0集群的集群序号不变,新分片集群的序号为2,并打开0集群的服务开关,以接收外部数据请求。
在本实施例中,方法还包括:删除所述分布式系统中各集群中的冗余数据。
其中,在集群分片扩容后,根据集群路由配置规则,通过批量作业的方式,删除集群中非本集群的历史数据,即冗余数据。
在本发明一具体实施例中,如图6所示的分布式系统架构由配置中心、接入网关层和业务处理层三大部分组成。其中,配置中心保存路由配置信息和集群流量控制开关,接入网关层和业务处理层都访问配置中心获取相关配置。
其中,如图3所示,本发明利用mysql半同步机制,将指定集群的备库启用为新增集群的主库;同时利用hash预分配的方式实现子集群在线扩容。其中预分配的大小可以根据实际情况进行预估,可以预估一个较大值,便于以后扩展。
在分布式系统中,使用mysql作为联机数据库,采用一个主库,多个备库的高可用部署架构,备库采用半同步复制的方式,确保RPO=0。使用配置中心保存集群路由信息。假设预估后续业务系统支持最大集群分片个数是1024,即未来将集群分片序号是0到1023。上线初期为了节约资源,只有两个集群承载所有流量,假设分布式0集群和1集群,则0集群承接[0-511]序号段的流量,1集群承接[512-1023]序号段的流量。则配置中心保存集群信息列表{[0-511]:0,[512-1023]:1},代表0和1两个集群。假设系统采用业务字段A作为集群分片字段,则计算分片规则是mod(hash(A),1024),将得出的余数与配置中心的信息列表比较,如果能匹配上,则路由到指定集群。比如mod(hash(A),1024)得数是256,和配置中心的路由配置比较,位于[0-511]区间,则路由到0集群。
其中,图7所示为在线分片扩容的方法流程图,假设0集群的业务量较大,数据库的容量不足,需要扩容,假设拆分2个集群,大致步骤如下:
步骤S101,修改配置中心的集群路由配置,改成{[0-255]:0,[256-511]:2,[512-1023]:1},代表0集群拆分成0和2两个新分片集群,原来的1集群保持不变。
步骤S102,修改配置中心集群0服务开关,接入网关读取该配置后,判断路由集群是0集群,则反馈系统在升级中;1集群正常接收外部请求;
步骤S103,修改原0集群中的备库为新分片集群的主库,原0集群的集群序号不变,新扩容集群的序号为2;
步骤S104,配置中心更新后的路由配置规则,并打开集群0服务开关,接入网关开始接收0集群和2集群的数据请求。比如mod(hash(A),1024)得数是256,和配置中心的路由配置比较,位于[256-511]区间,则路由到2集群。
步骤S105,删除旧数据。根据集群路由配置规则,通过批量作业的方式,删除集群0和2中非本集群的历史数据。
本发明基于mysql半同步复制技术实现数据的在线同步复制,在基于hash预分配的方式确定数据所在分片,对于需要扩容的集群,利用网关层屏蔽扩容集群的请求,保证数据在扩容期间的一致性,再利用半同步备库和hash预分配的方式,进行在线扩容。本发明可以保证业务的连续性,减少数据复制量和迁移工作量,缩短扩容时间,节约资源投入等。
如图8所示为本发明实施例一种分布式系统集群在线分片扩容装置的结构示意图,图中所示装置包括:
路由配置规则模块10,用于根据预设的集群最大分片数,更新分布式系统中的集群路由配置规则。
具体的,设预估后续业务系统支持最大集群分片个数是1024,即未来将集群分片序号是0到1023。分布式系统上线初期为了节约资源,只有两个集群承载所有流量,假设分布式系统的0集群和1集群,则0集群承接[0-511]序号段的流量,1集群承接[512-1023]序号段的流量。那么,分布式系统的集群路由配置规则中的集群信息列表为{[0-511]:0,[512-1023]:1},代表0和1两个集群。
进一步的,假设集群0的业务量较大,数据库的容量不足,需要扩容,假设拆分2个集群。其中,可通过各集群业务量及数据库容量,来确定待分片集群。修改集群路由配置规则,改成{[0-255]:0,[256-511]:2,[512-1023]:1},代表0集群拆分成0和2,两个新分片集群。
集群分片模块20,用于根据更新后的集群路由配置规则,在所述分布式系统的多个集群中确定待分片集群,并对所述待分片集群进行拆分,得到新分片集群。
其中,根据更新后的集群路由配置规则,例如为{[0-255]:0,[256-511]:2,[512-1023]:1},将0集群拆分成0和2,两个新分片集群,原来的1集群保持不变。
进一步的,修改原0集群中的备库为新子集群的主库,原0集群的集群序号不变,新扩容集群的序号为2。
哈希计算模块30,用于根据接收到的外部数据请求,利用哈希算法确定所述外部数据请求对应的哈希值,并计算所述哈希值与所述集群最大分片数的余数值。
其中,接收外部数据请求,根据外部数据请求中的业务字,例如业务字段为A。将业务字段A作为集群分片字段,则利用哈希计算的分片规则是mod(hash(A),1024)。具体的,hash(A)为外部数据请求对应的哈希值,mod(hash(A),1024)代表了哈希值与集群最大分片数的余数值。
数据路由模块40,用于将所述余数值与更新后的集群路由配置规则进行比对,确定所述余数值对应的指定集群,并将所述余数值对应的集群数据路由至所述指定集群。
其中,将得出的余数值与集群路由配置规则的信息列表比较,如果能匹配上,则路由到指定集群。例如,mod(hash(A),1024)得数是256,和集群路由配置规则的集群信息列表比较,位于[256-511]区间,则2集群为指定集群,将与余数值对应的集群数据路由到2集群。
作为本发明的一个实施例,如图9所示,所述路由配置规则模块10包括:
集群拆分数单元11,用于根据分布式系统中各集群的业务量及数据库容量,确定待分片集群的序号及集群拆分数;
规则更新单元12,用于根据所述待分片集群的序号、集群拆分数及预设的集群最大分片数,对所述分布式系统中的集群路由配置规则进行更新。
其中,通过各集群业务量及数据库容量,来确定待分片集群及集群拆分数,集群拆分数代表了将待分片集群拆分为几个新分片集群。分布式系统的集群路由配置规则中的集群信息列表记录有各集群的集群序号,例如0集群、1集群,还记录有各集群对应的序号段区间,例如集群信息列表可以为{[0-511]:0,[512-1023]:1}。
其中,预设集群最大分片数为1024,具体的,当前待分片集群的序号为0,即0集群,则可根据预设的集群分片数,例如集群分片数为2,表示将0集群分为2个新分片集群,此时更新后的集群路由配置规则中的集群信息列表为{[0-255]:0,[256-511]:2,[512-1023]:1}。
作为本发明的一个实施例,如图10所示,所述集群分片模块20包括:
待分片集群单元21,用于根据更新后的集群路由配置规则,在所述分布式系统的多个集群中确定待分片集群;
新分片集群单元22,用于关闭所述待分片集群的服务开关,对所述待分片集群进行拆分,得到新分片集群。
在本实施例中,如图11所示,所述装置还包括:服务开关模块50,用于将待分片集群中的备数据库作为所述新分片集群的主数据库,并打开所述待分片集群的服务开关。
在本实施例中,如图12所示,所述装置还包括:冗余数据模块60,用于删除所述分布式系统中各集群中的冗余数据。
基于与上述一种分布式系统集群在线分片扩容方法相同的申请构思,本发明还提供了上述一种分布式系统集群在线分片扩容装置。由于该一种分布式系统集群在线分片扩容装置解决问题的原理与一种分布式系统集群在线分片扩容方法相似,因此该一种分布式系统集群在线分片扩容装置的实施可以参见一种分布式系统集群在线分片扩容方法的实施,重复之处不再赘述。
本发明通过基于哈希计算的预分配方式,实现在分布式系统下的分片扩容,通过指定集群最大分片数,实现对于热点集群进行拆分,对指定性能容量不足的集群进行扩容,减少了扩容的节点、变更时间和对业务系统造成的影响,节省了资源成本。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
如图13所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图13中所示的所有部件;此外,电子设备600还可以包括图13中没有示出的部件,可以参考现有技术。
如图13所示,中央处理器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 (12)

1.一种分布式系统集群在线分片扩容方法,其特征在于,所述方法包括:
根据预设的集群最大分片数,更新分布式系统中的集群路由配置规则;
根据更新后的集群路由配置规则,在所述分布式系统的多个集群中确定待分片集群,并对所述待分片集群进行拆分,得到新分片集群;
根据接收到的外部数据请求,利用哈希算法确定所述外部数据请求对应的哈希值,并计算所述哈希值与所述集群最大分片数的余数值;
将所述余数值与更新后的集群路由配置规则进行比对,确定所述余数值对应的指定集群,并将所述余数值对应的集群数据路由至所述指定集群。
2.根据权利要求1所述的方法,其特征在于,所述根据预设的集群最大分片数,更新分布式系统中的集群路由配置规则包括:
根据分布式系统中各集群的业务量及数据库容量,确定待分片集群的序号及集群拆分数;
根据所述待分片集群的序号、集群拆分数及预设的集群最大分片数,对所述分布式系统中的集群路由配置规则进行更新。
3.根据权利要求1所述的方法,其特征在于,所述根据更新后的集群路由配置规则,在所述分布式系统的多个集群中确定待分片集群,并对所述待分片集群进行拆分,得到新分片集群包括:
根据更新后的集群路由配置规则,在所述分布式系统的多个集群中确定待分片集群;
关闭所述待分片集群的服务开关,对所述待分片集群进行拆分,得到新分片集群。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:将待分片集群中的备数据库作为所述新分片集群的主数据库,并打开所述待分片集群的服务开关。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:删除所述分布式系统中各集群中的冗余数据。
6.一种分布式系统集群在线分片扩容装置,其特征在于,所述装置包括:
路由配置规则模块,用于根据预设的集群最大分片数,更新分布式系统中的集群路由配置规则;
集群分片模块,用于根据更新后的集群路由配置规则,在所述分布式系统的多个集群中确定待分片集群,并对所述待分片集群进行拆分,得到新分片集群;
哈希计算模块,用于根据接收到的外部数据请求,利用哈希算法确定所述外部数据请求对应的哈希值,并计算所述哈希值与所述集群最大分片数的余数值;
数据路由模块,用于将所述余数值与更新后的集群路由配置规则进行比对,确定所述余数值对应的指定集群,并将所述余数值对应的集群数据路由至所述指定集群。
7.根据权利要求6所述的装置,其特征在于,所述路由配置规则模块包括:
集群拆分数单元,用于根据分布式系统中各集群的业务量及数据库容量,确定待分片集群的序号及集群拆分数;
规则更新单元,用于根据所述待分片集群的序号、集群拆分数及预设的集群最大分片数,对所述分布式系统中的集群路由配置规则进行更新。
8.根据权利要求6所述的装置,其特征在于,所述集群分片模块包括:
待分片集群单元,用于根据更新后的集群路由配置规则,在所述分布式系统的多个集群中确定待分片集群;
新分片集群单元,用于关闭所述待分片集群的服务开关,对所述待分片集群进行拆分,得到新分片集群。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:服务开关模块,用于将待分片集群中的备数据库作为所述新分片集群的主数据库,并打开所述待分片集群的服务开关。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:冗余数据模块,用于删除所述分布式系统中各集群中的冗余数据。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至5任一项所述方法的计算机程序。
CN202110773751.7A 2021-07-08 2021-07-08 分布式系统集群在线分片扩容方法及装置 Pending CN113507390A (zh)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=78012211

Family Applications (1)

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

Country Status (1)

Country Link
CN (1) CN113507390A (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 招商银行股份有限公司 集群在线扩容方法、系统、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615657A (zh) * 2014-12-31 2015-05-13 天津南大通用数据技术股份有限公司 一种节点支持多数据分片的分布式集群的扩容和缩容方法
CN106844510A (zh) * 2016-12-28 2017-06-13 北京五八信息技术有限公司 一种分布式数据库集群的数据迁移方法和装置
CN109683826A (zh) * 2018-12-26 2019-04-26 北京百度网讯科技有限公司 用于分布式存储系统的扩容方法和装置
CN110222030A (zh) * 2019-05-13 2019-09-10 福建天泉教育科技有限公司 数据库动态扩容的方法、存储介质
CN110287197A (zh) * 2019-06-28 2019-09-27 微梦创科网络科技(中国)有限公司 一种数据存储方法、迁移方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615657A (zh) * 2014-12-31 2015-05-13 天津南大通用数据技术股份有限公司 一种节点支持多数据分片的分布式集群的扩容和缩容方法
CN106844510A (zh) * 2016-12-28 2017-06-13 北京五八信息技术有限公司 一种分布式数据库集群的数据迁移方法和装置
CN109683826A (zh) * 2018-12-26 2019-04-26 北京百度网讯科技有限公司 用于分布式存储系统的扩容方法和装置
CN110222030A (zh) * 2019-05-13 2019-09-10 福建天泉教育科技有限公司 数据库动态扩容的方法、存储介质
CN110287197A (zh) * 2019-06-28 2019-09-27 微梦创科网络科技(中国)有限公司 一种数据存储方法、迁移方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FREE JOE: ""你应该了解的一些数据库概念!RDBMS vs NoSQL,分布式 vs 集群 ,分区 分表 分片 分库"", 《HTTPS://BLOG.CSDN.NET/WANGFEIJIU/ARTICLE/DETAILS/111877495》 *
YBB_STUDYRECORD: ""ElasticSearch 集群(搭建 分片配置 原理 ELK搭建 路由原理 脑裂 集群扩容)"", 《HTTPS://BLOG.CSDN.NET/M0_46690280/ARTICLE/DETAILS/108805710》 *

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
CN108268501B (zh) 一种在线数据迁移过程中的业务处理方法及装置
CN108829720B (zh) 数据处理方法及装置
CN102521289B (zh) 一种文件同步方法、装置及系统
CN111708841A (zh) 数据库数据同步方法及装置
WO2015157904A1 (zh) 一种文件同步方法、服务器及终端
CN109189326B (zh) 分布式集群的管理方法和装置
CN112162773A (zh) 差分升级方法及装置、存储介质、终端
CN112612851A (zh) 多中心数据同步方法及装置
CN113507390A (zh) 分布式系统集群在线分片扩容方法及装置
CN113505177A (zh) 分布式系统集群在线分片扩容方法及装置
CN116400855A (zh) 一种数据处理方法和数据存储系统
CN113220421B (zh) 一种服务器集群的管理方法、管理服务器及管理系统
CN113515344B (zh) 跨技术平台的虚拟机自动迁移方法及装置
CN113505176A (zh) 分布式系统集群在线分片扩容方法及装置
CN115955488B (zh) 基于副本冗余的分布式存储副本跨机房放置方法与装置
CN111698337B (zh) 建立通信连接的方法、装置及设备
CN110597467A (zh) 高可用数据零丢失存储系统及方法
CN112000850A (zh) 进行数据处理的方法、装置、系统及设备
US20200089801A1 (en) Disturbance-free partitioning and migration of data from one storage account to another storage account
CN115292293A (zh) 分布式缓存系统的数据迁移方法和装置
CN110569231B (zh) 数据迁移方法、装置、设备和介质
CN112910971B (zh) 多站点数据同步方法、装置及系统
CN114356378A (zh) 计算节点在线升级方法、装置、电子设备及存储介质
CN115098231A (zh) 一种跨数据中心的事务处理方法、装置以及设备
CN115421976A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20211015

RJ01 Rejection of invention patent application after publication