发明内容
本发明的主要目的为提供一种容灾方法及系统,可实现服务器和客户端的相互容灾。
本发明提供一种容灾方法,该方法包括以下步骤:
主客户端及/或备用客户端定时向DNS主服务器发送心跳检测消息,以检测所述DNS主服务器是否处于异常状况;
若发送心跳检测消息的所述主客户端及/或备用客户端在预设时间内未接收到所述DNS主服务器的心跳响应,则确定所述DNS主服务器处于异常状况;
发送所述心跳检测消息的主客户端及/或备用客户端根据预存的可用DNS备用服务器列表,选择优先级高的DNS备用服务器,并向选择的DNS备用服务器发送业务请求,以使所述选择的DNS备用服务器接替处于异常状况的所述DNS主服务器的工作。
优选地,该方法还包括:
主客户端及/或备用客户端定时向DNS备用服务器发送心跳检测消息,以检测所述DNS备用服务器是否处于异常状况;
若发送心跳检测消息的所述主客户端及/或备用客户端在预设时间内未接收到所述DNS备用服务器的心跳响应,则确定所述DNS备用服务器处于异常状况;
发送心跳检测消息的主客户端及/或备用客户端更新预存的可用DNS备用服务器列表,将处于异常状况的DNS备用服务器的从可用DNS备用服务器列表中删除。
优选地,该方法还包括:
若DNS主服务器及/或DNS备用服务器在预设时间内未接收到所述主客户端发送的心跳检测消息,则确定所述主客户端处于异常状况;
未接收到心跳检测消息的DNS主服务器及/或DNS备用服务器在接收到查询装置的查询请求时,根据预存的备用客户端可用列表,选择优先级高的备用客户端,并将该选择的备用客户端的地址信息发送给查询装置。
优选地,该方法还包括:
若所述DNS主服务器及/或DNS备用服务器在预设时间内未接收到所述备用客户端发送的心跳检测消息,则确定所述备用客户端处于异常状况;
未接收到心跳检测消息的DNS主服务器及/或DNS备用服务器更新预存的备用客户端可用列表,将处于异常状况的备用客户端从备用客户端可用列表中删除。
优选地,所述向选择的DNS备用服务器发送业务请求,以使所述选择的DNS备用服务器接替处于异常状况的所述DNS主服务器的工作的步骤之后,该方法还包括以下步骤:
所述主客户端及/或备用客户端继续定时向所述DNS主服务器发送心跳检测消息,以检测所述DNS主服务器是否恢复到正常状况;
若所述主客户端及/或备用客户端在预设时间内接收到所述DNS主服务器的心跳响应,则确定所述DNS主服务器已从异常状况恢复到正常状况;
所述主客户端及/或备用客户端向所述DNS主服务器发送业务请求,以使所述DNS主服务器接替选择的DNS备用服务器继续工作。
本发明还提供一种容灾系统,该系统包括:一个DNS主服务器、至少一个DNS备用服务器、一个主客户端、至少一个备用客户端,所述DNS主服务器与所述主客户端、备用客户端分别连接,所述DNS备用服务器与所述主客户端、备用客户端分别连接;;
所述主客户端包括第一收发模块、第一确定模块、第一选择模块和第一存储模块,所述第一存储模块用于存储可用DNS备用服务器列表;
所述备用客户端包括第二收发模块、第二确定模块、第二选择模块和第二存储模块,所述第二存储模块用于存储可用DNS备用服务器列表;
所述主客户端的第一收发模块及/或备用客户端的第二收发模块用于定时所述DNS主服务器发送心跳检测消息,以检测所述DNS主服务器是否处于异常状况;
发送所述心跳检测消息的主客户端的第一收发模块及/或备用客户端的第二收发模块在预设时间内未接收到所述DNS主服务器的心跳响应,则发送所述心跳检测消息的所述主客户端的第一确定模块及/或备用客户端的第二确定模块确定所述DNS主服务器处于异常状况;
所述发送所述心跳检测消息的主客户端的第一选择模块及/或备用客户端的第二选择模块根据预存的可用DNS备用服务器列表,选择优先级高的DNS备用服务器,并通过所述第一收发模块及/或第二收发模块向所述选择的DNS备用服务器发送业务请求,以使所述选择的DNS备用服务器接替处于异常状况的所述DNS主服务器的工作。
优选地,所述主客户端还包括第一更新模块,所述备用客户端还包括第二更新模块;
所述主客户端的第一收发模块及/或备用客户端的第二收发模块还用于定时所述DNS备用服务器发送心跳检测消息,以检测所述DNS备用服务器是否处于异常状况;
发送所述心跳检测消息的主客户端的第一收发模块及/或备用客户端的第二收发模块在预设时间内未接收到所述DNS备用服务器的心跳响应,则发送所述心跳检测消息的所述主客户端的第一确定模块及/或备用客户端的第二确定模块确定所述DNS备用服务器处于异常状况;
发送所述心跳检测消息的主客户端的第一更新模块及/或备用客户端的第二更新模块更新预存的可用DNS备用服务器列表,将处于异常状况的DNS备用服务器从可用DNS备用服务器列表中删除。
优选地,所述DNS主服务器包括第三收发模块、第三确定模块、第三选择模块、第五收发模块和第三存储模块,所述第三存储模块用于存储备用客户端可用列表;所述DNS备用服务器包括第四收发模块、第四确定模块、第四选择模块、第六收发模块和第四存储模块,所述第四存储模块用于存储可用DNS备用服务器列表;
所述DNS主服务器的第三收发模块的及/或DNS备用服务器的第四收发模块在预设时间内未接收到所述主客户端发送的心跳检测消息时,则所述DNS主服务器的第三确定模块及/或DNS备用服务器的第四确定模块确定所述主客户端处于异常状况;
未接收到心跳检测消息的DNS主服务器的第五收发模块及/或DNS备用服务器的第六收发模块在接收到查询装置的查询请求时,所述第三选择模块及/或DNS备用服务器的第四选择模块根据预存的备用客户端可用列表,选择优先级高的备用客户端,并通过所述第五收发模块及/或第六收发模块将选择的备用客户端的地址信息发送给查询装置。
优选地,所述DNS主服务器包括第三更新模块,所述DNS备用服务器包括第四更新模块;
所述DNS主服务器的第三收发模块的及/或DNS备用服务器的第四收发模块在预设时间内未接收到所述备用客户端发送的心跳检测消息时,则未接收到心跳检测消息响应的DNS主服务器的第三确定模块及/或DNS备用服务器的第四确定模块确定所述备用客户端处于异常状况;
所述DNS主服务器的第三更新模块及/或DNS备用服务器的第四更新模块更新预存的备用客户端可用列表,将处于异常状况的备用客户端从备用客户端可用列表中删除。
优选地,所述主客户端的第一收发模块及/或备用客户端的第二收发模块还用于继续定时向所述DNS主服务器发送心跳检测消息,以检测所述DNS主服务器是否恢复到正常状况;
所述主客户端的第一收发模块及/或备用客户端的第二收发模块在预设时间内接收到所述DNS主服务器的心跳响应时,则主客户端的第一确定模块及/或备用客户端的第二确定模块确定所述DNS主服务器已从异常状况恢复到正常状况,
所述主客户端的第一收发模块及/或备用客户端的第二收发模块用于向所述DNS主服务器发送业务请求,以使所述DNS主服务器接替选择的DNS备用服务器继续工作。
本发明通过,主客户端及/或备用客户端定时向DNS主服务器发送心跳检测消息,并根据主客户端及/或备用客户端是否接收到DNS主服务器的心跳响应以确定DNS主服务器是否处于异常状况,当DNS主服务器处于异常状况时,则主客户端及/或备用客户端从预存的可用DNS备用服务器列表,选择优先级高的DNS备用服务器,并向选择的DNS备用服务器发送业务请求,以使所述选择的DNS备用服务器接替处于异常状况的DNS主服务器的工作。通过主客户端及/或备用客户端检测DNS主服务器是否异常,及在DNS主服务器异常时,启用DNS备用服务器,可实现DNS主服务器、DNS备用服务器与主客户端、备用客户端的之间相互容灾。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明的容灾方法的第一实施例的流程示意图,该方法包括以下步骤:
S10、主客户端及/或备用客户端定时向DNS主服务器发送心跳检测消息,以检测该DNS主服务器是否处于异常状况。
该主客户端及/或备用客户端可按照预设周期定时向该DNS主服务器发送心跳检测消息,该预设周期可根据实际需要预先设定,如可设定该预设周期为5秒。
S20、若发送该心跳检测消息的该主客户端及/或备用客户端在预设时间内未接收到该DNS主服务器的心跳响应,则确定该DNS主服务器处于异常状况。
该预设时间可根据实际需要设置,如可设置为10秒。在该步骤S20中,当发送该心跳检测消息的主客户端及/或备用客户端在预设时间内未接收到该DNS主服务器的心跳响应,则可认为DNS主服务器处于异常状况,不能正常工作。若发送该心跳检测消息的主客户端及/或备用客户端在预设时间内接收到该DNS主服务器的心跳响应,则确定该DNS主服务器处于正常状况。
S30、发送该心跳检测消息的主客户端及/或备用客户端根据预存的可用DNS备用服务器列表,选择优先级高的DNS备用服务器,并向该选择的DNS备用服务器发送业务请求,以使该选择的DNS备用服务器接替该DNS主服务器的工作。
主客户端和备用客户端中都预先存储了可用DNS备用服务器列表,且该主客户端和备用客户端中存储的可用DNS备用服务器列表相同。该可用DNS备用服务器列表包括了所有可用DNS备用服务器及各可用DNS备用服务器对应的优先级,该可用DNS备用服务器列表如下表一所示。
表一
在该步骤S30中,发送心跳检测消息的主客户端及/或备用客户端根据预存的可用DNS备用服务器列表,选择优先级高的DNS备用服务器,如选择优先级高的标识号为001的DNS备用服务器,然后该主客户端及/或备用客户端向该标识号为001的DNS备用服务器发送业务请求,以使该标识号为001的DNS备用服务器接替该DNS主服务器的工作。
参照图2,图2为本发明的容灾方法的第二实施例的流程示意图。
基于上述容灾方法的第一实施例,在执行步骤S10之前或之后或同时,该方法还包括:
S40、主客户端及/或备用客户端定时向DNS备用服务器发送心跳检测消息,以检测该DNS备用服务器是否处于异常状况。
该主客户端及/或备用客户端可按照预设周期定时向该DNS备用服务器发送心跳检测消息,该预设周期可根据实际需要预先设定,如可设定该预设周期为5秒。
S50、若发送心跳检测消息的主客户端及/或备用客户端在预设时间内未接收到该DNS备用服务器的心跳响应,则确定该DNS备用服务器处于异常状况。
当主客户端及/或备用客户端在预设时间内未接收到该DNS备用服务器的心跳响应,如未接收到标识号为006的DNS备用服务器的心跳响应,则确定该标识号为006的DNS服务器处于异常状况,如接收到标识号为005的DNS备用服务器的心跳响应,则确定该标识号为005的DNS服务器处于正常状况。
S60、发送心跳检测消息的主客户端及/或备用客户端更新预存的可用DNS备用服务器列表,将处于异常状况的DNS备用服务器从可用DNS备用服务器列表中删除。
在该步骤S60中,发送心跳检测消息的主客户端及/或备用客户端更新预存的可用DNS备用服务器列表,将出现异常状况的DNS备用服务器从可用DNS备用服务器列表中删除;则当DNS主服务器出现异常时,该主客户端及/或备用客户端不会选择该出现异常状况的DNS备用服务器接替DNS主服务器的工作。
参照图3,图3为本发明的容灾方法的第三实施例的流程示意图。
基于上述容灾方法的第一实施例,在步骤S10之后,该方法还包括:
S70、若DNS主服务器及/或DNS备用服务器在预设时间内未接收到该主客户端发送的心跳检测消息,则确定该主客户端处于异常状况。
该预设时间可根据实际需要设置,如可设置为5秒。在该步骤S70中,当DNS主服务器及/或DNS备用服务器在预设时间内未接收到该主客户端发送的心跳检测消息,则可认为主客户端处于异常状况,不能正常工作。若DNS主服务器及/或DNS备用服务器在预设时间内接收到该主客户端发送的心跳检测消息,则确定该主客户端处于正常状况。
S80、该未接收到心跳检测消息的DNS主服务器及/或DNS备用服务器在接收到查询装置的查询请求时,根据预存的备用客户端可用列表,选择优先级高的备用客户端,并将该选择的备用客户端的地址信息发送给查询装置。
DNS主服务器及/或DNS备用服务器都预先存储了备用客户端可用列表,且该DNS主服务器及/或DNS备用服务器中存储的备用客户端可用列表相同。该备用客户端可用列表包括了所有备用客户端、各备用客户端对应的优先级及各备用客户端的地址信息,该备用客户端可用列表如下表二所示。
表二
在该步骤S80中,该DNS主服务器及/或DNS备用服务器在接收到到查询装置的查询请求(查询装置向DNS主服务器及/或DNS备用服务器发送查询请求,确定其可使用的主客户端或备用客户端)时,DNS主服务器及/或DNS备用服务器根据预存的备用客户端可用列表,选择优先级高的备用客户端,如选择优先级高的标识号为A01的备用客户端,然后将该选择的备用客户端的地址信息发送给查询装置;该查询装置可根据从DNS主服务器及/或DNS备用服务器返回的可用备用客户端的地址信息,与该选择的备用客户端建立连接,进行通信。
进一步的,在步骤S80之后,该方法还包括:
S81、该DNS主服务器及/或DNS备用服务器继续检测是否接收该主客户端发送的心跳检测消息,若该DNS主服务器及/或DNS备用服务器接收该主客户端发送的心跳检测消息,则确定该主客户端已从异常状况恢复到正常状况。
S82、该DNS主服务器及/或DNS备用服务器向查询装置发送该主客户端的地址信息,以使得该查询装置与主客户端建立连接,进行通信。。
当主客户端恢复到正常状态后,该DNS主服务器及/或DNS备用服务器向查询装置发送主客户端的地址信息,告诉查询装置可不使用原来DNS主服务器及/或DNS备用服务器为其提供的备用客户端(如步骤80中选择的备用客户端),而使用主客户端进行通信。
参照图4,图4为本发明的容灾方法的第四实施例的流程示意图。
基于上述容灾方法的第一实施例,在步骤S10之前或之后或同时,该方法还包括:
S90、若该DNS主服务器及/或DNS备用服务器在预设时间内未接收到该备用客户端发送的心跳检测消息,则确定该备用客户端处于异常状况。
该预设时间可根据实际需要设置,如可设置为5秒。当该DNS主服务器及/或DNS备用服务器在预设时间内未接收到该备用客户端发送的心跳检测消息,如未接收到标识号为A06的备用客户端的心跳检测消息,则确定该标识号为A06的备用客户端处于异常状况,如接收到标识号为A05的备用客户端的心跳检测消息,则确定该标识号为A05的备用客户端处于正常状态。
S100、未接收到心跳检测消息的DNS主服务器及/或DNS备用服务器更新预存的备用客户端可用列表,将处于异常状况的备用客户端从备用客户端可用列表中删除。
在该步骤S100中,DNS主服务器及/或DNS备用服务器更新预存的备用客户端可用列表,将出现异常状况的备用客户端从备用客户端可用列表中删除;则当主客户端出现异常时,该DNS主服务器及/或DNS备用服务器不会选择该出现异常状况的备用客户端的地址信息返回给查询装置。
参照图5,图5为本发明的容灾方法的第五实施例的流程示意图。
基于上述容灾方法的第一实施例,在步骤S30之后,该方法还包括:
S110、该主客户端及/或备用客户端继续定时向该DNS主服务器发送心跳检测消息,以检测该DNS主服务器是否恢复到正常状况。
S120、若该主客户端及/或备用客户端在预设时间内接收到该DNS主服务器的心跳响应,则确定该DNS主服务器已从异常状况恢复到正常状况。
S130、该主客户端及/或备用客户端向该DNS主服务器发送业务请求,以使该DNS主服务器接替选择的DNS备用服务器继续工作。
当DNS主服务器恢复到正常状态后,该主客户端及/或备用客户端向其发送业务请求,以使得该DNS主服务器继续工作,处理相关业务。
当DNS主服务器恢复到正常状态后,之前接替DNS主服务器工作的DNS备用服务器停止接替DNS主服务器的工作,恢复到备用状态。
参照图6,图6为本发明的容灾系统的第一实施例的结构示意图,该容灾系统包括:一个DNS主服务器10、至少一个DNS备用服务器20、一个主客户端30、至少一个备用客户端40,所述DNS主服务器10与所述主客户端30、备用客户端40分别连接,所述DNS备用服务器20与所述主客户端30、备用客户端40分别连接;
该主客户端30包括第一收发模块31、第一确定模块32、第一选择模块33和第一存储模块34,该第一存储模块34用于存储可用DNS备用服务器列表;
该备用客户端40包括第二收发模块41、第二确定模块42、第二选择模块43和第二存储模块44,该第二存储模块44用于存储可用DNS备用服务器列表;
该主客户端30的第一收发模块31及/或备用客户端40的第二收发模块41定时向该DNS主服务器10和DNS备用服务器20发送心跳检测消息,以检测该DNS主服务器是否处于异常状况;
该发送该心跳检测消息的主客户端30的第一收发模块31及/或备用客户端40的第二收发模块41在预设时间内未接收到该DNS主服务器10的心跳响应,则发送该心跳检测消息的该主客户端30的第一确定模块及32/或备用客户端40的第二确定模块42确定该DNS主服务器10处于异常状况;
该发送该心跳检测消息的主客户端30的第一选择模块33及/或备用客户端40的第二选择模块43根据预存的可用DNS备用服务器列表,选择优先级高的DNS备用服务器,并通过该第一收发模块31及/或第二收发模块41向该选择的DNS备用服务器发送业务请求,以使该选择的DNS备用服务器接替处于异常状况的该DNS主服务器的工作。
该主客户端30的第一收发模块31及/或备用客户端40的第二收发模块41可按照预设周期定时向该DNS主服务器发送心跳检测消息,该预设周期可根据实际需要预先设定,如可设定该预设周期为5秒。该主客户端30及/或备用客户端40按预设周期定时向DNS主服务器10和DNS备用服务器20发送心跳检测消息,以检测该DNS主服务器10和DNS备用服务器20是否处于正常工作状态。
该预设时间可根据实际需要设置,如可设置为10秒。当发送该心跳检测消息的主客户端30及/或备用客户端40在预设时间内未接收到该DNS主服务器10的心跳响应,则可认为DNS主服务器10处于异常状况,不能正常工作。若该主客户端30及/或备用客户端40在预设时间内接收到该DNS主服务器10的心跳响应,则确定该DNS主服务器10处于正常状况。
主客户端30的第一存储模块34和备用客户端40的第二存储模块44中都预先存储了可用DNS备用服务器列表,且该主客户端30和备用客户端40中存储的可用DNS备用服务器列表相同。该可用DNS备用服务器列表包括了所有可用DNS备用服务器及各可用DNS备用服务器对应的优先级,该可用DNS备用服务器列表如上述表一所示。
主客户端30的第一选择模块33及/或备用客户端40的第二选择模块43根据预存的可用DNS备用服务器列表,选择优先级高的DNS备用服务器,如选择优先级高的标识号为001的DNS备用服务器,然后该主客户端30的第一收发模块31及/或备用客户端40的第二收发模块41向该标识号为001的DNS备用服务器发送业务请求,以使该标识号为001的DNS备用服务器接替该DNS主服务器10的工作。
进一步的,该主客户端30的第一收发模块31及/或备用客户端40的第二收发模块41在向该选择的DNS备用服务器20发送业务请求以使该选择的DNS备用服务器20接替该DNS主服务器10工作后,还继续定时向该DNS主服务器10发送心跳检测消息,以检测该DNS主服务器是否恢复到正常状况。
该主客户端30的第一收发模块31及/或备用客户端40的第二收发模块41在预设时间内接收到该DNS主服务器10的心跳响应时,则主客户端30的第一确定模块32及/或备用客户端40的第二确定模块42确定该DNS主服务器10已从异常状况恢复到正常状况。
该主客户端30的第一收发模块31及/或备用客户端40的第二收发模块41还用于在DNS主服务器恢复正常时,继续向该DNS主服务器10发送业务请求,以使该DNS主服务器10接替选择的DNS备用服务器20继续工作,处理相关业务。
当DNS备用服务接替DNS主服务器工作后,该主客户端及/或备用客户端继续按预设周期定时向该DNS主服务器发送心跳检测消息,以检测该DNS主服务器是否从异常状态恢复到正常状态。当DNS主服务器恢复到正常状态后,该主客户端及/或备用客户端向其发送业务请求,以使得该DNS主服务器继续工作,处理相关业务;及当DNS主服务器恢复到正常状态后,原来接替该DNS主服务器工作的DNS备用服务器不再接替DNS主服务器的工作,而恢复到备用状态。
参照图7,图7为本发明的容灾系统的第二实施例的结构示意图。
基于本发明的容灾系统的第一实施例,该主客户端30还包括第一更新模块35,该备用客户端40还包括第二更新模块45;
该主客户端的第一收发模块及/或备用客户端的第二收发模块定时该DNS备用服务器发送心跳检测消息,以检测该DNS备用服务器是否处于异常状况;
发送该心跳检测消息的主客户端30的第一收发模块31及/或备用客户端40的第二收发模块41在预设时间内未接收到该DNS备用服务器的心跳响应,则发送该心跳检测消息的主客户端30的第一确定模块32及/或备用客户端40的第二确定模块42确定该DNS备用服务器20处于异常状况;
该主客户端30的第一更新模块35及/或备用客户端40的第二更新模块45更新预存的可用DNS备用服务器列表,将处于异常状况的DNS备用服务器从可用DNS备用服务器列表中删除。
当主客户端30的第一收发模块31及/或备用客户端40的第二收发模块41在预设时间内未接收到该DNS备用服务器20的心跳响应,如未接收到标识号为006的DNS备用服务器20的心跳响应,则确定该标识号为006的DNS服务器20处于异常状况,如接收到标识号为005的DNS备用服务器20的心跳响应,则确定该标识号为005的DNS服务器20处于正常状况。
主客户端30的第一更新模块35及/或备用客户端40的第二更新模块45更新预存的可用DNS备用服务器列表,将出现异常状况的DNS备用服务器从可用DNS备用服务器列表中删除;则当DNS主服务器10出现异常时,该主客户端30的第一选择模块33及/或备用客户端40的第二选择模块43不会选择该出现异常状况的DNS备用服务器接替DNS主服务器10处理业务。
参照图8,图8为本发明的容灾系统的第三实施例的结构示意图。
基于本发明的容灾系统的第二实施例,该DNS主服务器10包括第三收发模块11、第三确定模块12、第三选择模块13、第五收发模块15和第三存储模块14,该第三存储模块14用于存储备用客户端可用列表;该DNS备用服务器20包括第四收发模块21、第四确定模块22、第四选择模块23、第六收发模块25和第四存储模块24,该第四存储模块24用于存储可用DNS备用服务器列表;
该DNS主服务器10的第三收发模块11的及/或DNS备用服务器20的第四收发模块21在预设时间内未接收到该主客户端30发送的心跳检测消息时,则该DNS主服务器10的第三确定模块12及/或DNS备用服务器20的第四确定模块22确定该主客户端30处于异常状况;
未接收到心跳检测消息的DNS主服务器10的第五收发模块及/或DNS备用服务器的第六收发模块在接收到查询装置的查询请求时,所述第三选择模块13及/或DNS备用服务器20的第四选择模块23根据预存的备用客户端可用列表,选择优先级高的备用客户端,并通过该第五收发模块15及/或第六收发模块25将选择的备用客户端的地址信息发送给查询装置。
该预设时间可根据实际需要设置,如可设置为5秒。当该DNS主服务器10的第三收发模块11及/或DNS备用服务器20的第四收发模块21在预设时间内未接收到该主客户端30发送的心跳检测消息,则可认为主客户端处于异常状况,不能正常工作。若该DNS主服务器10的第三收发模块11及/或DNS备用服务器20的第四收发模块21在预设时间内接收到该主客户端30发送的心跳检测消息,则确定该主客户端30处于正常状况。
DNS主服务器10的第三存储模块14及/或DNS备用服务器20的第四存储模块24都预先存储了备用客户端可用列表,且该DNS主服务器及/或DNS备用服务器中存储的备用客户端可用列表相同。该备用客户端可用列表包括了所有备用客户端及各备用客户端对应的优先级,该备用客户端可用列表如上述表二所示。
未接收到心跳检测消息的DNS主服务器10的第五收发模块15及/或DNS备用服务器的第六收发模块25在接收到查询装置的查询请求时,所述第三选择模块13及/或DNS备用服务器20的第四选择模块23根据预存的备用客户端可用列表,选择优先级高的备用客户端,如选择优先级高的标识号为A01的备用客户端,然后将该选择的备用客户端的地址信息通过DNS主服务器10的第五收发模块15及/或DNS备用服务器20的第六收发模块25发送给查询装置;该查询装置可根据从DNS主服务器及/或DNS备用服务器返回的可用备用客户端的地址信息,与该选择的备用客户端建立连接,进行通信。
进一步的,该DNS主服务器10的第三收发模块11及/或DNS备用服务器20的第四收发模块21继续检测是否接收该主客户端30发送的心跳检测消息,若该DNS主服务器及/或DNS备用服务器接收该主客户端发送的心跳检测消息,则确定该主客户端已从异常状况恢复到正常状况。然后,该DNS主服务器10的第五收发模块15及/或DNS备用服务器20的第六收发模块25向查询装置发送该主客户端的地址信息,以使得该查询装置与主客户端建立连接,进行通信。。即当主客户端30恢复到正常状态后,该DNS主服务器10及/或DNS备用服务器20向查询装置发送主客户端的地址信息,告诉查询装置可不使用原来DNS主服务器及/或DNS备用服务器为其提供的备用客户端(如在前面由DNS主服务器及/或DNS备用服务器返回给查询装置的备用客户端),而使用主客户端进行通信。
参照图9,图9为本发明的容灾系统的第四实施例的结构示意图。
基于本发明的容灾系统的第三实施例,该DNS主服务器10还包括第三更新模块15,该DNS备用服务器20包括第四更新模块25;
该DNS主服务器10的第三收发模块11的及/或DNS备用服务器20的第四收发模块21在预设时间内未接收到该备用客户端40发送的心跳检测消息时,则未接收到心跳检测消息的DNS主服务器10的第三确定模块12及/或DNS备用服务器20的第四确定模块22确定该备用客户端40处于异常状况;
该DNS主服务器10的第三更新模块15及/或DNS备用服务器20的第四更新模块25更新预存的备用客户端可用列表,将处于异常状况的备用客户端从备用客户端可用列表中删除。
该预设时间可根据实际需要设置,如可设置为5秒。当该DNS主服务器10的第三收发模块11及/或DNS备用服务器20的第四收发模块21在预设时间内未接收到该备用客户端40发送的心跳检测消息,如未接收到标识号为A06的备用客户端40的心跳检测消息,则确定该标识号为A06的备用客户端40处于异常状况,如接收到标识号为A05的备用客户端40的心跳检测消息,则确定该标识号为A05的备用客户端40处于正常状态。
DNS主服务器10的第三更新模块15及/或DNS备用服务器20的第四更新模块25更新预存的备用客户端可用列表,将出现异常状况的备用客户端从备用客户端可用列表中删除;则当主客户端30出现异常时,该DNS主服务器10的第三选择模块13及/或DNS备用服务器20的第四选择模块23不会选择该出现异常状况的备用客户端40的地址信息返回给查询装置。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围。