CN112118130A - 自适应的分布式缓存主备状态信息切换方法及装置 - Google Patents
自适应的分布式缓存主备状态信息切换方法及装置 Download PDFInfo
- Publication number
- CN112118130A CN112118130A CN202010868814.2A CN202010868814A CN112118130A CN 112118130 A CN112118130 A CN 112118130A CN 202010868814 A CN202010868814 A CN 202010868814A CN 112118130 A CN112118130 A CN 112118130A
- Authority
- CN
- China
- Prior art keywords
- state information
- distributed cache
- server
- cache
- master
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明实施例提供了一种自适应的分布式缓存主备状态信息切换方法及装置,方法包括:获取服务器的主备状态信息和/或分布式缓存状态信息;根据服务器的主备状态信息和/或分布式缓存状态信息判断分布式缓存的运行状态是否正常;在分布式缓存的运行状态正常的情况下,根据服务器的主备状态信息与分布式缓存状态信息,判断是否切换分布式缓存状态信息,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致。本发明实施例根据业务系统中服务器的主备状态自适应地进行缓存的切换,满足系统业务需求,保障系统的可靠性、实时性。
Description
技术领域
本发明涉及软件技术领域,尤其涉及一种自适应的分布式缓存主备状态信息切换方法及装置。
背景技术
随着工业场景中数据规模的扩大,数据的计算和处理需要兼顾数据的可靠性和实时性。在对数据处理实时性要求较高的业务场景中,对最大时延性能的要求通常达到毫秒级。当传统数据库面临大规模数据访问时,最大时延性能将不能满足业务需求,磁盘读写速度成为限制响应时间的主要性能瓶颈。
同时为了保证系统的可靠性,业务场景中采用主备冗余设计部署集群,不会因单节点服务器故障而导致服务中断或数据丢失。现有的基于冗余设计的分布式缓存系统仅支持缓存服务的故障自动发现与故障切换,无法适应业务系统的主备冗余设计,不能根据所属业务节点的主备状态进行缓存的自动切换,同时不能满足业务系统分布式缓存切换的低时延需求。
发明内容
针对现有技术中存在的问题,本发明实施例提供一种自适应的分布式缓存主备状态信息切换方法及装置。
第一方面,本发明实施例提供一种自适应的分布式缓存主备状态信息切换方法,包括:
获取服务器的主备状态信息和/或分布式缓存状态信息;
根据服务器的主备状态信息和/或分布式缓存状态信息判断分布式缓存的运行状态是否正常;
在分布式缓存的运行状态正常的情况下,根据服务器的主备状态信息与分布式缓存状态信息,判断是否切换分布式缓存状态信息,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致。
进一步地,所述获取服务器的主备状态信息和/或分布式缓存状态信息前,包括:
向分布式缓存发送状态信息请求;
若未接收到回复的分布式缓存状态信息,则确定分布式缓存的运行状态异常,判断是否切换服务器的主备状态信息。
进一步地,所述分布式缓存状态信息包括当前缓存进程ID;
相应地,所述根据服务器的主备状态信息和/或分布式缓存状态信息判断分布式缓存的运行状态是否正常,包括:
若当前缓存进程ID与历史进程ID一致,或不存在历史进程ID,或服务器为备机状态,则确定分布式缓存的运行状态为正常;
若当前缓存进程ID与历史进程ID不一致,且服务器为主机状态,则确定分布式缓存的运行状态为异常。
进一步地,所述分布式缓存状态信息包括分布式缓存的主备状态信息;
相应地,所述在分布式缓存的运行状态正常的情况下,根据服务器的主备状态信息与分布式缓存状态信息,判断是否切换分布式缓存状态信息,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致,包括:
在分布式缓存的运行状态正常的情况下,检验服务器的主备状态信息与分布式缓存的主备状态信息是否一致;
在服务器的主备状态信息与分布式缓存的主备状态信息一致,且服务器和分布式缓存均为备机状态的情况下,校验服务器对应的第一主机IP地址和分布式缓存对应的第二主机IP地址是否一致;
若所述第一主机IP地址与所述第二主机IP地址一致,则切换分布式缓存状态信息,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致。
进一步地,还包括:
若所述第一主机IP地址与所述第二主机IP地址不一致,则确定分布式缓存的运行状态异常,判断是否切换服务器的主备状态信息。
进一步地,还包括:
在分布式缓存的运行状态异常的情况下,判断是否切换服务器的主备状态信息。
第二方面,本发明实施例提供了一种自适应的分布式缓存主备状态信息切换装置,包括:
获取模块,用于获取服务器的主备状态信息和/或分布式缓存状态信息;
第一判断模块,用于根据服务器的主备状态信息和/或分布式缓存状态信息判断分布式缓存的运行状态是否正常;
第二判断模块,用于在分布式缓存的运行状态正常的情况下,根据服务器的主备状态信息与分布式缓存状态信息,判断是否切换分布式缓存状态信息,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上第一方面所述的自适应的分布式缓存主备状态信息切换方法的步骤。
第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上第一方面所述的自适应的分布式缓存主备状态信息切换方法的步骤。
由上述技术方案可知,本发明实施例提供的自适应的分布式缓存主备状态信息切换方法及装置,根据服务器的主备状态信息和/或分布式缓存状态信息判断分布式缓存的运行状态是否正常,在分布式缓存的运行状态正常的情况下,根据服务器的主备状态信息与分布式缓存状态信息,判断是否切换分布式缓存状态信息,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致,由于本发明实施例可以根据集群机器的主备状态信息、分布式缓存的运行状态等进行判断,所以能够自适应地对缓存的主备角色进行管理和切换,实现缓存的自动切换与数据同步。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的自适应的分布式缓存主备状态信息切换方法的流程示意图;
图2为本发明另一实施例提供的一台主机三台备机的结构示意图;
图3为本发明另一实施例提供的自适应的分布式缓存主备状态信息切换方法的流程示意图;
图4为本发明一实施例提供的自适应的分布式缓存主备状态信息切换装置的结构示意图;
图5为本发明一实施例中电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。分布式缓存将高速内存作为数据对象的存储介质,将部分复杂计算或频繁使用的热点数据进行缓存,理想情况下可以获得DRAM级的读写速度。常用的分布式缓存包括Redis、Memcached等。分布式缓存有多种部署方式,为保证系统的可靠性、高可用性采用一主多备的冗余设计(即全复制策略)进行部署。此种设计通常采用基于故障检测的分布式缓存切换方法,当检测到缓存主机故障时进行缓存主备状态的切换,自适应的分布式缓存主备切换方法针对的主要问题是,在提升数据读写速度、满足故障自动发现与切换的基础上,通过设计分布式缓存集群方案,适配工业场景中的低时延高可靠的系统业务需求,根据业务系统中服务器的主备状态自适应地进行缓存的切换,满足系统业务需求,保障系统的可靠性、实时性。下面将通过具体实施例对本发明提供的终端无缝迁移方法进行详细解释和说明。
图1为本发明一实施例提供的自适应的分布式缓存主备状态信息切换方法的流程示意图;如图1所示,该方法包括:
步骤101:获取服务器的主备状态信息和/或分布式缓存状态信息。
在本步骤中,需要说明的是,本步骤通过心跳信息对服务器及分布式缓存状态信息进行监控维护。心跳消息是一种发送源发送到接收方的消息,常被用于高可用性或容错处理的目的。心跳信息从发送源启动时开始发送,直到发送源关闭,期间发送源会不间断的发送周期性或重复消息,通过心跳信息监控维护的状态指标包括服务器的主备状态信息、分布式缓存状态信息。可以理解的是,分布式缓存状态信息例如为:缓存的进程ID、缓存的连接状态、缓存的主备状态等。
在本步骤中,可以理解的是,服务器的主备状态信息来源于保存在本服务器节点的状态信息。当本服务器为主机,则标记本服务器为主机;当本服务器为备机,则除标记本服务器为备机外,还会保存相应主机的IP地址等标识信息。
在本步骤中,可以理解的是,分布式缓存状态信息来源于分布式缓存对心跳信息的回复信息。通过定期向分布式缓存发送心跳信息请求其状态,判断及获取缓存的状态信息。若分布式缓存对心跳信息做出响应,则表明与缓存建立连接,判断缓存状态正常,进而判断是否进行缓存切换;否则判断与缓存断连,标记缓存状态异常。
步骤102:根据服务器的主备状态信息和/或分布式缓存状态信息判断分布式缓存的运行状态是否正常。
在本步骤中,可以理解的是,运行状态异常的情况主要分为两种:服务器与分布式缓存连接异常、分布式缓存备机与缓存主机连接异常。
具体地,服务器与分布式缓存连接异常:服务器通过心跳信息监控维护与分布式缓存的连接状态。通过定期向分布式缓存发送心跳信息请求其状态,判断及获取缓存的状态信息。若分布式缓存对心跳信息做出响应,则表明与缓存连接正常;否则判断与缓存断连,标记缓存状态异常,将异常信息发送给服务器,作为服务器主备切换的条件,触发服务器进行切换。
具体地,分布式缓存备机与缓存主机连接异常:当分布式缓存的备机与缓存主机连接异常,该异常信息会包含在对心跳信息回复的缓存状态信息中。当收到该异常信息时,本方法将向缓存发送降为备机指令,在超过一定次数仍不能恢复正常时,标记缓存异常,将异常信息作为服务器主备切换的条件发送给服务器,辅助决策服务器与分布式缓存主备状态的自适应切换。
在本步骤中,根据服务器的主备状态信息和/或分布式缓存状态信息,进而判断是否触发缓存切换条件,在触发缓存切换的条件中,分布式缓存的运行状态的优先级高于缓存的主备状态信息,即优先检查分布式缓存运行是否正常,若运行状态正常,则在此基础上校验服务器的主备状态与缓存的主备状态信息是否一致,进而根据判断是否进行切换。若运行状态异常,则将故障缓存标记为异常,将异常信息提交给服务器,作为服务器主备切换的判断条件。
步骤103:在分布式缓存的运行状态正常的情况下,根据服务器的主备状态信息与分布式缓存状态信息,判断是否切换分布式缓存状态信息,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致。
在本步骤中,在分布式缓存的运行状态正常的情况下(即表明缓存连接正常),判断是否切换分布式缓存状态信息,将获取的服务器的主备状态信息与分布式缓存状态信息,确定服务器主备状态信息与分布式缓存状态信息是否一致,进而辅助决策是否进行切换,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致,完成自适应的主备状态切换。例如,从服务器的主备状态信息获取到服务器为备机状态,获取服务器对应的主机的IP地址,又从分布式缓存状态信息获取分布式缓存为备机状态,获取对应的主机IP地址,对比上述两者对应的主机的IP地址,若一致切换缓存主备状态信息,完成自适应的主备状态切换。
本发明实施例提供的自适应的分布式缓存主备状态信息切换方法的主要功能:自适应的分布式缓存主备切换方法的主要功能:当服务器的主备状态发生变化时,分布式缓存的主备状态自适应地切换为相应的状态,在满足系统数据同步低时延、数据读取高可靠的同时,实现自动故障检测与故障切换。
为了兼顾数据的可靠性和实时性,为适配基于冗余机制的业务系统,本发明实施例设计了相应的自适应分布式缓存切换方法,基于冗余的分布式缓存集群进行设计,分布式缓存集群包括一个缓存主机与多个缓存备机,其中缓存主机支持数据的读写,其他缓存备机中的数据与缓存主机保持同步,并且仅支持数据的读取,不支持数据的写入,从而保证数据的一致性。本方法根据集群机器的主备状态信息、分布式缓存的运行状态等进行判断,自适应地对缓存的主备角色进行管理与切换,实现缓存的自动切换与数据同步。
由上面技术方案可知,本发明实施例提供的自适应的分布式缓存主备状态信息切换方法,根据服务器的主备状态信息和/或分布式缓存状态信息判断分布式缓存的运行状态是否正常,在分布式缓存的运行状态正常的情况下,根据服务器的主备状态信息与分布式缓存状态信息,判断是否切换分布式缓存状态信息,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致,由于本发明实施例可以根据集群机器的主备状态信息、分布式缓存的运行状态等进行判断,所以能够自适应地对缓存的主备角色进行管理和切换,实现缓存的自动切换与数据同步。
在上述实施例的基础上,在本实施例中,还包括:
在分布式缓存的运行状态异常的情况下,判断是否切换服务器的主备状态信息。
在本实施例中,可以理解的是,根据服务器的主备状态信息和/或分布式缓存状态信息,进而判断是否触发缓存切换条件,在触发缓存切换的条件中,分布式缓存的运行状态的优先级高于缓存的主备状态信息,即优先检查分布式缓存运行是否正常,若运行状态正常,则在此基础上校验服务器的主备状态与缓存的主备状态信息是否一致,进而根据判断是否进行切换。若分布式缓存的运行状态异常,则将故障缓存标记为异常,将异常信息提交给服务器,作为服务器主备切换的判断条件,判断是否切换服务器的主备状态信息。
由上面技术方案可知,本发明实施例提供的自适应的分布式缓存主备状态信息切换方法,在状态信息监控维护的基础上,在实现自适应主备状态切换的同时,在确定分布式缓存的运行状态异常的情况下,将异常信息作为服务器主备切换的条件发送给服务器,辅助决策服务器与分布式缓存主备状态的自适应切换,从而实现针对故障场景下,对分布式缓存的故障进行监测和处理,保障分布式缓存系统的可靠性。
在上述实施例的基础上,在本实施例中,所述获取服务器的主备状态信息和/或分布式缓存状态信息前,包括:
向分布式缓存发送状态信息请求;
若未接收到回复的分布式缓存状态信息,则确定分布式缓存的运行状态异常,判断是否切换服务器的主备状态信息。
在本实施例中,可以理解的是,向分布式缓存发送状态信息请求,本实施例通过发送心跳信息,获取缓存回复状态信息,通过是否能够接收到回复的分布式缓存状态信息,进行状态信息的监控和维护,通过定期向分布式缓存发送心跳信息请求其状态,判断及获取缓存的状态信息。若分布式缓存对心跳信息做出响应,则表明与缓存建立连接;否则判断与缓存断连,标记缓存状态异常。否则判断缓存状态正常,进而判断是否进行缓存切换。
在上述实施例的基础上,在本实施例中,所述分布式缓存状态信息包括当前缓存进程ID;
相应地,所述根据服务器的主备状态信息和/或分布式缓存状态信息判断分布式缓存的运行状态是否正常,包括:
若当前缓存进程ID与历史进程ID一致,或不存在历史进程ID,或服务器为备机状态,则确定分布式缓存的运行状态为正常;
若当前缓存进程ID与历史进程ID不一致,且服务器为主机状态,则确定分布式缓存的运行状态为异常。
在本实施例中,可以理解的是,通过发送心跳信息,获取分布式缓存回复状态信息,缓存状态信息中包括当前缓存进程ID、缓存的主备状态等。
在本步骤中“历史进程ID”为通过心跳信息记录的上一次缓存的进程ID。
在本实施例中,可以理解的是,提取当前缓存进程ID与历史进程ID做对比,设定当前缓存进程ID与历史进程ID一致时确定分布式缓存的运行状态为正常;此外,若无记录的历史进程ID,将提取的当前缓存进程ID作为历史进程ID,可见二者一致,确定分布式缓存的运行状态为正常;或服务器为备机状态时确定分布式缓存的运行状态为正常。
在本实施例中,需要说明的是,持久化是将程序数据在持久状态和瞬时状态间转换的机制,即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、XML数据文件中等等。当缓存中的数据未开启持久化时,重启缓存后数据将丢失。在业务系统中,若未开启持久化的缓存主机发生重启,且时间间隔小于心跳信息的检测间隔,则通过心跳信息无法监测到重启,将造成数据丢失。
由上面技术方案可知,本发明实施例提供的自适应的分布式缓存主备状态信息切换方法,通过监测分布式缓存的进程ID判断缓存是否重启。进程ID是大多数操作系统的内核用于唯一标识进程的一个数值。当缓存重启后,进程ID将发生改变。本发明实施例通过心跳信息记录上一次缓存的进程ID,并与本次通过心跳信息获取的进程ID进行比对,若不一致则判断缓存发生重启,标记缓存异常,将异常信息作为服务器主备切换的条件发送给服务器,辅助决策服务器与分布式缓存主备状态的自适应切换。
在上述实施例的基础上,在本实施例中,所述分布式缓存状态信息包括分布式缓存的主备状态信息;
相应地,所述在分布式缓存的运行状态正常的情况下,根据服务器的主备状态信息与分布式缓存状态信息,判断是否切换分布式缓存状态信息,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致,包括:
在分布式缓存的运行状态正常的情况下,检验服务器的主备状态信息与分布式缓存的主备状态信息是否一致;
在服务器的主备状态信息与分布式缓存的主备状态信息一致,且服务器和分布式缓存均为备机状态的情况下,校验服务器对应的第一主机IP地址和分布式缓存对应的第二主机IP地址是否一致;
若所述第一主机IP地址与所述第二主机IP地址一致,则切换分布式缓存状态信息,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致。
若所述第一主机IP地址与所述第二主机IP地址不一致,则确定分布式缓存的运行状态异常,判断是否切换服务器的主备状态信息。
在本实施例中,可以理解的是,在服务器的主备状态信息与分布式缓存的主备状态信息一致,且服务器和分布式缓存均为备机状态的情况下,校验服务器对应的第一主机IP地址和分布式缓存对应的第二主机IP地址是否一致,若一致,切换缓存主备状态信息,完成自适应的主备状态切换,从而自适应地对缓存的主备角色进行管理与切换,实现缓存的自动切换与数据同步。
在上述实施例基础上,若所述第一主机IP地址与所述第二主机IP地址不一致,则确定分布式缓存的运行状态异常,将异常信息提交给服务器,作为服务器主备切换的判断条件,判断是否切换服务器的主备状态信息。
由上面技术方案可知,本发明实施例提供的自适应的分布式缓存主备状态信息切换方法,通过校验服务器对应的第一主机IP地址和分布式缓存对应的第二主机IP地址是否一致,从而自适应地对缓存的主备角色进行管理与切换,实现缓存的自动切换与数据同步。
本发明实施例提供的自适应的分布式缓存主备状态信息切换方法基于一主多备的分布式缓存冗余设计,具有高可靠的特性。缓存主机支持进行数据的读写,缓存备机中的数据与缓存主机保持同步,仅支持数据的读取,保证数据的一致性;支持多种故障快速自动监测与切换,由故障机切换到正常主机进行数据处理,保证系统的容错性,本发明实施例提供的自适应的分布式缓存主备状态信息切换方法实现自适应的分布式缓存切换,具有低时延的实时性,采用分布式缓存将系统热点数据存储在内存中,提升数据读写速度;根据服务器主备状态实现自适应倒切,实现缓存主备快速切换;节点故障时可快速检测并进行故障处理。
为了更好地理解本发明,下面结合实施例进一步阐述本发明的内容,但本发明不仅仅局限于下面的实施例:
以ATS中心应用服务器为例。服务器配置为基于双网通信的多机热备冗余设计集群系统,如图2所示,本实例中包含一台主机三台备机。分布式缓存与对应的服务器部署同一机器上,并且基于Redis非关系型数据库建立分布式缓存,通过Redis将数据存储在内存中。本实例的应用场景中,为保持数据的一致性与实时性,需要对Redis分布式缓存进行冗余部署,并设计主备切换方法使其主备状态与相应服务器的主备状态一致。因此,本实例应用自适应的分布式缓存主备切换方法,基于ATS系统进行实现,ATS系统自适应分布式缓存切换工作流程:
A、利用心跳信息定期获取缓存的主备状态,每间隔100ms向本地Redis发送“INFO”命令;
B、若超过3次仍未收到Redis的回复信息,转到F;若收到Redis的状态回复信息,转到C;
C、获取当前Redis的进程ID,若不存在历史进程ID或与历史ID一致,更新历史进程ID为当前ID,转到D;否则转到F;
D、读取状态信息中的Redis连接状态信息,若与Redis主机连接正常,转到E;若连接异常,转到F;
E、比对Redis主备状态信息与服务器主备状态:若服务器为主,向Redis发送“SLAVEOF NO ONE”,将本地Redis设为主机,转到A;若服务器为备,获取集群中主服务器IP或标识码,向Redis发送“SLAVEOF+[主服务器IP]+[主服务器Redis端口]”,将本地Redis设为备机,转到A;
F、标记Redis异常状态并发送给服务器,辅助决策服务器主备切换操作。
效果:明显提升数据读写速度;Redis主备状态随服务器快速切换,处理速度精确到毫秒级;自动故障检测与处理,具有较高的容错性。本方法实现了ATS系统的自适应分布式缓存切换,保证了分布式缓存与中心应用服务器的主备状态同步,满足了工业级业务系统所需的高可靠性、高实时性。
下面结合图3所示的流程图,对本实施例提供的自适应的分布式缓存主备状态信息切换方法进行详细解释和说明:
Ⅰ:向分布式缓存发送状态信息请求,若收到回复,转Ⅱ;若未收到回复,转Ⅷ;
Ⅱ:提取缓存回复状态信息中的当前进程ID、缓存连接状态、缓存主备状态等信息;
Ⅲ:若无记录的历史进程ID,则记录历史进程ID为当前进程ID,转Ⅳ;若当前进程ID与历史进程ID匹配,或服务器为备机状态,转Ⅳ;若当前进程ID与历史进程ID不匹配,且服务器为主机状态,转Ⅷ;
Ⅳ:检查缓存连接状态,若缓存连接状态正常,转Ⅴ;否则转Ⅷ;
Ⅴ:检验服务器主备状态与缓存主备状态是否一致,若一致,转Ⅵ;若不一致,转Ⅷ;
Ⅵ:在服务器主备状态与缓存主备状态一致的状态下,若缓存与服务器为备机状态,校验两者对应的主机IP是否一致。若一致,转Ⅶ;若不一致,转Ⅷ;
Ⅶ:切换缓存主备状态,使之与服务器状态保持一致;
Ⅷ:标记缓存运行状态异常,将异常状态信息提交服务器,作为服务器主备状态切换的判断条件,辅助决策服务器主备状态的切换。
图4为本发明一实施例提供的自适应的分布式缓存主备状态信息切换装置的结构示意图,如图4所示,该装置包括:获取模块201、第一判断模块202、第二判断模块203,其中:
其中,获取模块201,用于获取服务器的主备状态信息和/或分布式缓存状态信息;
第一判断模块202,用于根据服务器的主备状态信息和/或分布式缓存状态信息判断分布式缓存的运行状态是否正常;
第二判断模块203,用于在分布式缓存的运行状态正常的情况下,根据服务器的主备状态信息与分布式缓存状态信息,判断是否切换分布式缓存状态信息,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致。
本发明实施例提供的自适应的分布式缓存主备状态信息切换装置具体可以用于执行上述实施例的自适应的分布式缓存主备状态信息切换方法,其技术原理和有益效果类似,具体可参见上述实施例,此处不再赘述。
基于相同的发明构思,本发明实施例提供一种电子设备,参见图5,电子设备具体包括如下内容:处理器301、通信接口303、存储器302和通信总线304;
其中,处理器301、通信接口303、存储器302通过总线304完成相互间的通信;通信接口303用于实现各建模软件及智能制造装备模块库等相关设备之间的信息传输;处理器301用于调用存储器302中的计算机程序,处理器执行计算机程序时实现上述各方法实施例所提供的方法,例如,处理器执行计算机程序时实现下述步骤:获取服务器的主备状态信息和/或分布式缓存状态信息;根据服务器的主备状态信息和/或分布式缓存状态信息判断分布式缓存的运行状态是否正常;在分布式缓存的运行状态正常的情况下,根据服务器的主备状态信息与分布式缓存状态信息,判断是否切换分布式缓存状态信息,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致。
基于相同的发明构思,本发明又一实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法实施例提供的方法,例如,获取服务器的主备状态信息和/或分布式缓存状态信息;根据服务器的主备状态信息和/或分布式缓存状态信息判断分布式缓存的运行状态是否正常;在分布式缓存的运行状态正常的情况下,根据服务器的主备状态信息与分布式缓存状态信息,判断是否切换分布式缓存状态信息,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
此外,在本发明中,诸如“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
此外,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种自适应的分布式缓存主备状态信息切换方法,其特征在于,包括:
获取服务器的主备状态信息和/或分布式缓存状态信息;
根据服务器的主备状态信息和/或分布式缓存状态信息判断分布式缓存的运行状态是否正常;
在分布式缓存的运行状态正常的情况下,根据服务器的主备状态信息与分布式缓存状态信息,判断是否切换分布式缓存状态信息,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致。
2.根据权利要求1所述的自适应的分布式缓存主备状态信息切换方法,其特征在于,所述获取服务器的主备状态信息和/或分布式缓存状态信息前,包括:
向分布式缓存发送状态信息请求;
若未接收到回复的分布式缓存状态信息,则确定分布式缓存的运行状态异常,判断是否切换服务器的主备状态信息。
3.根据权利要求1所述的自适应的分布式缓存主备状态信息切换方法,其特征在于,所述分布式缓存状态信息包括当前缓存进程ID;
相应地,所述根据服务器的主备状态信息和/或分布式缓存状态信息判断分布式缓存的运行状态是否正常,包括:
若当前缓存进程ID与历史进程ID一致,或不存在历史进程ID,或服务器为备机状态,则确定分布式缓存的运行状态为正常;
若当前缓存进程ID与历史进程ID不一致,且服务器为主机状态,则确定分布式缓存的运行状态为异常。
4.根据权利要求1所述的自适应的分布式缓存主备状态信息切换方法,其特征在于,所述分布式缓存状态信息包括分布式缓存的主备状态信息;
相应地,所述在分布式缓存的运行状态正常的情况下,根据服务器的主备状态信息与分布式缓存状态信息,判断是否切换分布式缓存状态信息,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致,包括:
在分布式缓存的运行状态正常的情况下,检验服务器的主备状态信息与分布式缓存的主备状态信息是否一致;
在服务器的主备状态信息与分布式缓存的主备状态信息一致,且服务器和分布式缓存均为备机状态的情况下,校验服务器对应的第一主机IP地址和分布式缓存对应的第二主机IP地址是否一致;
若所述第一主机IP地址与所述第二主机IP地址一致,则切换分布式缓存状态信息,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致。
5.根据权利要求4所述的自适应的分布式缓存主备状态信息切换方法,其特征在于,还包括:
若所述第一主机IP地址与所述第二主机IP地址不一致,则确定分布式缓存的运行状态异常,判断是否切换服务器的主备状态信息。
6.根据权利要求1所述的自适应的分布式缓存主备状态信息切换方法,其特征在于,还包括:
在分布式缓存的运行状态异常的情况下,判断是否切换服务器的主备状态信息。
7.一种自适应的分布式缓存主备状态信息切换装置,其特征在于,包括:
获取模块,用于获取服务器的主备状态信息和/或分布式缓存状态信息;
第一判断模块,用于根据服务器的主备状态信息和/或分布式缓存状态信息判断分布式缓存的运行状态是否正常;
第二判断模块,用于在分布式缓存的运行状态正常的情况下,根据服务器的主备状态信息与分布式缓存状态信息,判断是否切换分布式缓存状态信息,使切换后的分布式缓存状态信息与服务器的主备状态信息匹配一致。
8.根据权利要求7所述的自适应的分布式缓存主备状态信息切换装置,其特征在于,所述分布式缓存状态信息包括当前缓存进程ID;
相应地,所述第一判断模块,用于:
若当前缓存进程ID与历史进程ID一致,或不存在历史进程ID,或服务器为备机状态,则确定分布式缓存的运行状态为正常;
若当前缓存进程ID与历史进程ID不一致,且服务器为主机状态,则确定分布式缓存的运行状态为异常。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~6任一项所述自适应的分布式缓存主备状态信息切换方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1~6任一项所述自适应的分布式缓存主备状态信息切换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010868814.2A CN112118130B (zh) | 2020-08-25 | 2020-08-25 | 自适应的分布式缓存主备状态信息切换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010868814.2A CN112118130B (zh) | 2020-08-25 | 2020-08-25 | 自适应的分布式缓存主备状态信息切换方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112118130A true CN112118130A (zh) | 2020-12-22 |
CN112118130B CN112118130B (zh) | 2023-07-21 |
Family
ID=73805544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010868814.2A Active CN112118130B (zh) | 2020-08-25 | 2020-08-25 | 自适应的分布式缓存主备状态信息切换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112118130B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112787855A (zh) * | 2020-12-29 | 2021-05-11 | 中国电力科学研究院有限公司 | 一种面向广域分布式服务的主备管理系统及管理方法 |
CN113830134A (zh) * | 2021-08-25 | 2021-12-24 | 通号城市轨道交通技术有限公司 | 车载atp双系切换方法和车载atp的逻辑单元 |
CN114051036A (zh) * | 2021-09-23 | 2022-02-15 | 通号城市轨道交通技术有限公司 | 轨道交通信号系统数据同步方法、装置、设备及存储介质 |
CN115878441A (zh) * | 2023-02-27 | 2023-03-31 | 中国电子科技集团公司第十五研究所 | 基于一致性缓存的高可用计算服务方法、系统及设备 |
CN115987760A (zh) * | 2022-12-16 | 2023-04-18 | 深圳市康必达控制技术有限公司 | 双机模式下的服务进程守护方法及双机服务系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101807985A (zh) * | 2010-03-03 | 2010-08-18 | 交通银行股份有限公司 | 一种数据中心集中式控制切换方法及系统 |
CN102103544A (zh) * | 2009-12-16 | 2011-06-22 | 腾讯科技(深圳)有限公司 | 一种分布式缓存的实现方法及装置 |
CN102629903A (zh) * | 2011-12-21 | 2012-08-08 | 奇智软件(北京)有限公司 | 一种互联网应用中的容灾备份系统及方法 |
CN104320291A (zh) * | 2014-11-19 | 2015-01-28 | 国家电网公司 | 一种高可靠性消息传输方法及系统 |
CN106383756A (zh) * | 2016-10-12 | 2017-02-08 | 郑州云海信息技术有限公司 | 一种实现存储容灾切换Linux系统业务不中断的方法 |
CN108833164A (zh) * | 2018-06-14 | 2018-11-16 | 杭州网易再顾科技有限公司 | 服务器控制方法、装置、电子设备及存储介质 |
CN110140119A (zh) * | 2016-10-27 | 2019-08-16 | Mz知识产权控股有限责任公司 | 用于管理缓存服务器群集的系统和方法 |
CN111338767A (zh) * | 2018-12-18 | 2020-06-26 | 无锡雅座在线科技股份有限公司 | PostgreSQL主从数据库自动切换系统及方法 |
-
2020
- 2020-08-25 CN CN202010868814.2A patent/CN112118130B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103544A (zh) * | 2009-12-16 | 2011-06-22 | 腾讯科技(深圳)有限公司 | 一种分布式缓存的实现方法及装置 |
CN101807985A (zh) * | 2010-03-03 | 2010-08-18 | 交通银行股份有限公司 | 一种数据中心集中式控制切换方法及系统 |
CN102629903A (zh) * | 2011-12-21 | 2012-08-08 | 奇智软件(北京)有限公司 | 一种互联网应用中的容灾备份系统及方法 |
CN104320291A (zh) * | 2014-11-19 | 2015-01-28 | 国家电网公司 | 一种高可靠性消息传输方法及系统 |
CN106383756A (zh) * | 2016-10-12 | 2017-02-08 | 郑州云海信息技术有限公司 | 一种实现存储容灾切换Linux系统业务不中断的方法 |
CN110140119A (zh) * | 2016-10-27 | 2019-08-16 | Mz知识产权控股有限责任公司 | 用于管理缓存服务器群集的系统和方法 |
CN108833164A (zh) * | 2018-06-14 | 2018-11-16 | 杭州网易再顾科技有限公司 | 服务器控制方法、装置、电子设备及存储介质 |
CN111338767A (zh) * | 2018-12-18 | 2020-06-26 | 无锡雅座在线科技股份有限公司 | PostgreSQL主从数据库自动切换系统及方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112787855A (zh) * | 2020-12-29 | 2021-05-11 | 中国电力科学研究院有限公司 | 一种面向广域分布式服务的主备管理系统及管理方法 |
CN113830134A (zh) * | 2021-08-25 | 2021-12-24 | 通号城市轨道交通技术有限公司 | 车载atp双系切换方法和车载atp的逻辑单元 |
CN113830134B (zh) * | 2021-08-25 | 2024-03-15 | 通号城市轨道交通技术有限公司 | 车载atp双系切换方法和车载atp的逻辑单元 |
CN114051036A (zh) * | 2021-09-23 | 2022-02-15 | 通号城市轨道交通技术有限公司 | 轨道交通信号系统数据同步方法、装置、设备及存储介质 |
CN115987760A (zh) * | 2022-12-16 | 2023-04-18 | 深圳市康必达控制技术有限公司 | 双机模式下的服务进程守护方法及双机服务系统 |
CN115878441A (zh) * | 2023-02-27 | 2023-03-31 | 中国电子科技集团公司第十五研究所 | 基于一致性缓存的高可用计算服务方法、系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112118130B (zh) | 2023-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112118130A (zh) | 自适应的分布式缓存主备状态信息切换方法及装置 | |
EP3620905B1 (en) | Method and device for identifying osd sub-health, and data storage system | |
CN101876924B (zh) | 数据库故障自动检测及转移方法 | |
WO2017177941A1 (zh) | 主备数据库切换方法和装置 | |
CN106330475B (zh) | 一种通信系统中管理主备节点的方法和装置及高可用集群 | |
CN112328421B (zh) | 一种系统故障处理方法、装置、计算机设备和存储介质 | |
CN102394914A (zh) | 集群脑裂处理方法和装置 | |
CN104717077B (zh) | 一种管理数据中心的方法、装置及系统 | |
CN103795553A (zh) | 基于监控的主、备服务器切换 | |
CN105554074A (zh) | 一种基于rpc通信的nas资源监控系统及监控方法 | |
CN111176888B (zh) | 云存储的容灾方法、装置及系统 | |
CN114461428A (zh) | 一种用于双机集群脑裂的仲裁方法 | |
CN113867226A (zh) | 一种面向工控系统的冗余数据采集系统 | |
CN105323271B (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
CN108509296B (zh) | 一种处理设备故障的方法和系统 | |
CN118018463A (zh) | 一种故障处理方法、装置、设备及可读存储介质 | |
CN108009045B (zh) | 一种主备数据库故障处理方法及装置 | |
CN117667523A (zh) | 提升Oracle DG高可用性的数据库集群维护方法及系统 | |
CN112860485A (zh) | 基于keepalived的双机热备系统的控制方法 | |
CN111488247A (zh) | 一种管控节点多次容错的高可用方法及设备 | |
CN107404511B (zh) | 集群中服务器的替换方法及设备 | |
CN111510336B (zh) | 一种网络设备状态管理方法及装置 | |
CN112231382A (zh) | 一种数据库访问方法及装置 | |
CN111064608A (zh) | 消息系统的主从切换方法、装置、电子设备及存储介质 | |
CN114722029B (zh) | 一种修复monitor数据库的方法、系统、设备和存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |