CN117687778A - Redis集群切换方法、装置、电子设备及存储介质 - Google Patents
Redis集群切换方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117687778A CN117687778A CN202311618182.4A CN202311618182A CN117687778A CN 117687778 A CN117687778 A CN 117687778A CN 202311618182 A CN202311618182 A CN 202311618182A CN 117687778 A CN117687778 A CN 117687778A
- Authority
- CN
- China
- Prior art keywords
- cluster
- redis cluster
- redis
- candidate
- dis
- 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 46
- 238000012544 monitoring process Methods 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 11
- 230000005856 abnormality Effects 0.000 claims description 4
- 230000036541 health Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 abstract description 4
- 238000004891 communication Methods 0.000 description 8
- 230000003862 health status Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
Abstract
本公开提出一种Redis集群切换方法、装置、电子设备及存储介质,涉及计算机、自动程序设计等技术领域。具体实现方案为:获取当前正在使用的第一Redis集群的可用状态、及第一Redis集群中的第一数据的类型;在第一Redis集群处于不可用状态的情况下,根据各候选Redis集群的描述信息及第一数据的类型中的至少一项,确定目标Redis集群;断开第一Redis集群的第一切换开关,并闭合目标Redis集群的第二切换开关;向服务端发送数据同步服务调用请求,其中,数据同步服务调用请求中包括第一数据、第一数据的类型及目标Redis集群的标识。由此,不仅提高了集群切换的灵活性和可靠性,而且通过自动数据同步服务,可以减少数据传输的耗时,保障了服务的持续可用性。
Description
技术领域
本公开涉及计算机、自动程序设计等技术领域,具体涉及一种Redis集群切换方法、装置、电子设备及存储介质。
背景技术
集群,能够通过增加服务器的数量,提供相同的服务,从而使服务器达到一个稳定、高效的状态。其中,分布式服务器群,特别是远程字典服务(Remote DictionaryServer,Redis)集群,以其具有复制、高可用和分片特性等众多特点广受青睐。
但在生产服务过程中,往往会出现Redis集群故障、不可用的情况,因此及时切换到Redis备用集群,来避免故障带来的影响和损失,是目前需要解决的问题。
发明内容
本公开旨在至少在一定程度上解决相关技术中的技术问题之一。
根据本公开第一方面,提供了一种Redis集群切换方法,由客户端执行,包括:
获取当前正在使用的第一Redis集群的可用状态、及所述第一Redis集群中的第一数据的类型;
在所述第一Redis集群处于不可用状态的情况下,根据各候选Redis集群的描述信息及所述第一数据的类型中的至少一项,确定目标Redis集群,其中,所述描述信息包括以下至少一项:优先级、所属的连接池、历史故障信息及资源信息;
断开所述第一Redis集群的第一切换开关,并闭合所述目标Redis集群的第二切换开关;
向服务端发送数据同步服务调用请求,其中,所述数据同步服务调用请求中包括所述第一数据、第一数据的类型及所述目标Redis集群的标识。
根据本公开第二方面,提供了一种Redis集群切换装置,配置在客户端,包括:
获取模块,用于获取当前正在使用的第一Redis集群的可用状态、及所述第一Redis集群中的第一数据的类型;
确定模块,用于在所述第一Redis集群处于不可用状态的情况下,根据各候选Redis集群的描述信息及所述第一数据的类型中的至少一项,确定目标Redis集群,其中,所述描述信息包括以下至少一项:优先级、所属的连接池、历史故障信息及资源信息;
控制模块,用于断开所述第一Redis集群的第一切换开关,并闭合所述目标Redis集群的第二切换开关;
发送模块,用于向服务端发送数据同步服务调用请求,其中,所述数据同步服务调用请求中包括所述第一数据、所述第一数据的类型及所述目标Redis集群的标识。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的Redis集群切换方法。
根据本公开第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如第一方面所述的Redis集群切换方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机指令,所述计算机指令在被处理器执行时实现如第一方面所述的Redis集群切换方法的步骤。
本公开提供的Redis集群切换方法、装置、电子设备及存储介质,存在如下有益效果:
本公开中,先获取当前正在使用的第一Redis集群的可用状态及第一Redis集群中的第一数据的类型,然后在第一Redis集群处于不可用状态的情况下,根据各候选Redis集群的描述信息及第一数据类型中的至少一项,确定目标Redis集群,之后断开第一Redis集群的第一切换开关,并闭合目标Redis集群的第二切换开关,并向服务端发送数据同步服务调用请求,其中,数据同步服务调用请求中包括第一数据、第一数据的类型及目标Redis集群的标识。由此,通过在当前正在使用Redis集群不可用的情况下,基于其他集群的多维描述信息及第一数据的类型中的至少一项,确定目标集群,并通过调用服务端的数据同步服务,实现Redis集群间的数据的自动同步不仅提高了集群切换的灵活性和可靠性,而且通过自动数据同步服务,可以减少数据传输的耗时,保障了服务的持续可用性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,附图用于更好地理解本方案,不构成对本公开的限定,其中:
图1是根据本公开一实施例提出的Redis集群切换方法的流程示意图;
图2是根据本公开另一实施例提出的Redis集群切换方法的流程示意图;
图3是根据本公开一实施例提出的Redis集群切换装置的结构示意图;
图4示出了适于用来实现本公开实施方式的示例性电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
下面参考附图描述本公开实施例的Redis集群切换方法、装置、电子设备及存储介质。
其中,需要说明的是,本实施例的Redis集群切换方法的执行主体为Redis集群切换装置,该装置可以由软件和/或硬件的方式实现,该装置可以配置在电子设备中,电子设备可以包括但不限于终端、服务器端等。本公开实施例中以Redis集群切换装置被配置到Redis集群切换系统中为例进行说明。其中,该Redis集群切换系统由客户端和服务端组成,通过多端合作,以实现Redis集群的自主切换和数据自动同步。
图1是根据本公开一实施例提出的Redis集群切换方法的流程示意图。
如图1所示,该Redis集群切换方法,由客户端执行,包括:
S101:获取当前正在使用的第一Redis集群的可用状态、及第一Redis集群中的第一数据的类型。
其中,第一Redis集群是指在服务过程中,当前正用于数据的分布存储和负载均衡等的服务器群。第一数据的类型,是指第一Redis集群中存储的数据的类型,可以为字符串(string),散列(hashes),列表(list),集合(sets),有序集合(sorted sets)等中的任意一种。
本公开实施例中,客户端可以对当前正在使用的第一Redis集群添加健康状态监测服务,来实时监测第一Redis集群的状态是否可用。
可选地,可以先获取与第一Redis集群关联的健康状态监测服务,在预设时长内的输出值。然后在输出值指示第一Redis集群在预设时长内出现不可用状态的次数大于次数阈值的情况下,或者,在输出值指示第一Redis集群在预设时长内出现不可用状态的持续时长大于时长阈值的情况下,确定第一Redis集群处于不可用状态。
其中,健康状态监测服务可以监测第一Redis集群的节点状态(如节点是否在线,是否可用等),集群状态(如是否正常运行,是否有节点故障等),错误日志(包括节点发生的错误、警告等信息),以及性能指标(如CPU使用率、内存使用率、网络延迟等)等等,本公开对此不做限定。然后在监测到异常状态时,输出一个值来表示第一Redis集群出现一次不可用状态,例如输出的值可以为0。
需要说明的是,预设时长、次数阈值及时长阈值可以是一个固定值,也可以是由对Redis集群状态监控的实际需求来确定的值,本公开对此不做限定。
本公开实施例中,健康状态监测服务可以一直对关联的第一Redis集群进行监测并输出监测结果。然后每隔预设时长的时间,客户端可以获取健康状态监测服务在之前预设时长内的所有输出值,由于输出值的数量表示第一Redis集群在预设时长内出现不可用状态的次数,因此当数量大于次数阈值的情况下,就可以确定第一Redis集群处于不可用状态。
或者,健康状态监测服务输出的输出值也可以包括每次不可用状态的持续时长,因此客户端获取健康状态监测服务在预设时长内的输出值后,可以在任一输出值包含的持续时长大于时长阈值的情况下,确定第一Redis集群处于不可用状态。从而可以通过健康状态监测服务对Redis集群的可用状态进行实时监测,为Redis集群出现故障后的及时切换提供了条件。
S102:在第一Redis集群处于不可用状态的情况下,根据各候选Redis集群的描述信息及第一数据的类型中的至少一项,确定目标Redis集群。
其中,候选Redis集群是指可以作为第一Redis集群的数据容灾备份的集群。描述信息包括以下至少一项:优先级、所属的连接池、历史故障信息及资源信息。
需要说明的是,可以根据生产业务需求和实际情况来设置各候选Redis集群的优先级,或者也可以根据各候选Redis集群中节点在故障转移时的顺序来计算优先级等等,本公开对此不做限定。
可选地,在描述信息中包括优先级,且最高优先级的候选Redis集群的数量为一个的情况下,可以将优先级最高的候选Redis集群,确定为目标Redis集群。
本公开实施例中,由于优先级较高的候选Redis集群,其配置较高、性能较好,因此在优先级最高的候选Redis集群只有一个情况下,将其确定为待切换的目标Redis集群,可以减少集群切换的时间,提高了数据备份的完整性和准确性,降低业务中断的风险。
可选地,在描述信息包含优先级及所属的连接池,且最高优先级的候选Redis集群的数量为多个情况下,可以先确定每个最高优先级的候选Redis集群所属的第一连接池,及第一Redis集群所属的第二连接池。然后,在任一候选Redis集群所属的第一连接池,与第二连接池相同的情况下,将任一候选Redis集群确定为目标Redis集群。
其中,连接池,是用于管理Redis集群的连接的工具,可以用于优化连接的开销和维护负载均衡等等方面,减少Redis连接频繁建立和断开的损耗。
本公开实施例中,在最高优先级的候选Redis集群的数量为多个情况下,由于不同连接池关联的Redis集群间进行切换时,可能操作较为复杂,因此客户端可以根据每个Redis集群与其所属的连接池间的关联关系,确定每个候选Redis集群所属的第一连接池。然后将候选Redis集群中与第一Redis集群处于同一个连接池的集群,来确定为待切换的目标Redis集群,从而无需重新建立连接,进一步保证了服务的连续性,进一步提高了Redis集群自动切换的安全性和效率。
需要说明的是,如果有多个候选Redis集群所属的第一连接池都与第二连接池相同的情况下,那就可以任意选一个作为目标Redis集群。
可选地,在描述信息中包括优先级及历史故障信息,且最高优先级的候选Redis集群的数量为多个情况下,可以确定每个最高优先级的候选Redis集群的历史故障信息,然后根据历史故障信息,确定每个最高优先级的候选Redis集群的故障概率,之后就可以将故障概率最低的一个候选Redis集群,确定为目标Redis集群。
其中,历史故障信息包括历史故障次数和/或历史故障时长。
本公开实施例中,可以计算历史故障次数在候选Redis集群总使用次数中的占比,或历史故障时长在候选Redis集群总使用时长中的占比,来确定每个最高优先级的候选Redis集群的故障概率。或者也可以将历史故障次数和历史故障时长分别计算得到的占比值,进行加权求和或取最大值等方式,来获取候选Redis集群的故障概率。然后,将将故障概率最低的一个候选Redis集群,确定为目标Redis集群,可以有效避免在集群切换后仍出现集群不可用的情况,减少集群的切换次数和维护成本,保障服务的连续性和稳定性。
可选地,在描述信息中包括优先级及资源信息,且最高优先级的候选Redis集群的数量为多个情况下,可以先确定每个最高优先级的候选Redis集群的资源信息,然后确定每个最高优先级的候选Redis集群的资源类型与第一数据的类型间的匹配度,就可以将匹配度最高的一个候选Redis集群,确定为目标Redis集群。
其中,资源信息包括资源类型。
本公开实施例中,通过计算候选Redis集群的资源类型与第一数据的类型间的匹配度,可以判断候选Redis集群是否能够支持存储第一数据这种类型的数据,从而将匹配度最高的一个候选Redis集群,确定为目标Redis集群,可以更好地评估每个候选Redis集群切换的可行性和风险,使得确定的目标Redis集群更可靠。
可以理解的是,候选Redis集群的资源信息中也可以包括可用资源容量,基于第一数据的数据量大小,选取可用资源容量大于第一数据的数据量的候选Redis集群作为目标Redis集群。
需要说明的是,候选Redis集群的描述信息还可以同时包括优先级、所属的连接池、历史故障信息及资源信息这四项信息,然后根据每项描述信息,确定每个候选Redis集群对应的权重,将权重最高的候选Redis集群,确定为目标Redis集群。
S103:断开第一Redis集群的第一切换开关,并闭合目标Redis集群的第二切换开关。
本公开实施例中,客户端确定待切换的目标Redis集群之后,可以自动断开第一Redis集群的第一切换开关,停止使用第一Redis集群。同时闭合目标Redis集群的第二切换开关,切换目标Redis集群为当前使用的Redis集群。
S104:向服务端发送数据同步服务调用请求。
其中,数据同步服务调用请求中包括第一数据、第一数据的类型及目标Redis集群的标识。
本公开实施例中,客户端切换到目标Redis集群后,可以向服务端请求将第一数据同步至目标Redis集群中,使得目标Redis集群可以获取完整的数据信息,继续执行第一Redis集群的任务,保证业务能够持续正常运行。
本实施例中,客户端先获取当前正在使用的第一Redis集群的可用状态、及第一Redis集群中的第一数据的类型,然后在第一Redis集群处于不可用状态的情况下,根据各候选Redis集群的描述信息及第一数据的类型中的至少一项,确定目标Redis集群,之后断开第一Redis集群的第一切换开关,并闭合目标Redis集群的第二切换开关,并向服务端发送数据同步服务调用请求。由此,通过在当前正在使用Redis集群不可用的情况下,基于其他集群的多维描述信息及第一数据的类型中的至少一项,确定目标集群,并通过调用服务端的数据同步服务,实现Redis集群间的数据的自动同步不仅提高了集群切换的灵活性和可靠性,而且通过自动数据同步服务,可以减少数据传输的耗时,保障了服务的持续可用性。
图2是本公开另一实施例提出的Redis集群切换方法的流程示意图。
如图2所示,该Redis集群切换方法,包括:
S201:获取当前正在使用的第一Redis集群的可用状态、及第一Redis集群中的第一数据的类型。
S202:在第一Redis集群处于不可用状态的情况下,根据各候选Redis集群的描述信息及第一数据的类型中的至少一项,确定目标Redis集群。
S203:为目标Redis集群的第二切换开关,创建第二监听服务。
本公开实施例中,客户端可以为目标使用的Redis集群的切换开关添加一个消息监听器,来创建切换开关关联的监听服务,以监听切换开关的断开或闭合状态,从而可以及时感知到切换完成或出现故障的情况,便于客户端及时有效地做出相应处理,进一步提高了服务的连续性和可用性。
S204:断开第一Redis集群的第一切换开关,并闭合目标Redis集群的第二切换开关。
上述S201—S202及S204的描述说明可以具体参见上述实施例,在此不再赘述。
S205:获取与第一切换开关关联的第一监听服务输出的第一监听值,及与第二切换开关关联的第二监听服务输出的第二监听值。
其中,监听值可以用于表示切换开关的断开闭合状态,值可以为0或1,例如可以当监听值为0时表示切换开关断开,当监听值为1时表示切换开关闭合。
本公开实施例中,客户端断开第一切换开关,及闭合第二切换开关之后,可以获取两个切换开关分别关联的监听服务输出的监听值,来确定第一切换开关和第二切换开关的当前状态。
S206:分别根据第一监听值及第二监听值,确定第一切换开关及第二切换开关的状态。
本公开实施例中,在一些情况下,可能存在自动断开或闭合切换开关失败的情况,因此客户端需要根据监听服务输出的监听值,来判断切换开关的状态是否成功切换,以及是否需要人工辅助完成切换。
S207:在第一切换开关未处于断开状态,和/或第二切换开关未处于闭合状态的情况下,输出切换开关状态异常提示。
本公开实施例中,客户端可以通过输出切换开关状态异常提示,向用户说明第一切换开关未成功断开的情况,和/或第二切换开关未成功闭合的情况,来提醒人工执行Redis集群的手动切换。
S208:向服务端发送数据同步服务调用请求。
上述S208的描述说明可以具体参见上述实施例,在此不再赘述。
本实施例中,客户端在确定目标Redis集群之后,为目标Redis集群的第二切换开关,创建第二监听服务,然后在断开第一切换开关,并闭合第二切换开关之后,先获取与第一切换开关关联的第一监听服务输出的第一监听值,及与第二切换开关关联的第二监听服务输出的第二监听值,然后分别根据第一监听值及第二监听值,确定第一切换开关及第二切换开关的状态,之后在第一切换开关未处于断开状态,和/或第二切换开关未处于闭合状态的情况下,输出切换开关状态异常提示。由此,可以通过Redis集群切换开关关联的监听服务,及时确定切换开关的状态并对故障情况进行修正,避免因切换开关的断开闭合故障而造成的损失,进一步保证了服务的连续性和可用性。
图3是本公开一实施例提出的Redis集群切换装置的结构示意图。
如图3所示,该Redis集群切换装置300,包括:
获取模块301,用于获取当前正在使用的第一Redis集群的可用状态、及第一Redis集群中的第一数据的类型;
确定模块302,用于在第一Redis集群处于不可用状态的情况下,根据各候选Redis集群的描述信息及所述第一数据的类型中的至少一项,确定目标Redis集群,其中,描述信息包括以下至少一项:优先级、所属的连接池、历史故障信息及资源信息;
控制模块303,用于断开第一Redis集群的第一切换开关,并闭合目标Redis集群的第二切换开关;
发送模块304,用于向服务端发送数据同步服务调用请求,其中,数据同步服务调用请求中包括第一数据、第一数据的类型及目标Redis集群的标识。
在一些实施例中,上述获取模块301,还可以用于:
获取与第一Redis集群关联的健康状态监测服务,在预设时长内的输出值;
在输出值指示第一Redis集群在预设时长内出现不可用状态的次数大于次数阈值的情况下,或者,在输出值指示第一Redis集群在预设时长内出现不可用状态的持续时长大于时长阈值的情况下,确定第一Redis集群处于不可用状态。
在一些实施例中,上述确定模块302,还可以用于:
在最高优先级的候选Redis集群的数量为一个的情况下,将优先级最高的候选Redis集群确定为目标Redis集群。
在一些实施例中,上述确定模块302,还可以用于:
在最高优先级的候选Redis集群的数量为多个情况下,确定每个最高优先级的候选Redis集群所属的第一连接池,及第一Redis集群所属的第二连接池;
在任一候选Redis集群所属的第一连接池,与第二连接池相同的情况下,将任一候选Redis集群确定为目标Redis集群。
在一些实施例中,上述确定模块302,还可以用于:
在最高优先级的候选Redis集群的数量为多个情况下,确定每个最高优先级的候选Redis集群的历史故障信息,其中,历史故障信息包括历史故障次数和/或历史故障时长;
根据历史故障信息,确定每个最高优先级的候选Redis集群的故障概率;
将故障概率最低的一个候选Redis集群,确定为目标Redis集群。
在一些实施例中,上述确定模块302,还可以用于:
在最高优先级的候选Redis集群的数量为多个情况下,确定每个最高优先级的候选Redis集群的资源信息,其中,资源信息包括资源类型;
确定每个最高优先级的候选Redis集群的资源类型与第一数据的类型间的匹配度;
将匹配度最高的一个候选Redis集群,确定为目标Redis集群。在一些实施例中,上述控制模块303,还可以用于:
获取与第一切换开关关联的第一监听服务输出的第一监听值,及与第二切换开关关联的第二监听服务输出的第二监听值;
分别根据第一监听值及第二监听值,确定第一切换开关及第二切换开关的状态;
在第一切换开关未处于断开状态,和/或第二切换开关未处于闭合状态的情况下,输出切换开关状态异常提示。
在一些实施例中,上述发送模块304,还可以用于:
为目标Redis集群的第二切换开关,创建第二监听服务。
需要说明的是,前述对Redis集群切换方法的解释说明也适用于本实施例的Redis集群切换装置,此处不再赘述。
本实施例中,客户端先获取当前正在使用的第一Redis集群的可用状态、及第一Redis集群中的第一数据的类型,然后在第一Redis集群处于不可用状态的情况下,根据各候选Redis集群的描述信息及第一数据的类型中的至少一项,确定目标Redis集群,之后断开第一Redis集群的第一切换开关,并闭合目标Redis集群的第二切换开关,并向服务端发送数据同步服务调用请求。由此,通过在当前正在使用Redis集群不可用的情况下,基于其他集群的多维描述信息及第一数据的类型中的至少一项,确定目标集群,并通过调用服务端的数据同步服务,实现Redis集群间的数据的自动同步不仅提高了集群切换的灵活性和可靠性,而且通过自动数据同步服务,可以减少数据传输的耗时,保障了服务的持续可用性。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图4示出了可以用来实施本公开的实施例的示例电子设备400的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图4所示,设备400包括计算单元401,其可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执行各种适当的动作和处理。在RAM 403中,还可存储设备400操作所需的各种程序和数据。计算单元401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理,例如Redis集群切换方法。例如,在一些实施例中,Redis集群切换方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序加载到RAM 403并由计算单元401执行时,可以执行上文描述的Redis集群切换方法的一个或多个步骤。备选地,在其他实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行Redis集群切换方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网及区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。在本公开的描述中,所使用的词语“如果”及“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“在……情况下”。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (12)
1.一种Redis集群切换方法,其特征在于,所述方法由客户端执行,所述方法包括:
获取当前正在使用的第一Redis集群的可用状态、及所述第一Redis集群中的第一数据的类型;
在所述第一Redis集群处于不可用状态的情况下,根据各候选Redis集群的描述信息及所述第一数据的类型中的至少一项,确定目标Redis集群,其中,所述描述信息包括以下至少一项:优先级、所属的连接池、历史故障信息及资源信息;
断开所述第一Redis集群的第一切换开关,并闭合所述目标Redis集群的第二切换开关;
向服务端发送数据同步服务调用请求,其中,所述数据同步服务调用请求中包括所述第一数据、所述第一数据的类型及所述目标Redis集群的标识。
2.如权利要求1所述的方法,其特征在于,确定所述第一Redis集群处于不可用状态的方式,包括:
获取与所述第一Redis集群关联的健康状态监测服务,在预设时长内的输出值;
在所述输出值指示所述第一Redis集群在所述预设时长内出现不可用状态的次数大于次数阈值的情况下,或者,在所述输出值指示所述第一Redis集群在所述预设时长内出现不可用状态的持续时长大于时长阈值的情况下,确定所述第一Redis集群处于不可用状态。
3.如权利要求1所述的方法,其特征在于,所述描述信息包括优先级,所述根据各候选Redis集群的描述信息及所述第一数据的类型中的至少一项,确定目标Redis集群,包括:
在最高优先级的候选Redis集群的数量为一个的情况下,将所述优先级最高的候选Redis集群确定为目标Redis集群。
4.如权利要求1所述的方法,其特征在于,所述描述信息包括优先级及所属的连接池,所述根据各候选Redis集群的描述信息及所述第一数据的类型中的至少一项,确定目标Redis集群,包括:
在最高优先级的候选Redis集群的数量为多个情况下,确定每个所述最高优先级的候选Redis集群所属的第一连接池,及所述第一Redis集群所属的第二连接池;
在任一候选Redis集群所属的第一连接池,与所述第二连接池相同的情况下,将所述任一候选Redis集群确定为目标Redis集群。
5.如权利要求1所述的方法,其特征在于,所述描述信息包括优先级及历史故障信息,所述根据各候选Redis集群的描述信息及所述第一数据的类型中的至少一项,确定目标Redis集群,包括:
在最高优先级的候选Redis集群的数量为多个情况下,确定每个所述最高优先级的候选Redis集群的历史故障信息,其中,所述历史故障信息包括历史故障次数和/或历史故障时长;
根据所述历史故障信息,确定每个所述最高优先级的候选Redis集群的故障概率;
将故障概率最低的一个候选Redis集群,确定为所述目标Redis集群。
6.如权利要求1所述的方法,其特征在于,所述描述信息包括优先级及资源信息,所述根据各候选Redis集群的描述信息及所述第一数据的类型中的至少一项,确定目标Redis集群,包括:
在最高优先级的候选Redis集群的数量为多个情况下,确定每个所述最高优先级的候选Redis集群的资源信息,其中,所述资源信息包括资源类型;
确定每个所述最高优先级的候选Redis集群的资源类型与所述第一数据的类型间的匹配度;
将匹配度最高的一个候选Redis集群,确定为所述目标Redis集群。
7.如权利要求1-6任一所述的方法,其特征在于,在所述断开所述第一Redis集群的第一切换开关,并闭合所述目标Redis集群的第二切换开关之后,还包括:
获取与所述第一切换开关关联的第一监听服务输出的第一监听值,及与所述第二切换开关关联的第二监听服务输出的第二监听值;
分别根据所述第一监听值及所述第二监听值,确定所述第一切换开关及所述第二切换开关的状态;
在所述第一切换开关未处于断开状态,和/或所述第二切换开关未处于闭合状态的情况下,输出切换开关状态异常提示。
8.如权利要求7所述的方法,其特征在于,在所述确定目标Redis集群之后,还包括:
为所述目标Redis集群的第二切换开关,创建所述第二监听服务。
9.一种Redis集群切换装置,其特征在于,所述装置配置在客户端,所述装置包括:
获取模块,用于获取当前正在使用的第一Redis集群的可用状态、及所述第一Redis集群中的第一数据的类型;
确定模块,用于在所述第一Redis集群处于不可用状态的情况下,根据各候选Redis集群的描述信息及所述第一数据的类型中的至少一项,确定目标Redis集群,其中,所述描述信息包括以下至少一项:优先级、所属的连接池、历史故障信息及资源信息;
控制模块,用于断开所述第一Redis集群的第一切换开关,并闭合所述目标Redis集群的第二切换开关;
发送模块,用于向服务端发送数据同步服务调用请求,其中,所述数据同步服务调用请求中包括所述第一数据、所述第一数据的类型及所述目标Redis集群的标识。
10.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的Redis集群切换方法。
11.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,其中,所述计算机指令用于使所述计算机执行权利要求1-8中任一项所述的Redis集群切换方法。
12.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-8中任一项所述Redis集群切换的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311618182.4A CN117687778A (zh) | 2023-11-29 | 2023-11-29 | Redis集群切换方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311618182.4A CN117687778A (zh) | 2023-11-29 | 2023-11-29 | Redis集群切换方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117687778A true CN117687778A (zh) | 2024-03-12 |
Family
ID=90129336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311618182.4A Pending CN117687778A (zh) | 2023-11-29 | 2023-11-29 | Redis集群切换方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117687778A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118349400A (zh) * | 2024-06-17 | 2024-07-16 | 杭州宇信数字科技有限公司 | 一种用于Java应用的Redis连接池的创建方法、装置和存储介质 |
-
2023
- 2023-11-29 CN CN202311618182.4A patent/CN117687778A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118349400A (zh) * | 2024-06-17 | 2024-07-16 | 杭州宇信数字科技有限公司 | 一种用于Java应用的Redis连接池的创建方法、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106330475B (zh) | 一种通信系统中管理主备节点的方法和装置及高可用集群 | |
CN117687778A (zh) | Redis集群切换方法、装置、电子设备及存储介质 | |
CN112527567A (zh) | 系统容灾方法、装置、设备以及存储介质 | |
CN110751458B (zh) | 一种业务审批方法、装置和系统 | |
CN113254205B (zh) | 负载均衡系统、方法、装置、电子设备及存储介质 | |
CN112667403B (zh) | 一种服务器的调度方法、装置及电子设备 | |
CN117785465A (zh) | 一种资源调度方法、装置、设备及存储介质 | |
CN112965847B (zh) | 微服务架构的故障处理方法、装置、设备以及存储介质 | |
CN112887407A (zh) | 用于分布式集群的作业流量控制方法和装置 | |
CN113590287B (zh) | 任务处理方法、装置、设备、存储介质及调度系统 | |
CN116594563A (zh) | 分布式存储扩容方法、装置、电子设备和存储介质 | |
CN116204310A (zh) | 一种资源调度方法、装置、设备及存储介质 | |
CN105577825A (zh) | 保证在线联机服务可用性的方法及装置 | |
CN116860459B (zh) | 一种云平台中资源池的监测方法、装置、设备及介质 | |
CN116909757B (zh) | 集群管理的控制系统、方法、电子设备和存储介质 | |
CN116055315B (zh) | Mvb通信配置方法、装置、设备及存储介质 | |
CN113381500B (zh) | 电力切换方法、装置、系统及电子设备 | |
CN116089222A (zh) | 一种数据库集群监控方法、装置、设备及介质 | |
CN116938826B (zh) | 网络限速的方法及装置、系统、电子设备 | |
CN117040958A (zh) | 基于rs485的多用多备控制方法、装置、设备及介质 | |
CN116131939A (zh) | 数据链路的监测方法、存储系统、装置、设备及介质 | |
CN117632600A (zh) | 一种故障管理方法、装置及电子设备 | |
CN117743029A (zh) | 一种组复制集群自启动方法、装置、电子设备及存储介质 | |
CN116800592A (zh) | 基于以太网接口的多用多备控制方法、装置、设备及介质 | |
CN115756855A (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 |