CN117435569A - 缓存系统动态扩容方法、装置、设备、介质和程序产品 - Google Patents
缓存系统动态扩容方法、装置、设备、介质和程序产品 Download PDFInfo
- Publication number
- CN117435569A CN117435569A CN202311175739.1A CN202311175739A CN117435569A CN 117435569 A CN117435569 A CN 117435569A CN 202311175739 A CN202311175739 A CN 202311175739A CN 117435569 A CN117435569 A CN 117435569A
- Authority
- CN
- China
- Prior art keywords
- target cluster
- data
- cluster
- capacity
- written
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 68
- 238000012544 monitoring process Methods 0.000 claims abstract description 22
- 238000004064 recycling Methods 0.000 claims description 12
- 238000011084 recovery Methods 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000004590 computer program Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 14
- 230000005012 migration Effects 0.000 description 12
- 238000013508 migration Methods 0.000 description 12
- 230000015654 memory Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000000903 blocking effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种缓存系统动态扩容方法,涉及云计算技术领域,可以应用于金融技术领域。所述方法包括:响应于上游应用的数据写入请求,设置监控线程实时获取第一目标集群剩余容量;根据所述第一目标集群剩余容量和所述上游应用的待写入数据量创建部署第二目标集群;在所述第二目标集群部署完成后,将所述第二目标集群的配置信息更新至路由层,其中,所述路由层用于存储集群网际协议地址以及待写入数据的转发;以及启动数据同步线程将所述第一目标集群的存量数据同步至所述第二目标集群。本公开还提供了一种缓存系统动态扩容装置、设备、存储介质和程序产品。
Description
技术领域
本公开涉及云计算技术领域,具体地涉及缓存系统扩容技术领域,更具体地涉及一种缓存系统动态扩容方法、装置、设备、介质和程序产品。
背景技术
金融行业为了提升用户体验,通常把常用的数据放置于缓存系统中,缓存系统相对于文件系统和数据库系统,能快速响应服务请求。缓存系统,以redis cluster为例,目前常用的扩容方案是采用原生的扩容机制。缓存系统通常有如下几种使用场景:缓存参数类数据、缓存会话类数据以及批量写入缓存系统的各种数据,如客户类数据、商品类数据等。在金融行业应用场景下,在批量写入数据的时候有可能出现存储不够,如果采用原生的redis cluster扩容方案,会导致影响联机交易。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
鉴于上述问题,本公开提供了一种缓存系统动态扩容方法、装置、设备、存储介质和程序产品。
根据本公开的第一个方面,提供了一种缓存系统动态扩容方法,所述方法包括:
响应于上游应用的数据写入请求,设置监控线程实时获取第一目标集群剩余容量;
根据所述第一目标集群剩余容量和所述上游应用的待写入数据量创建部署第二目标集群;
在所述第二目标集群部署完成后,将所述第二目标集群的配置信息更新至路由层,其中,所述路由层用于存储集群网际协议地址以及待写入数据的转发;以及
启动数据同步线程将所述第一目标集群的存量数据同步至所述第二目标集群。
根据本公开的实施例,所述根据所述第一目标集群剩余容量和所述上游应用的待写入数据量创建部署第二目标集群包括:
当确定所述第一目标集群剩余容量小于第一预设阈值时,向所述上游应用发送待写入数据量查询请求;
根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量确定缓存系统扩容需求信息;以及
当确定缓存系统需要扩容时,根据所述缓存系统扩容需求信息创建部署第二目标集群。
根据本公开的实施例,所述根据所述第一目标集群剩余容量和所述上游应用的待写入数据量创建部署第二目标集群还包括:
当确定所述第一目标集群剩余容量小于第二预设阈值时,向所述上游应用发送待写入数据量查询请求;
根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量确定第二目标集群总容量;
创建部署第二目标集群并将所述第二目标集群的配置信息更新至路由层;以及
启动数据同步线程将所述第一目标集群的存量数据同步至所述第二目标集群。
根据本公开的实施例,所述根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量确定缓存系统扩容需求信息包括:
计算所述第一目标集群剩余容量和所述上游应用返回的待写入数据量的差值;
若所述差值小于等于第三预设阈值,则确定缓存系统需要扩容,其中,所述第三预设阈值与所述第一目标集群总容量相关;
根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量计算第二目标集群总容量;以及
若所述差值大于第三预设阈值,则确定缓存系统无需扩容。
根据本公开的实施例,在启动数据同步线程之后还包括:
记录第一目标集群消费消息中间件偏移位置信息;以及
在完成数据同步后,第二目标集群根据所述消息中间件偏移位置信息继续消费待写入数据。
根据本公开的实施例,在完成数据同步后还包括:
基于预设规则对所述第一目标集群的机器资源进行回收。
根据本公开的实施例,所述基于预设规则对所述第一目标集群的机器资源进行回收包括:
当确认第二目标集群读写状态正常且第二目标集群业务数据交易状态正常后,根据预设回收时间对所述第一目标集群的机器资源进行回收。
本公开的第二方面提供了一种缓存系统动态扩容装置,所述装置包括:
集群容量监控模块,用于响应于上游应用的数据写入请求,设置监控线程实时获取第一目标集群剩余容量;
容量扩容模块,用于根据所述第一目标集群剩余容量和所述上游应用的待写入数据量创建部署第二目标集群;
集群配置信息更新模块,用于在所述第二目标集群部署完成后,将所述第二目标集群的配置信息更新至路由层,其中,所述路由层用于存储集群网际协议地址以及待写入数据的转发;以及
数据同步模块,用于启动数据同步线程将所述第一目标集群的存量数据同步至所述第二目标集群。
根据本公开的实施例,容量扩容模块包括:第一确定子模块、第二确定子模块和目标集群第一部署子模块。
第一确定子模块,用于当确定所述第一目标集群剩余容量小于第一预设阈值时,向所述上游应用发送待写入数据量查询请求;
第二确定子模块,用于根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量确定缓存系统扩容需求信息;以及
目标集群第一部署子模块,用于当确定缓存系统需要扩容时,根据所述缓存系统扩容需求信息创建部署第二目标集群。
根据本公开的实施例,容量扩容模块还包括:第三确定子模块、第四确定子模块、目标集群第二部署子模块和数据同步子模块。
第三确定子模块,用于当确定所述第一目标集群剩余容量小于第二预设阈值时,向所述上游应用发送待写入数据量查询请求;
第四确定子模块,用于根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量确定第二目标集群总容量;
目标集群第二部署子模块,用于创建部署第二目标集群并将所述第二目标集群的配置信息更新至路由层;以及
数据同步子模块,用于启动数据同步线程将所述第一目标集群的存量数据同步至所述第二目标集群。
根据本公开的实施例,所述第二确定子模块包括:第一计算单元、第一确定单元、第二计算单元和第二确定单元。
第一计算单元,用于计算所述第一目标集群剩余容量和所述上游应用返回的待写入数据量的差值;
第一确定单元,用于若所述差值小于等于第三预设阈值,则确定缓存系统需要扩容,其中,所述第三预设阈值与所述第一目标集群总容量相关;
第二计算单元,用于根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量计算第二目标集群总容量;以及
第二确定单元,用于若所述差值大于第三预设阈值,则确定缓存系统无需扩容。
根据本公开的实施例,还包括:记录模块和数据写入模块。
记录模块,用于记录第一目标集群消费消息中间件偏移位置信息;以及
数据写入模块,用于在完成数据同步后,第二目标集群根据所述消息中间件偏移位置信息继续消费待写入数据。
根据本公开的实施例,还包括:资源回收模块。
资源回收模块,用于基于预设规则对所述第一目标集群的机器资源进行回收。
根据本公开的实施例,所述资源回收模块包括:资源回收子模块。
资源回收子模块,用于当确认第二目标集群读写状态正常且第二目标集群业务数据交易状态正常后,根据预设回收时间对所述第一目标集群的机器资源进行回收。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述缓存系统动态扩容方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述缓存系统动态扩容方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述缓存系统动态扩容方法。
通过本公开的实施例提供的一种缓存系统动态扩容方法,通过设置监控线程实时获取第一目标集群剩余容量,根据所述第一目标集群剩余容量和所述上游应用的待写入数据量创建部署第二目标集群。在第二目标集群部署完成后,将所述第二目标集群的配置信息更新至路由层,其中,所述路由层用于存储集群网际协议地址以及待写入数据的转发;启动数据同步线程将所述第一目标集群的存量数据同步至所述第二目标集群。相较于相关技术,本公开实施例提供的缓存系统动态扩容方法基于路由层机制,保证增量数据可以快速切换到新集群,扩容期间不影响联机交易,同时对于存量数据,启动数据同步线程进行数据同步。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了相关技术中原生redis集群的扩容方法的示意图;
图2a示意性示出了根据本公开实施例的缓存系统动态扩容装置的系统架构图;
图2b示意性示出了根据本公开实施例的缓存系统动态扩容方法、装置、设备、存储介质和程序产品的应用场景图;
图3示意性示出了根据本公开一实施例提供的一种缓存系统动态扩容方法的流程图;
图4示意性示出了根据本公开另一实施例提供的一种缓存系统动态扩容方法的流程图;
图5示意性示出了根据本公开又一实施例提供的一种缓存系统动态扩容方法的流程图;
图6示意性示出了根据本公开再一实施例提供的一种缓存系统动态扩容方法的流程图;
图7示意性示出了根据本公开再一实施例提供的一种缓存系统动态扩容方法的流程图;
图8示意性示出了根据本公开实施例的一种缓存系统动态扩容装置的结构框图;以及
图9示意性示出了根据本公开实施例的适于实现缓存系统动态扩容方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
常用的缓存系统有redis cluster,本公开以redis cluster举例说明。为了更好了理解本公开的技术问题,首先通过图1介绍redis cluster相关的扩容机制。图1示意性示出了相关技术中原生redis集群的扩容方法的示意图。如图1所示,原生redis cluster如果进行扩容,需要把一部分插槽slot和数据迁移到新的节点。每个master节点把一部分slot和数据迁移到新的node04.其中slot迁移过程如下:1.假设原有3个master,每个master负责16384/3,约等于5461个slot。2.加入一个新的master后,每个master负责16384/4=4096个slot。3.确定后迁移计划后,每个master将超过4096个slot的部分迁移至新的master中,然后开始以slot为单位进行迁移。由于迁移过程是同步的,在目标节点执行restore指令到原节点删除key之间,原节点的主线程处于阻塞状态,直到key被删除成功。如果迁移过程突然出现网路故障,整个slot迁移只进行了一半,这时两个节点仍然会被标记为中间过滤状态,即″migrating″和″importing″,下次迁移工具连接上之后,会继续进行迁移。在迁移过程中,如果每个key的内容都很小,那么迁移过程很快,不会影响到客户端的正常访问。如果key的内容很大,由于迁移一个key的迁移过程是阻塞的,就会同时导致原节点和目标节点的卡顿,影响集群的稳定性。因此redis集群原生扩容方案可能会出现阻塞卡顿问题,影响联机交易。
基于上述技术问题,本公开的实施例提供了一种缓存系统动态扩容方法,所述方法包括:响应于上游应用的数据写入请求,设置监控线程实时获取第一目标集群剩余容量;根据所述第一目标集群剩余容量和所述上游应用的待写入数据量创建部署第二目标集群;在所述第二目标集群部署完成后,将所述第二目标集群的配置信息更新至路由层,其中,所述路由层用于存储集群网际协议地址以及待写入数据的转发;以及启动数据同步线程将所述第一目标集群的存量数据同步至所述第二目标集群。
图2a示意性示出了根据本公开实施例的缓存系统动态扩容装置所在系统架构图。如图2a所示,本公开实施例提供的缓存系统架构包括:消息中间件kafka、路由层、redis集群。上游应用需要写入数据至redis集群时,首先将数据写入消息中间件中,由路由层消费数据,并根据预先存储的集群配置信息,将数据转发至redis集群。Redis集群启动监控线程实时监控集群容量使用情况,当满足预设条件时,向上游应用查询待写入数据量,根据待写入数据量和集群容量使用情况确定是否进行扩容操作。当确定扩容之后,部署新集群,并将新集群的配置信息更新至路由层,并完成数据同步。
图2b示意性示出了根据本公开实施例的缓存系统动态扩容方法、装置、设备、存储介质和程序产品的应用场景图。
如图2b所示,根据该实施例的应用场景200可以包括缓存系统动态扩容场景。网络204用以在终端设备201、202、203和服务器205之间提供通信链路的介质。网络204可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备201、202、203通过网络204与服务器205交互,以接收或发送消息等。终端设备201、202、203上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备201、202、203可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器205可以是缓存系统动态扩容服务器,该服务器可以执行本公开实施例提供的缓存系统动态扩容方法,设置监控线程实时获取第一目标集群剩余容量;根据所述第一目标集群剩余容量和所述上游应用的待写入数据量创建部署第二目标集群;在所述第二目标集群部署完成后,将所述第二目标集群的配置信息更新至路由层,其中,所述路由层用于存储集群网际协议地址以及待写入数据的转发;以及启动数据同步线程将所述第一目标集群的存量数据同步至所述第二目标集群。
需要说明的是,本公开实施例所提供的缓存系统动态扩容方法一般可以由服务器205执行。相应地,本公开实施例所提供的缓存系统动态扩容装置一般可以设置于服务器205中。本公开实施例所提供的缓存系统动态扩容方法也可以由不同于服务器205且能够与终端设备201、202、203和/或服务器205通信的服务器或服务器集群执行。相应地,本公开实施例所提供的缓存系统动态扩容装置也可以设置于不同于服务器205且能够与终端设备201、202、203和/或服务器205通信的服务器或服务器集群中。
应该理解,图2b中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
需要说明的是,本公开实施例确定的缓存系统动态扩容方法和装置可用于云计算技术领域,也可用于金融技术领域,还可用于除金融领域之外的任意领域,本公开实施例确定的缓存系统动态扩容方法和装置的应用领域不做限定。
以下将基于图2a描述的系统架构和图2b描述的应用场景,通过图3~图7对本公开实施例的缓存系统动态扩容方法进行详细描述。
图3示意性示出了根据本公开一实施例提供的一种缓存系统动态扩容方法的流程图。如图3所示,该实施例的缓存系统动态扩容方法包括操作S210~操作S220,该方法可以由服务器或其他计算设备执行。
在操作S210,响应于上游应用的数据写入请求,设置监控线程实时获取第一目标集群剩余容量。
在操作S220,根据所述第一目标集群剩余容量和所述上游应用的待写入数据量创建部署第二目标集群。
在操作S230,在所述第二目标集群部署完成后,将所述第二目标集群的配置信息更新至路由层。
在操作S240,启动数据同步线程将所述第一目标集群的存量数据同步至所述第二目标集群。
根据本公开的实施例,所述路由层用于存储集群网际协议地址以及待写入数据的转发。
一个示例中,当上游应用写入数据时,先将数据写入消息中间件中,例如kafka中。在上游应用和redis集群中间有一层路由层,此路由层保存redis集群的集群信息,应用通过此路由层访问rediscluster,路由层从kafka进行消费数据写入到redis集群。本公开中的路由层相当于在redis集群上增加一层代理节点,主要用于存储集群网际协议地址以及待写入数据的转发,当下游rediscluster ip发生变化时,路由层更新rediscluster的配置信息,上游应用无感知。
一个示例中,当上游应用写入数据至缓存系统时,设置监控线程实时获取第一目标集群剩余容量,根据所述第一目标集群剩余容量和所述上游应用的待写入数据量确定具体的扩容策略,即是否需要创建部署第二目标集群。具体扩容过程可参见图4~图6的操作步骤。在所述第二目标集群部署完成后,将所述第二目标集群的配置信息更新至路由层,路由层断开第一目标集群,此时上游应用并无感知访问的集群已经从第一目标集群切换至第二目标集群。
一个示例中,在创建第二目标集群之后,启动数据同步线程将所述第一目标集群的存量数据同步至所述第二目标集群。完成缓存系统的动态扩容,对用户无感知,切扩容过程不影响联机交易。
通过本公开的实施例提供的一种缓存系统动态扩容方法,通过设置监控线程实时获取第一目标集群剩余容量,根据所述第一目标集群剩余容量和所述上游应用的待写入数据量创建部署第二目标集群。在第二目标集群部署完成后,将所述第二目标集群的配置信息更新至路由层,其中,所述路由层用于存储集群网际协议地址以及待写入数据的转发;启动数据同步线程将所述第一目标集群的存量数据同步至所述第二目标集群。相较于相关技术,本公开实施例提供的缓存系统动态扩容方法基于路由层机制,保证增量数据可以快速切换到新集群,扩容期间不影响联机交易,同时对于存量数据,启动数据同步线程进行数据同步。
下面将结合图4~图6介绍本公开实施例中缓存系统动态扩容的判断逻辑。图4示意性示出了根据本公开另一实施例提供的一种缓存系统动态扩容方法的流程图。图5示意性示出了根据本公开又一实施例提供的一种缓存系统动态扩容方法的流程图。图6示意性示出了根据本公开再一实施例提供的一种缓存系统动态扩容方法的流程图。
如图4所示,操作S220包括操作S310~操作S330。
在操作S310,当确定所述第一目标集群剩余容量小于第一预设阈值时,向所述上游应用发送待写入数据量查询请求。
在操作S320,根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量确定缓存系统扩容需求信息。
在操作S330,当确定缓存系统需要扩容时,根据所述缓存系统扩容需求信息创建部署第二目标集群。
一个示例中,当第一目标集群已用容量大于50%时,即确定第一目标集群剩余容量小于第一预设阈值,在本公开实施例中,第一预设阈值可以是50%,监控线程会向上游写入数据的应用发送数据查询请求,获取还有多少数据量待写入,根据获取到的待写入数据量x1、第一目标集群剩余容量x2、第一目标集群总容量x3三者进行比较。
如图5所示,操作S320包括操作S321~操作S324。
在操作S321,计算所述第一目标集群剩余容量和所述上游应用返回的待写入数据量的差值。
在操作S322,若所述差值小于等于第三预设阈值,则确定缓存系统需要扩容,其中,所述第三预设阈值与所述第一目标集群总容量相关。
在操作S323,根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量计算第二目标集群总容量。
在操作S324,若所述差值大于第三预设阈值,则确定缓存系统无需扩容。
一个示例中,计算所述第一目标集群剩余容量和所述上游应用返回的待写入数据量的差值x2-x1,如果该差值小于等于第三预设阈值,则表征第一目标集群剩余容量不足以满足待写入数据量,则确定缓存系统需要扩容,需要搭建新的集群。第三预设阈值与第一目标集群总容量x3相关,为在本公开实施例中,第三预设阈值例如可以是x3*10%。根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量确定第二目标集群总容量y*90%≥x1+(x3-x2)。根据第二目标集群总容量创建部署集群。
在另一种可行的实施例,如图6所示,操作S220还包括S410~操作S440。
在操作S410,当确定所述第一目标集群剩余容量小于第二预设阈值时,向所述上游应用发送待写入数据量查询请求;
在操作S420,根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量确定第二目标集群总容量。
在操作S430,创建部署第二目标集群并将所述第二目标集群的配置信息更新至路由层。
在操作S440,启动数据同步线程将所述第一目标集群的存量数据同步至所述第二目标集群。
一个示例中,当确定所述第一目标集群剩余容量小于第二预设阈值时,第二预设阈值例如可以是10%,则立即执行扩容操作,向所述上游应用发送待写入数据量查询请求,根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量确定第二目标集群总容量。
图7示意性示出了根据本公开再一实施例提供的一种缓存系统动态扩容方法的流程图。
在启动数据同步线程之后,在操作S240之后还包括操作S250~操作S270。
在操作S250,记录第一目标集群消费消息中间件偏移位置信息。
在操作S260,在完成数据同步后,第二目标集群根据所述消息中间件偏移位置信息继续消费待写入数据。
在操作S270,基于预设规则对所述第一目标集群的机器资源进行回收。
根据本公开的实施例,当确认第二目标集群读写状态正常且第二目标集群业务数据交易状态正常后,根据预设回收时间对所述第一目标集群的机器资源进行回收。
一个示例中,在搭建部署新的集群后,由于第一目标集群中存在部分数据需要同步至第二目标集群汇总,启动单独的数据同步线程从第一目标集群消费数据到第二目标集群。记录第一目标集群消费的kafka offset位置信息,等待数据同步完成后,第二目标集群根据上述记录的kafka offset位置信息从kafka继续消费数据,保证数据不丢失。
一个示例中,当第二目标集群更新到路由层配置信息后,在保证第二目标集群使用无误、数据无误后,为保证设备重复利用,将回收第一目标集群的机器资源,回收时间可以人为配置。当确认第二目标集群读写状态正常且第二目标集群业务数据交易状态正常后,根据预设回收时间对所述第一目标集群的机器资源进行回收。
基于上述缓存系统动态扩容方法,本公开还提供了一种缓存系统动态扩容装置。以下将结合图8对该装置进行详细描述。
图8示意性示出了根据本公开实施例的一种缓存系统动态扩容装置的结构框图。如图8所示,该实施例的缓存系统动态扩容装置800包括集群容量监控模块810、容量扩容模块820、集群配置信息更新模块830和数据同步模块840。
集群容量监控模块810用于响应于上游应用的数据写入请求,设置监控线程实时获取第一目标集群剩余容量。在一实施例中,集群容量监控模块810以用于执行前文描述的操作S210,在此不再赘述。
容量扩容模块820用于根据所述第一目标集群剩余容量和所述上游应用的待写入数据量创建部署第二目标集群。在一实施例中,容量扩容模块820可以用于执行前文描述的操作S220,在此不再赘述。
集群配置信息更新模块830用于在所述第二目标集群部署完成后,将所述第二目标集群的配置信息更新至路由层,其中,所述路由层用于存储集群网际协议地址以及待写入数据的转发。在一实施例中,集群配置信息更新模块830可以用于执行前文描述的操作S2230,在此不再赘述。
数据同步模块840用于启动数据同步线程将所述第一目标集群的存量数据同步至所述第二目标集群。在一实施例中,数据同步模块840可以用于执行前文描述的操作S240,在此不再赘述。
根据本公开的实施例,容量扩容模块包括:第一确定子模块、第二确定子模块和目标集群第一部署子模块。
第一确定子模块,用于当确定所述第一目标集群剩余容量小于第一预设阈值时,向所述上游应用发送待写入数据量查询请求;在一实施例中,第一确定子模块可以用于执行前文描述的操作S310,在此不再赘述。
第二确定子模块,用于根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量确定缓存系统扩容需求信息。在一实施例中,第二确定子模块可以用于执行前文描述的操作S320,在此不再赘述。
目标集群第一部署子模块,用于当确定缓存系统需要扩容时,根据所述缓存系统扩容需求信息创建部署第二目标集群。在一实施例中,目标集群第一部署子模块可以用于执行前文描述的操作S330,在此不再赘述。
根据本公开的实施例,容量扩容模块还包括:第三确定子模块、第四确定子模块、目标集群第二部署子模块和数据同步子模块。
第三确定子模块,用于当确定所述第一目标集群剩余容量小于第二预设阈值时,向所述上游应用发送待写入数据量查询请求。在一实施例中,第三确定子模块可以用于执行前文描述的操作S410,在此不再赘述。
第四确定子模块,用于根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量确定第二目标集群总容量。在一实施例中,第四确定子模块可以用于执行前文描述的操作S420,在此不再赘述。
目标集群第二部署子模块,用于创建部署第二目标集群并将所述第二目标集群的配置信息更新至路由层。在一实施例中,目标集群第二部署子模块可以用于执行前文描述的操作S430,在此不再赘述。
数据同步子模块,用于启动数据同步线程将所述第一目标集群的存量数据同步至所述第二目标集群。在一实施例中,数据同步子模块可以用于执行前文描述的操作S440,在此不再赘述。
根据本公开的实施例,所述第二确定子模块包括:第一计算单元、第一确定单元、第二计算单元和第二确定单元。
第一计算单元,用于计算所述第一目标集群剩余容量和所述上游应用返回的待写入数据量的差值在一实施例中,第一计算单元可以用于执行前文描述的操作S321,在此不再赘述。
第一确定单元,用于若所述差值小于等于第三预设阈值,则确定缓存系统需要扩容,其中,所述第三预设阈值与所述第一目标集群总容量相关。在一实施例中,第一确定单元可以用于执行前文描述的操作S322,在此不再赘述。
第二计算单元,用于根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量计算第二目标集群总容量。在一实施例中,第二计算单元可以用于执行前文描述的操作S323,在此不再赘述。
第二确定单元,用于若所述差值大于第三预设阈值,则确定缓存系统无需扩容。在一实施例中,第二确定单元可以用于执行前文描述的操作S324,在此不再赘述。
根据本公开的实施例,还包括:记录模块和数据写入模块。
记录模块,用于记录第一目标集群消费消息中间件偏移位置信息。在一实施例中,记录模块可以用于执行前文描述的操作S250,在此不再赘述。
数据写入模块,用于在完成数据同步后,第二目标集群根据所述消息中间件偏移位置信息继续消费待写入数据。在一实施例中,数据写入模块可以用于执行前文描述的操作S260,在此不再赘述。
根据本公开的实施例,还包括:资源回收模块。
资源回收模块,用于基于预设规则对所述第一目标集群的机器资源进行回收。在一实施例中,资源回收模块可以用于执行前文描述的操作S270,在此不再赘述。
根据本公开的实施例,所述资源回收模块包括:资源回收子模块。
资源回收子模块,用于当确认第二目标集群读写状态正常且第二目标集群业务数据交易状态正常后,根据预设回收时间对所述第一目标集群的机器资源进行回收。在一实施例中,资源回收子模块可以用于执行前文描述的操作S270,在此不再赘述。
根据本公开的实施例,集群容量监控模块810、容量扩容模块820、集群配置信息更新模块830和数据同步模块840中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,集群容量监控模块810、容量扩容模块820、集群配置信息更新模块830和数据同步模块840中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,集群容量监控模块810、容量扩容模块820、集群配置信息更新模块830和数据同步模块840中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图9示意性示出了根据本公开实施例的适于实现缓存系统动态扩容方法的电子设备的方框图。
如图9所示,根据本公开实施例的电子设备900包括处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 903中,存储有电子设备900操作所需的各种程序和数据。处理器901、ROM902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接口905也连接至总线904。电子设备900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器909也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器909上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的缓存系统动态扩容方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM 903以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的缓存系统动态扩容方法。
在该计算机程序被处理器901执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分909被下载和安装,和/或从可拆卸介质911被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (10)
1.一种缓存系统动态扩容方法,其特征在于,所述方法包括:
响应于上游应用的数据写入请求,设置监控线程实时获取第一目标集群剩余容量;
根据所述第一目标集群剩余容量和所述上游应用的待写入数据量创建部署第二目标集群;
在所述第二目标集群部署完成后,将所述第二目标集群的配置信息更新至路由层,其中,所述路由层用于存储集群网际协议地址以及待写入数据的转发;以及
启动数据同步线程将所述第一目标集群的存量数据同步至所述第二目标集群。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一目标集群剩余容量和所述上游应用的待写入数据量创建部署第二目标集群包括:
当确定所述第一目标集群剩余容量小于第一预设阈值时,向所述上游应用发送待写入数据量查询请求;
根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量确定缓存系统扩容需求信息;以及
当确定缓存系统需要扩容时,根据所述缓存系统扩容需求信息创建部署第二目标集群。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一目标集群剩余容量和所述上游应用的待写入数据量创建部署第二目标集群还包括:
当确定所述第一目标集群剩余容量小于第二预设阈值时,向所述上游应用发送待写入数据量查询请求;
根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量确定第二目标集群总容量;
创建部署第二目标集群并将所述第二目标集群的配置信息更新至路由层;以及
启动数据同步线程将所述第一目标集群的存量数据同步至所述第二目标集群。
4.根据权利要求2所述的方法,其特征在于,所述根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量确定缓存系统扩容需求信息包括:
计算所述第一目标集群剩余容量和所述上游应用返回的待写入数据量的差值;
若所述差值小于等于第三预设阈值,则确定缓存系统需要扩容,其中,所述第三预设阈值与所述第一目标集群总容量相关;
根据所述上游应用返回的待写入数据量、所述第一目标集群剩余容量和第一目标集群总容量计算第二目标集群总容量;以及
若所述差值大于第三预设阈值,则确定缓存系统无需扩容。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在启动数据同步线程之后还包括:
记录第一目标集群消费消息中间件偏移位置信息;以及
在完成数据同步后,第二目标集群根据所述消息中间件偏移位置信息继续消费待写入数据。
6.根据权利要求5所述的方法,其特征在于,在完成数据同步后还包括:
基于预设规则对所述第一目标集群的机器资源进行回收。
7.根据权利要求6所述的方法,其特征在于,所述基于预设规则对所述第一目标集群的机器资源进行回收包括:
当确认第二目标集群读写状态正常且第二目标集群业务数据交易状态正常后,根据预设回收时间对所述第一目标集群的机器资源进行回收。
8.一种缓存系统动态扩容装置,其特征在于,所述装置包括:
集群容量监控模块,用于响应于上游应用的数据写入请求,设置监控线程实时获取第一目标集群剩余容量;
容量扩容模块,用于根据所述第一目标集群剩余容量和所述上游应用的待写入数据量创建部署第二目标集群;
集群配置信息更新模块,用于在所述第二目标集群部署完成后,将所述第二目标集群的配置信息更新至路由层,其中,所述路由层用于存储集群网际协议地址以及待写入数据的转发;以及
数据同步模块,用于启动数据同步线程将所述第一目标集群的存量数据同步至所述第二目标集群。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~7中任一项所述的缓存系统动态扩容方法。
10.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~7中任一项所述的缓存系统动态扩容方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311175739.1A CN117435569A (zh) | 2023-09-12 | 2023-09-12 | 缓存系统动态扩容方法、装置、设备、介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311175739.1A CN117435569A (zh) | 2023-09-12 | 2023-09-12 | 缓存系统动态扩容方法、装置、设备、介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117435569A true CN117435569A (zh) | 2024-01-23 |
Family
ID=89554327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311175739.1A Pending CN117435569A (zh) | 2023-09-12 | 2023-09-12 | 缓存系统动态扩容方法、装置、设备、介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117435569A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118170737A (zh) * | 2024-05-11 | 2024-06-11 | 中移(苏州)软件技术有限公司 | 数据处理方法、装置及相关设备 |
-
2023
- 2023-09-12 CN CN202311175739.1A patent/CN117435569A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118170737A (zh) * | 2024-05-11 | 2024-06-11 | 中移(苏州)软件技术有限公司 | 数据处理方法、装置及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110427284B (zh) | 数据处理方法、分布式系统、计算机系统和介质 | |
CN111880956B (zh) | 一种数据同步方法和装置 | |
CN110196680B (zh) | 数据处理方法、装置及存储介质 | |
US20180139280A1 (en) | Methods and apparatuses for cluster switching | |
CN110784498B (zh) | 一种个性化数据容灾方法及装置 | |
CN110633046A (zh) | 一种分布式系统的存储方法、装置、存储设备及存储介质 | |
US20130007377A1 (en) | Message oriented middleware with integrated rules engine | |
CN117435569A (zh) | 缓存系统动态扩容方法、装置、设备、介质和程序产品 | |
CN111399753B (zh) | 写入图片的方法和装置 | |
CN114172917B (zh) | 一种分布式缓存系统及其部署的方法 | |
CN111694639A (zh) | 进程容器地址的更新方法、装置和电子设备 | |
CN113127430B (zh) | 镜像信息处理方法、装置、计算机可读介质及电子设备 | |
CN111800511A (zh) | 同步登录态的处理方法、系统、设备及可读存储介质 | |
CN112052104A (zh) | 基于多机房实现的消息队列的管理方法及电子设备 | |
CN116594752A (zh) | 流程调度方法、装置、设备、介质和程序产品 | |
US10678453B2 (en) | Method and device for checking false sharing in data block deletion using a mapping pointer and weight bits | |
CN115174596A (zh) | 一种设备远程复制方法、装置以及介质 | |
CN111435320B (zh) | 一种数据处理方法及其装置 | |
US10951537B1 (en) | Adjustable receive queue for processing packets in a network device | |
CN111858234A (zh) | 一种任务执行方法、装置、设备、介质 | |
CN109005059A (zh) | 一种实现Redis自动备份的系统及方法 | |
CN115484149B (zh) | 网络切换方法、网络切换装置、电子设备及存储介质 | |
CN112749042B (zh) | 一种应用运行方法和装置 | |
CN109542588B (zh) | 一种用于在云环境下管理虚拟设备的方法和装置 | |
CN116303513A (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 |