一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

双机热备优化方法、系统、设备及计算机可读存储介质与流程

2022-04-06 20:19:48 来源:中国专利 TAG:


1.本技术涉及网络通信技术领域,尤其涉及一种双机热备优化方法、系统、设备及计算机可读存储介质。


背景技术:

2.随着网络通信技术的不断发展,为了保证系统服务在运行过程中的完整性和可用性,通常采用双机热备方案,在该方案中主服务和备服务通常通过心跳检测方式互相进行故障探测,正常情况下主服务处于工作状态,备服务处于监视状态,一旦备服务探测到主服务异常,备服务将会在很短的时间之内代替主服务,完全实现主服务的功能,但是,当主服务正常运行但主服务与备服务之间的网络连接抖动或者断开时,备服务通常会误判主服务发生故障,并将自身误切换为主服务,即当前的双机热备系统中主备服务切换的准确度较低,造成的后果是:将同时存在2个正在运行的主服务,从而产生“脑裂”现象,使得正常运行的双机备热系统分裂为2个独立个体争抢数据。


技术实现要素:

3.本技术的主要目的在于提供一种双机热备优化方法、系统、设备及计算机可读存储介质,旨在解决现有技术中双机热备系统中主备服务切换准确度低的技术问题。
4.为实现上述目的,本技术提供一种双机热备优化方法,应用于第一服务器,所述双机热备优化方法包括:
5.通过第一服务读取本地配置文件,依据所述本地配置文件中的第二服务信息,连接所述第一服务和部署于第二服务器的第二服务;
6.若连接成功,则将所述第一服务设置为备服务;
7.若连接失败,则获取所述第二服务定期维护的预设键值数据库中的第二过期键值,以判断所述第二服务是否正常运行,其中,所述预设键值数据库部署于第三服务器;
8.若所述第二服务未正常运行,则将所述第一服务设置为主服务;
9.若所述第二服务正常运行,则将所述第一服务设置为备服务。
10.为实现上述目的,本技术还提供一种双机热备优化方法,应用于第二服务器,所述双机热备优化方法包括:
11.当所述第二服务器中的第二服务作为主服务时,定期维护预设键值数据库中的第二过期键值,其中,第一服务器通过向所述预设键值数据库获取所述第二过期键值,判断所述第二服务是否正常运行,以确定将第一服务设置为主服务还是备服务。
12.本技术还提供一种双机热备优化装置,所述双机热备优化装置应用于第一服务器,所述双机热备优化装置包括:
13.网络连接模块,用于通过第一服务读取本地配置文件,依据所述本地配置文件中的第二服务信息,连接所述第一服务和部署于第二服务器的第二服务;
14.第一主备切换模块,用于若连接成功,则将所述第一服务设置为备服务;
15.键值获取模块,用于若连接失败,则获取所述第二服务定期维护的预设键值数据库中的第二过期键值,以判断所述第二服务是否正常运行,其中,所述预设键值数据库部署于第三服务器;
16.第二主备切换模块,用于若所述第二服务未正常运行,则将所述第一服务设置为主服务;
17.第三主备切换模块,用于若所述第二服务正常运行,则将所述第一服务设置为备服务。
18.本技术还提供一种双机热备优化装置,所述双机热备优化装置应用于第二服务器,所述双机热备优化装置包括:
19.键值维护模块,用于当所述第二服务器中的第二服务作为主服务时,定期维护预设键值数据库中的第二过期键值,其中,第一服务器通过向所述预设键值数据库获取所述第二过期键值,判断所述第二服务是否正常运行,以确定将第一服务设置为主服务还是备服务。
20.本技术还提供一种双机热备优化系统,所述双机热备优化系统包括:
21.第一服务器,所述第一服务器用于:通过第一服务读取本地配置文件,依据所述本地配置文件中的第二服务信息,连接所述第一服务和部署于第二服务器的第二服务;若连接成功,则将所述第一服务设置为备服务;若连接失败,则获取所述第二服务定期维护的预设键值数据库中的第二过期键值,以判断所述第二服务是否正常运行,其中,所述预设键值数据库部署于第三服务器;若所述第二服务未正常运行,则将所述第一服务设置为主服务;若所述第二服务正常运行,则将所述第一服务设置为备服务;
22.第二服务器,所述第二服务器用于:当所述第二服务器中的第二服务作为主服务时,定期维护所述预设键值数据库中的第二过期键值,其中,第一服务器通过向所述预设键值数据库获取所述第二过期键值,判断所述第二服务是否正常运行,以确定将第一服务设置为主服务还是备服务;
23.第三服务器,所述第三服务器用于部署所述预设键值数据库。
24.本技术还提供一种电子设备,所述电子设备为实体设备,所述电子设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述双机热备优化方法的程序,所述双机热备优化方法的程序被处理器执行时可实现如上述的双机热备优化方法的步骤。
25.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有实现双机热备优化方法的程序,所述双机热备优化方法的程序被处理器执行时实现如上述的双机热备优化方法的步骤。
26.本技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的双机热备优化方法的步骤。
27.本技术提供了一种双机热备优化方法、系统、设备及计算机可读存储介质,相比于现有技术中采用的主服务和备服务通过心跳检测方式互相进行故障探测而进行主备切换的技术手段,本技术首先通过第一服务读取本地配置文件,依据所述本地配置文件中的第二服务信息,连接所述第一服务和部署于第二服务器的第二服务;若连接成功,则证明所述第二服务作为主服务正在运行,所以将所述第一服务设置为备服务;若连接失败,则获取所
述第二服务定期维护的预设键值数据库中的第二过期键值,以判断所述第二服务是否正常运行,其中,所述预设键值数据库部署于第三服务器;若获取成功,则证明第二过期键值并没有因为到期而被删除,所以第二服务器仍然与第三服务器正常连接,第二服务还在定期维护第二过期键值,此时推断连接失败的原因为第一服务器与第二服务器之间发生网络连接抖动或者断开,而第二服务此时正常运行,进而将所述第一服务设置为备服务,以防止存在多个主服务争抢数据;若获取失败,则第二过期键值因为到期而被删除了,所以第二服务器未与第三服务器正常连接,第二服务未在定期维护第二过期键值,此时推断第二服务器发生故障而导致第二服务停止运行(未正常运行),进而将所述第一服务设置为主服务,以保证网络系统可以正常运行。所以实现了通过向键值数据库中获取第二服务定期维护的第二过期键值,判断连接失败的原因是网络连接抖动或者断开还是第二服务器发生故障的目的,可防止在第二服务正常运行时,第一服务由于网络连接抖动或者断开而误判第二服务停止运行,而在第二服务作为主服务时第一服务将自身切换为主服务的情况发生,也即,可防止双机备热系统分裂为2个独立个体的情况发生,所以克服了当主服务正常运行但主服务与备服务之间的网络连接抖动或者断开时,备服务通常会误判主服务发生故障,并将自身设置为主服务,使得正常运行的双机备热系统分裂为2个独立个体争抢数据的技术缺陷,提升了双机热备系统中主备服务切换的准确度。
附图说明
28.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
29.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
30.图1为本技术双机热备优化方法第一实施例的流程示意图;
31.图2为本技术双机热备优化方法的实施例中双机热备系统的框架示意图;
32.图3为本技术双机热备优化方法第二实施例的流程示意图;
33.图4为本技术双机热备优化方法第三实施例的流程示意图;
34.图5为本技术双机热备优化方法第四实施例的流程示意图;
35.图6为本技术实施例中双机热备优化方法涉及的硬件运行环境的设备结构示意图。
36.本技术目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
37.为使本技术的上述目的、特征和优点能够更加明显易懂,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本技术保护的范围。
38.实施例一
39.在双机热备系统中,主服务与备服务之间通常存在长连接,主服务与备服务之间通过长连接发送心跳包来互相探测是否正常运行,一旦备服务发现心跳包丢失,则判定主服务未正常运行,从而将自身切换为主服务,从而保证网络系统正常运行。但是在发生心跳包丢失时,通常存在2种情况:第一种情况是主服务所在服务器发生故障而停止运行,进而导致主服务未正常运行,此时需要备服务切换为主服务,以保证网络系统正常运行;第二种是由于网络连接抖动或者断开而导致心跳包丢失,但是主服务还在正常运行,此时若通过检测心跳包来进行主备切换,则备服务会直接误切换为主服务,所以目前的双机热备系统中存在主备切换不准确的情况,造成的后果是:双机热备系统中同时存在2个主服务,此时正常运行的双机备热系统分裂为2个独立个体争抢数据,产生“脑裂”现象。
40.本技术实施例提供一种双机热备优化方法,应用于第一服务器,在本技术双机热备优化方法的第一实施例中,参照图1,所述双机热备优化方法包括:
41.步骤s10,通过第一服务读取本地配置文件,依据所述本地配置文件中的第二服务信息,连接所述第一服务和部署于第二服务器的第二服务;
42.步骤s20,若连接成功,则将所述第一服务设置为备服务;
43.步骤s30,若连接失败,则获取所述第二服务定期维护的预设键值数据库中的第二过期键值,以判断所述第二服务是否正常运行,其中,所述预设键值数据库部署于第三服务器;
44.步骤s40,若所述第二服务未正常运行,则将所述第一服务设置为主服务;
45.步骤s50,若所述第二服务正常运行,则将所述第一服务设置为备服务。
46.本技术实施例首先通过第一服务读取本地配置文件,依据所述本地配置文件中的第二服务信息,连接所述第一服务和部署于第二服务器的第二服务;若连接所述第一服务与所述第二服务成功,则证明所述第二服务作为主服务正常运行,所以将第一服务设置为备服务;若连接失败,则向预设键值数据库获取所述第二服务定期维护的第二过期键值,若获取成功,则证明第二服务还在定期维护第二过期键值,第二过期键值并没有因为到期而被删除,此时推断连接失败的原因大概率为网络连接抖动或者断开,而第二服务此时正常运行,所以将所述第一服务设置为备服务,若获取失败,则证明第二服务未在定期维护第二过期键值,第二过期键值因为到期而被删除了,此时推断第二服务器发生故障而导致第二服务停止运行,所以将所述第一服务设置为主服务,进而实现了在双机热备系统准确进行主备切换的目的,可防止出现在第二服务正常运行时,第一服务由于网络连接抖动或者断开而误判第二服务停止运行,而在第二服务作为主服务时第一服务将自身切换为主服务的情况发生,提升了双机热备系统中主备切换的准确度。
47.在一种可实施的方式中,如图2所示本技术实施例中双机热备系统的框架示意图,所述第一服务部署于第一服务器,所述第二服务部署于第二服务器,所述预设键值数据库部署于第三服务器,所述预设键值数据库可以为redis(remote dictionary server),第一服务与第二服务中一者为主服务,另一者为备服务,主服务与备服务之间存在长连接以及心跳检测。第一服务器和第二服务器可以均存有本地配置文件,本地配置文件可以是由用户手动配置得到或者通过接收中心平台下发获得。例如,第一服务器中的本地配置文件可以包括第二服务信息,还可以包括预设键值数据库信息,所述第二服务信息可以包括第二服务的地址信息,所述第二服务的地址信息可以为第二服务器的ip地址和端口号,所述预
设键值数据库信息为预设键值数据库的地址信息,可以为预设键值数据库的ip地址以及端口号,还可以为使用预设键值数据库的身份密码。
48.示例性的,步骤s10至步骤s50包括:
49.通过第一服务读取本地配置文件,若本地配置文件中没有第二服务的地址信息,则表明当前系统中只有第一服务,将第一服务设置为主服务;若从本地配置文件中得到第二服务的地址信息,依据所述第二服务的地址信息,通过在第一服务与第二服务之间建立长连接,连接第一服务与第二服务。若连接所述第一服务和所述第二服务成功,则证明所述第二服务作为主服务正常运行,将所述第一服务设置为备服务;若连接所述第一服务和所述第二服务失败,则向预设键值数据库获取所述第二服务定期维护的第二过期键值,若获取所述第二过期键值成功,则证明所述第二服务仍然在定期维护所述第二过期键值,所述第二服务正常运行,所以将第一服务设置为备服务;若获取所述第二过期键值失败,则证明所述第二服务停止定期维护所述第二过期键值,所述第二服务未正常运行,所以将所述第一服务设置为主服务,以保证网络系统正常运行。实现了在第一服务未成功连接作为主服务的第二服务时,探测第二服务是否正常运行的目的,为第一服务进行主备切换提供了准确依据,提升了第一服务进行主备切换的准确度。
50.其中,关于步骤s40,在所述将所述第一服务设置为主服务之后,所述双机热备优化方法还包括:
51.步骤a10,定期维护所述预设键值数据库中的第一过期键值。
52.其中,所述定期维护所述预设键值数据库中的第一过期键值的步骤包括:
53.步骤a11,向所述预设键值数据库写入所述第一过期键值;
54.步骤a12,定期更新所述第一过期键值,其中,所述第一过期键值的更新间隔时间小于所述第一过期键值的过期间隔时间。
55.示例性的,在所述预设键值数据库中写入所述第一过期键值,并定期更新所述预设键值数据库中的第一过期键值,其中,所述第一过期键值的更新间隔时间小于所述第一过期键值的过期间隔时间,以保证第一过期键值在预设键值数据库不会因为过期而被删除。所述第二服务在连接第一服务失败时,将向预设键值数据库连续获取第一过期键值,其中,所述第二服务向预设键值数据库连续获取第一过期键值的时间间隔大于所述第一过期键值的过期时间间隔。所以作为一种示例,在当第一服务未正常运行时,第二服务可能在第一次成功获取到第一过期键值,而由于第一服务未正常运行,第一过期键值将会因为过期而被删除,所以第二服务将会在第二次获取第一过期键值失败,进而第二服务成功探测到第一服务未正常运行,第二服务将切换为主服务。实现了在第二服务未成功连接作为主服务的第一服务时,协助第二服务探测第一服务是否正常运行的目的,为第二服务进行主备切换提供了准确依据,提升了第二服务进行主备切换的准确度。
56.在另一种可实施的方式中,第一服务在预设第一时间线内各预设时间单元内向所述预设键值数据库中写入第一过期键值,其中,所述预设第一时间线和预设第二时间线共同构成网络系统中完整时间线,若所述预设第一时间线设置为奇数时间线,则所述预设第二时间线为偶数时间线,若所述预设第一时间线设置为偶数时间线,则所述预设第二时间线为奇数时间线。其中,所述奇数时间线为排序为奇数的预设基本时间单元构成的时间线,所述偶数时间线为排序为偶数的预设基本时间单元构成的时间线。例如,假设所述预设第
一时间线为奇数时间线,所述预设第二时间线为偶数时间线,则所述预设第一时间线对应的时间为第2n 1秒,其中,n为正整数,第一服务将会在第2n 1秒中的每个预设基本时间单元内更新所述第一过期键值,例如,可在第1秒更新一次第一过期键值,在第3秒再更新一次第一过期键值,在第5秒再更新一次第一过期键值等;则所述预设第二时间线对应的时间为第2n 2秒,其中,n为正整数,第二服务将会在第2n 2秒中的每个预设基本时间单元内向预设键值数据库获取所述第一过期键值,例如,可在第2秒获取一次第一过期键值,在第4秒再获取一次第一过期键值,在第6秒再获取一次第一过期键值等,其中,第二服务在预设第二时间线的每一预设基本时间单元内至少获取一次第一过期键值。
57.第二服务将在预设第二时间线中各预设基本单元内向预设键值数据库获取第一服务写入的第一过期键值,其中,若第二服务检测到获取第一过期键值失败,则判定所述第一服务未正常运行,若第二服务未检测到获取第一过期键值失败,则判定所述第一服务正常运行。所述第一过期键值的过期间隔时间可设置为略大于一个预设基本时间单元,例如,假设第二服务总是在一个预设基本时间单元刚开始时获取第一过期键值,第一服务在一个预设基本时间单元内写入第一过期键值的时机不做限制,例如一个预设基本时间单元为1s,则第一过期键值的过期时间间隔可设置为1.2s,也可设置为1.5s,但是不超过2秒。所以,本技术实施例实现了通过第一服务在预设键值数据库写入第一过期键值,协助第二服务探测第一服务是否正常运行的目的,为第二服务进行主备切换提供了准确依据,提升了第二服务进行主备切换的准确度。
58.本技术实施例提供了一种双机热备优化方法,相比于现有技术中采用的主服务和备服务通过心跳检测方式互相进行故障探测而进行主备切换的技术手段,本技术实施例首先通过第一服务读取本地配置文件,依据所述本地配置文件中的第二服务信息,连接所述第一服务和部署于第二服务器的第二服务;若连接成功,则证明所述第二服务作为主服务正在运行,所以将所述第一服务设置为备服务;若连接失败,则获取所述第二服务定期维护的预设键值数据库中的第二过期键值,以判断所述第二服务是否正常运行,其中,所述预设键值数据库部署于第三服务器;若获取成功,则证明第二过期键值并没有因为到期而被删除,所以第二服务器仍然与第三服务器正常连接,第二服务还在定期维护第二过期键值,此时推断连接失败的原因大概率为第一服务器与第二服务器之间发生网络连接抖动或者断开,而第二服务此时正常运行,进而将所述第一服务设置为备服务,以防止存在多个主服务争抢数据;若获取失败,则第二过期键值因为到期而被删除了,所以第二服务器未与第三服务器正常连接,第二服务未在定期维护第二过期键值,此时推断第二服务器发生故障而导致第二服务停止运行(未正常运行),进而将所述第一服务设置为主服务,以保证网络系统可以正常运行。所以实现了通过向键值数据库中获取第二服务定期维护的第二过期键值,判断连接失败的原因是网络连接抖动或者断开还是第二服务器发生故障的目的,可防止在第二服务正常运行时,第一服务由于网络连接抖动或者断开而误判第二服务停止运行,而在第二服务作为主服务时第一服务将自身切换为主服务的情况发生,也即,可防止双机备热系统分裂为2个独立个体的情况发生,所以克服了当主服务正常运行但主服务与备服务之间的网络连接抖动或者断开时,备服务通常会误判主服务发生故障,并将自身设置为主服务,使得正常运行的双机备热系统分裂为2个独立个体争抢数据的技术缺陷,提升了双机热备系统中主备服务切换的准确度。
59.实施例二
60.进一步地,基于本技术第一实施例,在本技术另一实施例中,与上述实施例一相同或相似的内容,可以参考上文介绍,后续不再赘述。在此基础上,参照图3,在步骤s30中,所述获取所述第二服务定期维护的预设键值数据库中的第二过期键值,以判断所述第二服务是否正常运行的步骤包括:
61.步骤s31,向所述预设键值数据库连续获取所述第二服务定期更新的第二过期键值,其中,连续获取的间隔时间大于所述第二过期键值的过期间隔时间;
62.步骤s32,若连续获取所述第二过期键值成功,则判定所述第二服务正常运行;
63.步骤s33,若连续获取所述第二过期键值失败,则判定所述第二服务未正常运行。
64.在一种可实施的方式中,所述第二服务通过在预设键值数据库中定期更新第二过期键值来实现对第二过期键值的维护,其中,所述第二服务定期更新所述第二过期键值的更新间隔时间小于所述第二过期键值的过期时间间隔,以保证第二服务在第二过期键值过期前对第二过期键值进行更新,而当第二过期键值过期后,第二过期键值将会从预设键值数据库中被删除,其中,所述更新间隔时间为在预设键值数据库中更新过期键值的时间间隔,所述过期时间间隔为过期键值从刚更新至过期所需要的时间间隔。
65.示例性的,向所述预设键值数据库获取所述第二服务定期更新的第二过期键值;若获取所述第二过期键值成功,则经过预设时间间隔后,向所述预设键值数据库再次获取所述第二服务定期更新的第二过期键值,其中,所述预设间隔时间大于所述第二过期键值的过期间隔时间;若再次获取所述第二过期键值成功,则判定连续获取所述第二过期键值成功,进而判定所述第二服务仍然在定期更新所述第二过期键值,所以所述第二服务处于正常运行状态;若获取所述第二过期键值失败或者再次获取所述第二过期键值失败,则判定连续获取所述第二过期键值失败,进而判定所述第二服务未在定期更新所述第二过期键值,所以所述第二服务未处于正常运行状态,也即第二服务停止运行。
66.在另一种可实施的方式中,所述第二服务通过在预设第一时间线的各预设基本时间单元中分别更新所述第二过期键值,以实现对第二过期键值的维护。所述第一服务在预设第二时间线的各预设基本时间单元内分别向预设键值数据库获取所述第二过期键值,以探测所述第二服务是否正常运行。
67.其中,探测所述第二服务是否正常运行的方式包括:
68.第一服务检测在预设第二时间线的各预设基本时间单元内向预设键值数据库获取第二过期键值是否失败,其中,所述第二服务在预设第一时间线的各预设基本时间单元内向所述预设键值数据库中写入第二过期键值;若检测到获取第二过期键值失败,则判定所述第二服务未正常运行,若未检测到获取第二过期键值失败,则判定所述第二服务正常运行。所述第二过期键值的过期间隔时间可设置为略大于一个预设基本时间单元,例如,假设第一服务总是在一个预设基本时间单元刚开始时获取第二过期键值,第二服务在一个预设基本时间单元内写入第二过期键值的时机不做限制,一个预设基本时间单元为1s,则第二过期键值的过期时间间隔可设置为1.2s,也可设置为1.5s,但是不超过2秒。
69.本技术实施例提供了一种双机热备系统中备服务探测主服务是否正常运行的方法,首先向所述预设键值数据库连续获取所述第二服务定期更新的第二过期键值,其中,连续获取的间隔时间大于所述第二过期键值的过期间隔时间;所以若连续获取所述第二过期
键值成功,则证明第二服务还在定期在预设键值数据库中更新第二过期键值,第二服务处于正常运行状态;若连续获取所述第二过期键值失败,则证明第二过期键值由于过期而被预设键值数据库删除,所以第二服务未正常定期更新第二过期键值,第二服务处于未正常运行状态,也即,第二服务停止运行了,所以,实现了依据预设键值数据库中的过期键值,判别主服务是否正常运行的目的,该判别过程未受到第一服务与第二服务之间的网络影响,即使主服务和备服务之间的网络连接发生抖动或者断开,备服务依然可准确探测到主服务是否停止运行,提升了备服务探测主服务的运行状态的准确度,为进行准确地主备切换奠定了基础。
70.实施例三
71.进一步地,基于本技术第一实施例和第二实施例,在本技术另一实施例中,与上述实施例一相同或相似的内容,可以参考上文介绍,后续不再赘述。在此基础上,参照图4,在所述将所述第一服务设置为备服务的步骤之后,所述双机热备优化方法还包括:
72.步骤c10,若检测到所述第一服务与所述第二服务之间发生心跳丢失或者发生长连接断开,则检测是否接收到所述第二服务的长连接请求;
73.步骤c20,若接收到所述第二服务的长连接请求,则将所述第一服务设置为主服务;
74.步骤c30,建立所述第一服务与所述第二服务之间的长连接,以供所述第二服务器确定所述第二服务成功连接所述第一服务后,将所述第二服务设置为备服务;
75.步骤c40,若未接收到所述第二服务的长连接请求,则获取所述第二服务定期维护的预设键值数据库中的第二过期键值,以判断所述第二服务是否正常运行;
76.步骤c50,若所述第二服务未正常运行,则将所述第一服务设置为主服务;
77.步骤c60,若所述第二服务正常运行,则申请重新建立所述第一服务和所述第二服务之间的长连接。
78.在本实施例中,需要说明的是,主服务与备服务之间通过长连接的方式进行连接,主服务可通过长连接向备服务发送心跳包,以供备服务探测主服务是否正常运行。
79.示例性,若检测到所述第一服务与所述第二服务之间发生心跳丢失或者发生长连接断开,则通过本地监听端口检测是否接收到所述第二服务的长连接请求;若接收到所述第二服务的长连接请求,则证明所述第二服务发生了重启,所以将第一服务设置为主服务,以保证网络系统的正常运行,并提高主备切换效率,同时响应所述长连接请求,建立所述第一服务与所述第二服务之间的长连接,以供所述第二服务器确定所述第二服务成功连接所述第一服务后,将所述第二服务设置为备服务,以构成完整的双机热备系统;若未接收到所述第二服务的长连接请求,则向预设键值数据库获取第二服务定期维护的第二过期键值,以判断所述第二服务是否正常运行;若所述第二服务未正常运行,则推断第二服务所在的第二服务器发生了故障,例如断电或者短路等,进而将所述第一服务设置为主服务,以保证网络系统的正常运行;若所述第二服务正常运行,则在发生心跳丢失时,判定第一服务与第二服务之间发生网络连接抖动,进而断开原先的长连接,申请重新建立第一服务与第二服务之间的常长连接,以构建完整的双机热备系统;在发生长连接断开时,判定第一服务与第二服务之间发生网络连接断开,进而直接申请重新建立第一服务与第二服务之间的长连接,以构建完整的双机热备系统。其中,所述向预设键值数据库获取第二服务定期维护的第
二过期键值,以判断所述第二服务是否正常运行的具体实现过程可参照上述步骤s31至步骤s33中的具体内容,在此不再赘述。
80.本技术实施例提供一种在发生网络连接抖动或者断开时双机热备系统中主备切换的方法,在第一服务作为备服务之后,若检测到所述第一服务与所述第二服务之间发生心跳丢失或者发生长连接断开,则检测是否接收到所述第二服务的长连接请求;若接收到所述第二服务的长连接请求,则证明第二服务发生了重启,将所述第一服务设置为主服务,以保证网络系统正常运行;并建立所述第一服务与所述第二服务之间的长连接,以供所述第二服务器确定所述第二服务成功连接所述第一服务后,将所述第二服务设置为备服务,以恢复完整的双机热备系统;若未接收到所述第二服务的长连接请求,则获取所述第二服务定期维护的预设键值数据库中的第二过期键值,以判断所述第二服务是否正常运行;若所述第二服务未正常运行,则推断第二服务器发生了故障,所以将所述第一服务设置为主服务,以保证网络系统正常运行;若所述第二服务正常运行,则申请重新建立所述第一服务和所述第二服务之间的长连接,以恢复完整的双机热备系统。实现了在导致心跳包丢失或者长连接断开时,通过预设键值数据库中的过期键值,准确探测第二服务与第一服务之间是发生了网络连接故障还是第二服务所在服务器本身发生了故障,进而进行相对应的主备切换策略,避免了由于主服务和备服务之间发生网络故障,而导致第一服务误判为第二服务器发生故障的情况发生,为双机热备系统进行主备切换提供了更加准确的依据,提升了双机热备系统中主备切换的准确性。
81.实施例四
82.本技术实施例提供一种双机热备优化方法,应用于第二服务器,在本技术双机热备优化方法的第一实施例中,与上述实施例一相同或相似的内容,可以参考上文介绍,后续不再赘述。在此基础上,参照图5,所述双机热备优化方法包括:
83.步骤e10,当所述第二服务器中的第二服务作为主服务时,定期维护预设键值数据库中的第二过期键值,其中,第一服务器通过向所述预设键值数据库获取所述第二过期键值,判断所述第二服务是否正常运行,以确定将第一服务设置为主服务还是备服务。
84.在本实施例中,需要说明的是,当所述第二服务器中的第二服务作为主服务时,所述第二服务将定期维护预设键值数据库中的第二过期键值,并依据本地监听端口监听第一服务,若通过本地监听端口监听到第一服务发送的长连接请求,则建立与第一服务之间的长连接。第一服务在连接第二服务失败时,将会向预设键值数据库获取所述第二服务定期维护的第二过期键值,以探测所述第二服务是否正常运行,若探测结果为第二服务正常运行,则将第一服务设置为备服务,若探测结果为第二服务未正常运行,则将第一服务设置为主服务。其中,第一服务器向预设键值数据库获取所述第二服务定期维护的第二过期键值,以探测所述第二服务是否正常运行的具体实现过程可参照上述步骤s30的具体实现过程,再次不在赘述。
85.其中,所述定期维护预设键值数据库中的第二过期键值的步骤包括:
86.步骤e11,向所述预设键值数据库写入所述第二过期键值;
87.步骤e12,定期更新所述第二过期键值,其中,所述第二过期键值的更新间隔时间小于所述第二过期键值的过期间隔时间。
88.在一种可实施的方式中,示例性的,在所述预设键值数据库中写入所述第二过期
键值,并定期更新所述预设键值数据库中的第二过期键值,其中,所述第二过期键值的更新间隔时间小于所述第二过期键值的过期间隔时间,以保证第二过期键值在预设键值数据库不会因为过期而被删除。所述第一服务在连接第二服务失败时,将向预设键值数据库连续获取第二过期键值,其中,所述第一服务向预设键值数据库连续获取第二过期键值的时间间隔大于所述第二过期键值的过期时间间隔,所以,在当第二服务未正常运行时,第一服务可能在第一次成功获取到第二过期键值,而由于第二服务未正常运行,第二过期键值将会因为过期而被删除,所以第一服务将会在第二次获取第二过期键值失败,进而第一服务成功探测到第二服务未正常运行,第一服务将切换为主服务,实现了在第一服务未成功连接作为主服务的第二服务时,协助第一服务探测第二服务是否正常运行的目的,为第一服务进行主备切换提供了准确依据,提升了第一服务进行主备切换的准确度。
89.在另一种可实施的方式中,所述第二服务通过在预设第一时间线的各预设基本时间单元中分别更新所述第二过期键值,以实现对第二过期键值的维护。所述第一服务将在预设第二时间线的各预设基本时间单元内分别向预设键值数据库获取所述第二过期键值,以探测所述第二服务是否正常运行。具体可参照上述步骤a11至步骤a12中的具体内容,在此不再赘述。
90.其中,所述双机热备优化方法还包括:
91.步骤f10,当所述第二服务未正常运行时,重新启动所述第二服务,并连接所述第二服务与所述第一服务,其中,所述第一服务器将所述第一服务设置为主服务;
92.步骤f20,若连接成功,则将所述第二服务设置为备服务;
93.步骤f30,若连接失败,则获取所述第一服务定期维护的预设键值数据库中的第一过期键值,以判断所述第一服务是否正常运行;
94.步骤f40,若所述第一服务正常运行,则将所述第二服务设置为备服务;
95.步骤f50,若所述第一服务未正常运行,则将所述第二服务设置为主服务。
96.示例性的,当所述第二服务未正常运行时,重新启动所述第二服务,并向第一服务器发送长连接请求,以连接所述第二服务与所述第一服务,其中,所述第一服务器将所述第一服务设置为主服务;若连接成功,则证明第一服务已作为主服务正在运行;若连接失败,则获取所述第一服务定期维护的预设键值数据库中的第一过期键值,以判断所述第一服务是否正常运行;若所述第一服务正常运行,则推断连接第一服务与第二服务失败的原因为网络连接抖动或者断开,进而将所述第二服务设置为备服务,并尝试连接第一服务与第二服务,以恢复完整的双机热备系统;若所述第一服务未正常运行,则推断连接第一服务与第二服务失败的原因为第一服务器发生故障,将所述第二服务设置为主服务,以保证网络系统的正常运行。
97.本技术实施例提供一种双机热备优化方法、系统、设备及计算机可读存储介质,相比于现有技术中采用的主服务和备服务通过心跳检测方式互相进行故障探测而进行主备切换的技术手段,本技术实施例中作为主服务的第二服务在运行时将会在预设键值数据库定期维护第二过期键值,连接第一服务与第二服务失败时,第一服务器将向预设键值数据库获取第二过期键值;若获取成功,则推断此时推断连接失败的原因大概率为网络连接抖动或者断开,第二服务正常运行,第一服务即可作为备服务,以防止存在多个主服务争抢数据;若获取失败,此时推断第二服务器发生故障而导致第二服务停止运行(未正常运行),所
以第一服务即可作为主服务,以保证网络系统可以正常运行。所以实现了通过主服务向预设键值数据库定期维护过期键值,协助备服务探测主服务与备服务之间网络发生故障的原因,也即为仅为网络抖动或者断开,还是为主服务所在服务器发生故障。可防止在主服务正常运行时,备服务由于网络连接抖动或者断开而误判主服务停止运行,而在已存在主服务的情况下将备服务切换为主服务的情况发生,也即可防止双机备热系统分裂为2个独立个体的情况发生,所以克服了当主服务正常运行但主服务与备服务之间的网络连接抖动或者断开时,备服务通常会误判主服务发生故障,并将自身设置为主服务,使得正常运行的双机备热系统分裂为2个独立个体争抢数据,从而影响网络系统的正常运行的技术缺陷,提升了双机热备系统中主备服务切换的准确度。
98.实施例五
99.本技术实施例还提供一种双机热备优化装置,所述双机热备优化装置应用于第一服务器,所述双机热备优化装置包括:
100.网络连接模块,用于通过第一服务读取本地配置文件,依据所述本地配置文件中的第二服务信息,连接所述第一服务和部署于第二服务器的第二服务;
101.第一主备切换模块,用于若连接成功,则将所述第一服务设置为备服务;
102.键值获取模块,用于若连接失败,则获取所述第二服务定期维护的预设键值数据库中的第二过期键值,以判断所述第二服务是否正常运行,其中,所述预设键值数据库部署于第三服务器;
103.第二主备切换模块,用于若所述第二服务未正常运行,则将所述第一服务设置为主服务;
104.第三主备切换模块,用于若所述第二服务正常运行,则将所述第一服务设置为备服务。
105.可选地,所述双机热备优化装置还用于:
106.若检测到所述第一服务与所述第二服务之间发生心跳丢失或者发生长连接断开,则检测是否接收到所述第二服务的长连接请求;
107.若接收到所述第二服务的长连接请求,则将所述第一服务设置为主服务;
108.建立所述第一服务与所述第二服务之间的长连接,以供所述第二服务器确定所述第二服务成功连接所述第一服务后,将所述第二服务设置为备服务;
109.若未接收到所述第二服务的长连接请求,则获取所述第二服务定期维护的预设键值数据库中的第二过期键值,以判断所述第二服务是否正常运行;
110.若所述第二服务未正常运行,则将所述第一服务设置为主服务;
111.若所述第二服务正常运行,则申请重新建立所述第一服务和所述第二服务之间的长连接。
112.可选地,所述键值获取模块还用于:
113.向所述预设键值数据库连续获取所述第二服务定期更新的第二过期键值,其中,连续获取的间隔时间大于所述第二过期键值的过期间隔时间;
114.若连续获取所述第二过期键值成功,则判定所述第二服务正常运行;
115.若连续获取所述第二过期键值失败,则判定所述第二服务未正常运行。
116.可选地,所述双机热备优化装置还用于:
117.定期维护所述预设键值数据库中的第一过期键值。
118.可选地,所述双机热备优化装置还用于:
119.向所述预设键值数据库写入所述第一过期键值;
120.定期更新所述第一过期键值,其中,所述第一过期键值的更新间隔时间小于所述第一过期键值的过期间隔时间。
121.本技术提供的双机热备优化装置,采用上述实施例中的双机热备优化方法,解决了双机热备系统中主备服务切换准确度低的技术问题。与现有技术相比,本技术实施例提供的双机热备优化装置的有益效果与上述实施例提供的双机热备优化方法的有益效果相同,且该双机热备优化装置中的其他技术特征与上一实施例方法公开的特征相同,在此不做赘述。
122.实施例六
123.本技术实施例还提供一种双机热备优化装置,所述双机热备优化装置应用于第二服务器,所述双机热备优化装置包括:
124.键值维护模块,用于当所述第二服务器中的第二服务作为主服务时,定期维护预设键值数据库中的第二过期键值,其中,第一服务器通过向所述预设键值数据库获取所述第二过期键值,判断所述第二服务是否正常运行,以确定将第一服务设置为主服务还是备服务。
125.可选地,所述键值维护模块还用于:
126.向所述预设键值数据库写入所述第二过期键值;
127.定期更新所述第二过期键值,其中,所述第二过期键值的更新间隔时间小于所述第二过期键值的过期间隔时间。
128.可选地,所述双机热备优化装置还用于:
129.当所述第二服务未正常运行时,重新启动所述第二服务,并连接所述第二服务与所述第一服务,其中,所述第一服务器将所述第一服务设置为主服务;
130.若连接成功,则将所述第二服务设置为备服务;
131.若连接失败,则获取所述第一服务定期维护的预设键值数据库中的第一过期键值,以判断所述第一服务是否正常运行;
132.若所述第一服务正常运行,则将所述第二服务设置为备服务;
133.若所述第一服务未正常运行,则将所述第二服务设置为主服务。
134.本技术提供的双机热备优化装置,采用上述实施例中的双机热备优化方法,解决了双机热备系统中主备服务切换准确度低的技术问题。与现有技术相比,本技术实施例提供的双机热备优化装置的有益效果与上述实施例提供的双机热备优化方法的有益效果相同,且该双机热备优化装置中的其他技术特征与上一实施例方法公开的特征相同,在此不做赘述。
135.实施例七
136.本技术实施例还提供一种双机热备优化系统,所述双机热备优化系统包括:
137.第一服务器,所述第一服务器用于:通过第一服务读取本地配置文件,依据所述本地配置文件中的第二服务信息,连接所述第一服务和部署于第二服务器的第二服务;若连接成功,则将所述第一服务设置为备服务;若连接失败,则获取所述第二服务定期维护的预
设键值数据库中的第二过期键值,以判断所述第二服务是否正常运行,其中,所述预设键值数据库部署于第三服务器;若所述第二服务未正常运行,则将所述第一服务设置为主服务;若所述第二服务正常运行,则将所述第一服务设置为备服务;
138.第二服务器,所述第二服务器用于:当所述第二服务器中的第二服务作为主服务时,定期维护所述预设键值数据库中的第二过期键值,其中,第一服务器通过向所述预设键值数据库获取所述第二过期键值,判断所述第二服务是否正常运行,以确定将第一服务设置为主服务还是备服务;
139.第三服务器,所述第三服务器用于部署所述预设键值数据库。
140.本技术提供的双机热备优化系统,采用上述实施例中的双机热备优化方法,解决了双机热备系统中主备服务切换准确度低的技术问题。与现有技术相比,本技术实施例提供的双机热备优化系统的有益效果与上述实施例提供的双机热备优化方法的有益效果相同,且该双机热备优化系统中的其他技术特征与上一实施例方法公开的特征相同,在此不做赘述。
141.实施例八
142.本技术实施例提供一种电子设备,电子设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例一中的双机热备优化方法。
143.下面参考图6,其示出了适于用来实现本公开实施例的电子设备的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
144.如图6所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(rom)中的程序或者从存储装置加载到随机访问存储器(ram)中的程序而执行各种适当的动作和处理。在ram中,还存储有电子设备操作所需的各种程序和数据。处理装置、rom以及ram通过总线彼此相连。输入/输出(i/o)接口也连接至总线。
145.通常,以下系统可以连接至i/o接口:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置;包括例如磁带、硬盘等的存储装置;以及通信装置。通信装置可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种系统的电子设备,但是应理解的是,并不要求实施或具备所有示出的系统。可以替代地实施或具备更多或更少的系统。
146.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置被安装,或者从rom被安装。在该计算机程序被处理装置执行时,执行本公开实施例的方法中限定的上述功能。
147.本技术提供的电子设备,采用上述实施例中的双机热备优化方法,解决了双机热备系统中主备服务切换准确度低的技术问题。与现有技术相比,本技术实施例提供的电子设备的有益效果与上述实施例提供的双机热备优化方法的有益效果相同,且该电子设备中的其他技术特征与上一实施例方法公开的特征相同,在此不做赘述。
148.应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
149.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
150.实施例九
151.本实施例提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,计算机可读程序指令用于执行上述实施例一中的双机热备优化的方法。
152.本技术实施例提供的计算机可读存储介质例如可以是u盘,但不限于电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
153.上述计算机可读存储介质可以是电子设备中所包含的;也可以是单独存在,而未装配入电子设备中。
154.上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被电子设备执行时,使得电子设备:通过第一服务读取本地配置文件,依据所述本地配置文件中的第二服务信息,连接所述第一服务和部署于第二服务器的第二服务;若连接成功,则将所述第一服务设置为备服务;若连接失败,则获取所述第二服务定期维护的预设键值数据库中的第二过期键值,以判断所述第二服务是否正常运行,其中,所述预设键值数据库部署于第三服务器;若所述第二服务未正常运行,则将所述第一服务设置为主服务;若所述第二服务正常运行,则将所述第一服务设置为备服务。
155.或者当所述第二服务器中的第二服务作为主服务时,定期维护预设键值数据库中的第二过期键值,其中,第一服务器通过向所述预设键值数据库获取所述第二过期键值,判断所述第二服务是否正常运行,以确定将第一服务设置为主服务还是备服务。
156.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。
在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
157.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
158.描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定。
159.本技术提供的计算机可读存储介质,存储有用于执行上述双机热备优化方法的计算机可读程序指令,解决了双机热备系统中主备服务切换准确度低的技术问题。与现有技术相比,本技术实施例提供的计算机可读存储介质的有益效果与上述实施例提供的双机热备优化方法的有益效果相同,在此不做赘述。
160.实施例十
161.本技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的双机热备优化方法的步骤。
162.本技术提供的计算机程序产品解决了双机热备系统中主备服务切换准确度低的技术问题。与现有技术相比,本技术实施例提供的计算机程序产品的有益效果与上述实施例提供的双机热备优化方法的有益效果相同,在此不做赘述。
163.以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利处理范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献