CN103269357B - 一种实现应用服务高可用的方法及装置 - Google Patents
一种实现应用服务高可用的方法及装置 Download PDFInfo
- Publication number
- CN103269357B CN103269357B CN201310144048.5A CN201310144048A CN103269357B CN 103269357 B CN103269357 B CN 103269357B CN 201310144048 A CN201310144048 A CN 201310144048A CN 103269357 B CN103269357 B CN 103269357B
- Authority
- CN
- China
- Prior art keywords
- service
- described application
- application service
- application
- state
- 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.)
- Expired - Fee Related
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种实现应用服务高可用的方法,其特征在于,包括:获取当前状态信息列表,所述当前状态信息列表包括当前处于正常服务状态的应用服务信息;将所述当前状态信息列表发送给处于正常应用状态的应用终端,以供所述应用终端将其应用的应用服务切换至所述当前状态信息列表中相应的应用服务。本发明实施例还公开了一种终端。采用本发明,具有可为应用终端提供处于正常服务运作状态的应用服务的状态信息列表,以供应用终端将其应用的应用服务切换至处于正常服务状态的应用服务,可保障应用终端的正常运作,提高应用服务的可用性的优点。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种实现应用服务高可用的方法及装置。
背景技术
随着互联网的发展,互联网用户量、访问量的飞速发展,服务器端应用程序的规模越来越大,复杂度也越来越高,使得因为部分服务器或者服务进程发生故障,导致整个系统的可用性出现问题的状况频发,严重影响整个系统的用户体验效果。如何分层管理、高效地整合服务器或者服务进程资源,降低服务器或者服务进程故障对整个系统的影响,提高服务器或者服务进程的可用性,成为当前亟待解决的问题。
现有技术中,实现服务器或者服务进程高可用的方法主要是通过仲裁盘加心跳计数实现高可用。通过在共享存储上划定一小块空间作为仲裁磁盘使用,各节点的仲裁磁盘守护进程将节点的心跳计数等状态信息写入仲裁磁盘,根据仲裁磁盘中记录的信息,排除故障服务器,选出可用的服务器对外提供服务。
现有技术通过仲裁磁盘加心跳计数实现高可用需要特定的硬件网络环境,而且此技术方案仅适用于服务器级别的高可用,不适合进程级别的高可用,适用环境受限,适应范围窄。此外,现有技术通过仲裁磁盘加心跳计数来实现高可用,增加了硬件模块,实现成本高,资源利用率低,适用性低。
发明内容
本发明实施例提供一种实现应用服务高可用的方法及一种装置。可将处于正常服务状态的应用服务的状态信息列表发送给应用终端,以供应用终端进行切换,保障了应用终端的正常运作,提高了应用服务的可用性,适用性强。
本发明实施例提供了一种实现应用服务高可用的方法,包括:
获取当前状态信息列表,所述当前状态信息列表包括当前处于正常服务状态的应用服务信息;
将所述当前状态信息列表发送给处于正常应用状态的应用终端,以供所述应用终端将其应用的应用服务切换至所述当前状态信息列表中相应的应用服务。
本发明实施例还提供了一种装置,包括:
获取模块,用于获取当前状态信息列表,所述当前状态信息列表包括当前处于正常服务状态的应用服务信息;
配置模块,用于将所述当前状态信息列表发送给处于正常应用状态的应用终端,以供所述应用终端将其应用的应用服务切换至所述当前状态信息列表中相应的应用服务。
本发明实施例通过获取处于正常服务状态的应用服务的状态信息列表,并将获取的状态信息列表发送给应用终端,以供应用终端进行应用服务切换,保障了应用终端的正常运作,提高了应用服务的可用性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的实现应用服务高可用的方法的第一实施例流程示意图;
图2是本发明实施例提供的实现应用服务高可用的方法的第二实施例流程示意图;
图3是本发明实施例提供的装置的第一实施例结构示意图;
图4是本发明实施例提供的装置的第二实施例结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明实施例提供的实现应用服务高可用的方法的第一实施例流程示意图。本实施例中所描述的实现应用服务高可用的方法,包括步骤:
S101,获取当前状态信息列表,所述当前状态信息列表包括当前处于正常服务状态的应用服务信息。
具体实现中,本实施例中所描述的应用服务可包括:服务器等可提供服务的终端,也可为服务进程。上述应用服务(包括服务器和服务进程)可包含多个服务类型的应用服务,并且每一个类型的应用服务必须不小于2个。其中,上述服务类型可包括:查询或者更新联系人信息的应用对应的服务类型,或者地图应用对应的服务类型,或者获取即时通讯信息的应用对应服务类型等服务类型。具体的,用户可根据实际应用自定义应用程序编程接口,通过应用程序编程接口的定义来定义服务器或者服务进程的服务类型。服务器或者服务进程等应用服务每次正常启动后,可向负责整合应用服务和应用终端的状态信息,并为应用终端提供应用服务的状态信息列表的装置发送注册信息,其中,发送的注册信息包括应用服务的服务类型(即其提供服务的类型)以及对应的服务地址。应用服务退出系统(例如自动关闭自身)时,可自动向装置发起变更请求,注销自身。
具体实现中,装置获取当前处于正常服务状态的应用服务信息的状态信息列表之前,可先设定获取当前状态信息列表的时间间隔,并在设定时间间隔获取各个应用服务的实时状态信息,并根据获取到的应用服务的状态信息判断各个应用服务的状态。其中,各个应用服务的状态信息包括应用服务的注册信息或者注销信息,或者应用终端对应用服务的投诉信息。其中,上述应用终端对应用服务的投诉信息为应用终端向其应用的服务类型对应的应用服务调用函数(例如API(Application Programming Interface,应用程序编程接口)函数)失败时,对其调用的应用服务的可用性进行投诉的投诉信息。
装置根据获取的各个应用服务的状态信息判断得知各个应用服务的状态之后,则可获取处于正常服务状态的应用服务的状态信息,包括处于正常服务状态的应用服务的服务类型及其对应的服务地址,并将处于正常服务状态的应用服务的状态信息(包括服务类型及对应的服务地址)整合在一起,生成一个当前应用服务的状态信息列表,即为包括处于正常服务状态的应用服务信息的状态信息列表。其中,当前状态信息列表中包括处于正常服务状态的应用服务的服务类型及其对应的服务地址。当前状态信息列表将用于更新包括当前处于故障状态的应用服务信息的状态信息列表。具体的,更新包括当前处于故障状态的应用服务信息的状态信息列表时可将包括处于故障状态的应用服务信息的状态信息列表中出现故障的应用服务替换为当前状态信息列表中包含的同类型的应用服务,也可直接用当前状态信息列表(包括当前处于正常服务状态的应用服务信息)替换掉包括处于故障状态的应用服务信息的状态信息列表。
S102,将所述当前状态信息列表发送给处于正常应用状态的应用终端,以供所述应用终端将其应用的应用服务切换至所述当前状态信息列表中相应的应用服务。
装置获取包括当前处于正常服务状态的应用服务信息的状态信息列表之后,则可将当前状态信息列表发送给应用该应用服务提供的服务类型的应用终端。具体实现中,应用终端每次正常启动后,可自动向装置发送自身的注册信息,包括其应用的服务类型以及接收应用服务的状态信息列表的地址。应用终端自动关闭自身或者结束进程时,可向装置发送注销自身的注销信息。装置在向应用终端发送应用服务的当前状态信息列表之前,可先实时获取各个应用终端的状态信息,并根据获取到的应用终端的状态信息判断各个应用终端的状态,再将当前状态信息列表发送给处于正常应用状态的应用终端。其中,获取的应用终端的状态信息可包括应用终端的注册信息或者注销信息等应用终端自身向装置发送的状态信息。处于正常应用状态的应用终端获取到其应用的服务类型对应的应用服务的状态信息列表之后,则可根据当前状态信息列表中其应用的服务类型对应的应用服务的服务地址向应用服务调用其所需的API函数。当向其提供API函数的应用服务出现故障时,应用终端则可根据状态信息列表中的应用服务状态信息,向列表中提供同一服务类型的其他应用服务发送调用API函数请求,用处于正常服务状态的应用服务替换出现故障的应用服务,切换调用API函数的链接,维护应用终端的正常运作。
具体实现中,本实施例中所描述的应用服务可以为应用终端,应用终端亦可以为应用服务。
本发明实施例通过实时获取各个应用服务的状态信息,根据获取到的状态信息判断各个应用服务的状态,并从中获取处于正常服务状态的应用服务信息整合成当前的状态信息列表发送给处于正常应用状态的应用终端,供应用终端在其应用的应用服务出现故障时将其应用的应用服务切换至同类型的其他处于正常服务状态的应用服务,更好地保障应用终端的正常运作,提高了应用服务的可用性,适用性强。
参见图2,是本发明实施例提供的实现应用服务高可用的方法的第二实施例流程示意图。本实施例中所描述的实现应用服务高可用的方法,包括步骤:
S201,获取应用服务的状态信息,并根据所述应用服务的状态信息判断所述应用服务的状态。
具体实现中,本实施例中所描述的应用服务可包括:服务器等可提供服务的终端,也可为服务进程。上述应用服务(包括服务器和服务进程)可包含多个服务类型的应用服务,并且每一个类型的应用服务必须不小于2个。其中,上述服务类型可包括:查询或者更新联系人信息的应用对应的服务类型,或者地图应用对应的服务类型,或者获取即时通讯信息的应用对的应服务类型等。具体的,用户可根据实际应用自定义应用程序编程接口,通过应用程序编程接口的定义来定义服务器或者服务进程的服务类型。服务器或者服务进程等应用服务每次正常启动后,可向负责整合应用服务和应用终端的状态信息,并为应用终端提供应用服务的状态信息列表的装置发送注册信息,其中,发送的注册信息包括应用服务的服务类型(即其提供服务的类型)以及对应的服务地址。应用服务退出系统(例如自动关闭自身)时,可自动向装置发起变更请求,注销自身。
具体实现中,装置获取当前处于正常服务状态的应用服务信息的状态信息列表之前,可先设定获取当前状态信息列表的时间间隔,并在设定时间间隔获取各个应用服务的实时状态信息,包括应用服务的注册信息或者注销信息,或者应用终端对应用服务的投诉信息,并根据应用服务的状态信息判断各个应用服务的状态。其中,上述应用终端对应用服务的投诉信息为应用终端向其应用的服务类型对应的应用服务调用函数(例如API函数)失败时,对其调用的应用服务的可用性进行投诉的投诉信息。
装置获取到各个应用服务的状态信息之后,则可根据获取的应用服务的状态信息判断各个应用服务的状态。若装置获取的应用服务的状态信息是该应用服务的注册信息,则可判断得知该应用服务为正常启动的应用服务,即可判定该应用服务处于正常服务状态,可正常对外提供服务。若装置获取到的应用服务的状态信息是该应用服务的注销信息,则可判断得知该应用服务可能主动关闭了,则可判定该应用服务处于离线状态,无法继续对外提供服务。若装置获取到的应用服务的状态信息是应用终端对该应用服务的投诉信息,则可判断投诉该应用服务的应用终端的个数占应用该应用服务提供的服务类型的应用终端的总个数的比值是否超过预设的比值阈值。若判断结果为否,则可判断得知问题可能出现在投诉该应用服务的应用终端本身,而非该应用服务的问题,从而可判定该应用服务处于正常服务状态,可正常对外提供服务。若判断结果是投诉该应用服务的应用终端的个数占应用该应用服务提供的服务类型的应用终端的总个数的比值超过预设的比值阈值,则可判断得知该应用服务提供服务过程出现故障,即该应用服务提供的服务地址可能无法连接或者链接出错,从而可判断该应用服务处于故障状态。
S202,获取当前状态信息列表,所述当前状态信息列表包括当前处于正常服务状态的应用服务信息。
装置根据获取的各个应用服务的状态信息判断得知各个应用服务的状态之后,则可获取处于正常服务状态的应用服务的状态信息,包括处于正常服务状态的应用服务的服务类型及其对应的服务地址,并将处于正常服务状态的应用服务的状态信息(包括服务类型及对应的服务地址)整合在一起,生成一个当前应用服务的状态信息列表,即为包括处于正常服务状态的应用服务信息的状态信息列表。其中,当前状态信息列表中包括处于正常服务状态的应用服务的服务类型及其对应的服务地址。当前状态信息列表用于更新包括当前处于故障状态的应用服务信息的状态信息列表。具体的,更新包括当前处于故障状态的应用服务信息的状态信息列表时可将包括处于故障状态的应用服务信息的状态信息列表中出现故障的应用服务替换为当前状态信息列表中包含的同类型的应用服务,也可直接用当前状态信息列表(包括当前处于正常服务状态的应用服务信息)替换掉包括处于故障状态的应用服务信息的状态信息列表。
S203,获取应用终端的状态信息,并根据所述应用终端的状态信息判断所述应用终端的状态。
S204,将所述当前状态信息列表发送给处于正常应用状态的应用终端,以供所述应用终端将其应用的应用服务切换至所述当前状态信息列表中相应的应用服务。
装置获取包括当前处于正常服务状态的应用服务信息的状态信息列表之后,则可将当前状态信息列表发送给应用该应用服务提供的服务类型的应用终端。具体实现中,应用终端每次正常启动后,可自动向装置发生自身的注册信息,包括其应用的服务类型以及接收应用服务的状态信息列表的地址。应用终端自动关闭自身或者结束进程时,可向装置发送注销自身的注销信息。装置在向应用终端发送应用服务的当前状态信息列表之前,可先实时获取各个应用终端的状态信息,并根据获取到的应用终端的状态信息判断各个应用终端的状态,再将当前状态信息列表发送给处于正常应用状态的应用终端。其中,获取的应用终端的状态信息可包括应用终端的注册信息或者注销信息等应用终端自身向装置发送的状态信息。若装置获取到的应用终端的状态信息为该应用终端的注册信息,则可判断得知该应用终端为正常启动的应用终端。若判断得知该应用终端为正常启动的应用终端,则可判定该应用终端处于正常应用状态,从而可向该应用终端发送其应用的服务类型对应的应用服务的状态信息列表。若装置获取到的应用终端的状态信息为该应用终端的注销信息,则可判断得知该应用终端已经关闭了自身或者结束了进程,从而可判定该应用终端处于离线状态。处于正常应用状态的应用终端获取到其应用的服务类型对应的应用服务的状态信息列表之后,则可根据当前状态信息列表中其应用的服务类型对应的应用服务的服务地址向应用服务调用其所需的API函数。当向其提供API函数的应用服务出现故障时,应用终端则可根据状态信息列表中的应用服务状态信息,向列表中提供同一服务类型的其他应用服务发送调用API函数请求,用处于正常服务状态的应用服务替换出现故障的应用服务,切换调用API函数的链接,维护应用终端的正常运作。应用终端在正常应用状态(即正常运作过程)中,还可定时向装置发送心跳请求,告知其自身的状态。装置接收到应用终端的心跳请求,则可判定该应用终端处于正常服务状态,若装置长时间未接收到应用终端发送的心跳请求,则可判断得知该应用终端可能已经处于离线状态了。应用终端根据应用服务的当前状态信息列表向应用服务发送调用API函数的请求之后,如果应用服务返回API函数调用结果的时间超过预设的时间阈值使得发送请求失败,或者应用终端向应用服务发送请求时连接出现错误使得发送请求失败,并且发送请求的失败次数超过一定比例,则可向装置发起对该应用服务的投诉。装置接收到应用终端发送的投诉信息之后,则可结合接收到的其他应用终端发送的对该应用服务的投诉信息,判断投诉该应用服务的应用终端的个数占应用该应用服务提供的服务类型的应用终端的总个数比值是否超过预设的比值阈值,若判断结果为是,则可判定该应用服务处于故障状态,若判断结果为否,则可判定该应用服务处于正常状态,出现故障的原因可能不在应用服务,而是应用终端自身出现故障。
具体实现中,本实施例中所描述的应用服务可以为应用终端,应用终端亦可以为应用服务。
本发明实施例通过各个应用服务自身发送的注册信息或者注销信息,或者应用终端发送的对应用服务的投诉信息实时判断各个应用服务的状态,并从中获取处于正常服务状态的应用服务的状态信息生成应用服务的当前状态信息列表发送给处于正常应用状态的应用终端,供应用终端在其应用的应用服务出现故障时将其应用的应用服务切换至同类型的其他处于正常服务状态的应用服务。本发明实施例通过实时判断各个应用服务的状态,对应用终端调用函数所需的应用服务的信息进行实时更新,动态下发,更好地保障应用终端的正常运作,提高了应用服务的可用性,适用性强。
参见图3,是本发明实施例提供的装置的第一实施例结构示意图。本实施例中所描述的装置,包括:
获取模块20,用于获取当前状态信息列表,所述当前状态信息列表包括当前处于正常服务状态的应用服务信息。
配置模块40,用于将所述当前状态信息列表发送给处于正常应用状态的应用终端,以供所述应用终端将其应用的应用服务切换至所述当前状态信息列表中相应的应用服务。
具体实现中,本实施例中所描述的应用服务可包括:服务器等可提供服务的终端,也可为服务进程。上述应用服务(包括服务器和服务进程)可包含多个服务类型的应用服务,并且每一个类型的应用服务必须不小于2个。其中,上述服务类型可包括:查询或者更新联系人信息的应用对应的服务类型,或者地图应用对应的服务类型,或者获取即时通讯信息的应用对应服务类型等。具体的,用户可根据实际应用自定义应用程序编程接口,通过应用程序编程接口的定义来定义服务器或者服务进程的服务类型。服务器或者服务进程等应用服务每次正常启动后,可向负责整合应用服务和应用终端的状态信息,并为应用终端提供应用服务的状态信息列表的装置发送注册信息,其中,发送的注册信息包括应用服务的服务类型(即其提供服务的类型)以及对应的服务地址。应用服务退出系统(例如自动关闭自身)时,可自动向终端发起变更请求,注销自身。
具体实现中,获取模块20获取当前处于正常服务状态的应用服务信息的状态信息列表之前,可先设定获取当前状态信息列表的时间间隔,并在设定时间间隔获取各个应用服务的实时状态信息,并根据获取到的各个应用服务的状态信息判断各个应用服务的状态。其中,各个应用服务的状态信息包括应用服务的注册信息或者注销信息,或者应用终端对应用服务的投诉信息。其中,上述应用终端对应用服务的投诉信息为应用终端向其应用的服务类型对应的应用服务调用函数(例如API函数)失败时,对其调用的应用服务的可用性进行投诉的投诉信息。
获取模块20根据获取的各个应用服务的状态信息判断得知各个应用服务的状态之后,则可获取处于正常服务状态的应用服务的状态信息,包括处于正常服务状态的应用服务的服务类型及其对应的服务地址,并将处于正常服务状态的应用服务的状态信息(包括服务类型及对应的服务地址)整合在一起,生成一个当前应用服务的状态信息列表,即为包括处于正常服务状态的应用服务信息的状态信息列表。其中,当前状态信息列表中包括处于正常服务状态的应用服务的服务类型及其对应的服务地址。当前状态信息列表将用于更新包括当前处于故障状态的应用服务信息的状态信息列表。具体的,更新包括当前处于故障状态的应用服务信息的状态信息列表时可将包括处于故障状态的应用服务信息的状态信息列表中出现故障的应用服务替换为当前状态信息列表中包含的同类型的应用服务,也可直接用当前状态信息列表(包括当前处于正常服务状态的应用服务信息)替换掉包括处于故障状态的应用服务信息的状态信息列表。
获取模块20获取到包括当前处于正常服务状态的应用服务信息的状态信息列表之后,则可将当前状态信息列表发送给应用该应用服务提供的服务类型的应用终端。具体实现中,应用终端每次正常启动后,可自动向装置发送自身的注册信息,包括其应用的服务类型以及接收应用服务的状态信息列表的地址。应用终端自动关闭自身或者结束进程时,可向装置发送注销自身的注销信息。配置模块40在向应用终端发送应用服务的当前状态信息列表之前,可先实时获取各个应用终端的状态信息,并根据获取到的应用终端的状态信息判断各个应用终端的状态,再将当前状态信息列表发送给处于正常应用状态的应用终端。其中,获取的应用终端的状态信息可包括应用终端的注册信息或者注销信息等应用终端自身向装置发送的状态信息。处于正常应用状态的应用终端获取到其应用的服务类型对应的应用服务的状态信息列表之后,则可根据当前状态信息列表中其应用的服务类型对应的应用服务的服务地址向应用服务调用其所需的API函数。当向其提供API函数的应用服务出现故障时,应用终端则可根据状态信息列表中的应用服务状态信息,向列表中提供同一服务类型的其他应用服务发送调用API函数请求,用处于正常服务状态的应用服务替换出现故障的应用服务,切换调用API函数的链接,维护应用终端的正常运作。
具体实现中,本实施例中所描述的应用服务可以为应用终端,应用终端亦可以为应用服务。
本发明实施例中所描述的装置通过获取模块实时获取各个应用服务的状态信息,并根据获取到的状态信息判断各个应用服务的状态,从中获取处于正常服务状态的应用服务信息的整合成当前的状态信息列表。通过配置模块将包括处于正常服务状态的应用服务信息的当前状态信息列表发送给处于正常应用状态的应用终端,供应用终端在其应用的应用服务出现故障时将其应用的应用服务切换至同类型的其他处于正常服务状态的应用服务,更好地保障应用终端的正常运作,提高了应用服务的可用性,适用性强。
参见图4,是本发明实施例提供的装置的第二实施例结构示意图。本实施例中所描述的装置,包括:
第一判断模块10,用于获取应用服务的状态信息,并根据所述应用服务的状态信息判断所述应用服务的服务状态,并将处于正常服务状态的应用服务的状态信息发送给所述获取模块。
获取模块20,用于获取当前状态信息列表,所述当前状态信息列表包括当前处于正常服务状态的应用服务信息。
第二判断模块30,用于获取应用终端的状态信息,并根据所述应用终端的状态信息判断所述应用终端的状态。
配置模块40,用于将所述当前状态信息列表发送给处于正常应用状态的应用终端,以供所述应用终端将其应用的应用服务切换至所述当前状态信息列表中相应的应用服务。
其中,第一判断模块10,包括:
第一接收单元11,用于获取应用服务的状态信息。
第一处理单元12,用于根据所述第一接收单元获取到的所述应用服务的状态信息判断所述应用服务的状态,并将处于正常服务状态的应用服务的状态信息发送给所述获取模块。
其中,第二判断模块30,包括:
第二接收单元31,用于获取应用终端的状态信息。
第二处理单元32,用于根据所述应用终端的状态信息判断所述应用终端的状态。
具体实现中,本实施例中所描述的应用服务可包括:服务器等可提供服务的终端,也可为服务进程。上述应用服务(包括服务器和服务进程)可包含多个服务类型的应用服务,并且每一个类型的应用服务必须不小于2个。本实施例中所描述的装置用于整合应用服务和应用终端的状态信息,并为应用终端提供应用服务的状态信息列表。其中,上述服务类型可包括:查询或者更新联系人信息的应用对应的服务类型,或者地图应用对应的服务类型,或者获取即时通讯信息的应用对应服务类型等。具体的,用户可根据实际应用自定义应用程序编程接口,通过应用程序编程接口的定义来定义服务器或者服务进程的服务类型。服务器或者服务进程等应用服务每次正常启动后,可向装置发送注册信息,包括应用服务的服务类型(即其提供服务的类型)以及对应的服务地址。应用服务退出系统(例如自动关闭自身)时,可自动向装置发起变更请求,注销自身。
具体实现中,装置通过其获取模块20获取当前处于正常服务状态的应用服务信息的状态信息列表之前,可先设定获取当前状态信息列表的时间间隔,并在设定时间间隔通过第一判断模块10的第一接收单元11获取各个应用服务的实时状态信息,包括应用服务的注册信息或者注销信息,或者应用终端对应用服务的投诉信息,并通过第一处理单元12根据应用服务的状态信息判断各个应用服务的服务状态,并将处于正常服务状态的应用服务的状态信息发送给所述获取模块。其中,上述应用终端对应用服务的投诉信息为应用终端向其应用的服务类型对应的应用服务调用函数(例如API函数)失败时,对其调用的应用服务的可用性进行投诉的投诉信息。
装置通过第一接收单元11获取到各个应用服务的状态信息之后,第一处理单元12则可根据第一接收单元11获取的应用服务的状态信息判断各个应用服务的状态。若终端的第一接收单元11获取的应用服务的状态信息是该应用服务的注册信息,第一处理单元12则可判断得知该应用服务为正常启动的应用服务,则可判定该应用服务处于正常服务状态,可正常提供服务。若终端的第一接收单元11获取的应用服务的状态信息是该应用服务的注销信息,第一处理单元12则可判断得知该应用服务可能主动关闭了,则可判定该应用服务处于离线状态,无法继续对外提供服务。若终端的第一接收单元11获取的应用服务的状态信息是应用终端对该应用服务的投诉信息,第一处理单元12则可判断投诉该应用服务的应用终端的个数占应用该应用服务提供的服务类型的应用终端的总个数的比值是否超过预设的比值阈值。若判断结果为否,则可判断得知问题可能出现在投诉该应用服务的应用终端本身,而非该应用服务的问题,从而可判定该应用服务处于正常服务状态,可正常对外提供服务。若判断结果是投诉该应用服务的应用终端的个数占应用该应用服务提供的服务类型的应用终端的总个数的比值超过预设的比值阈值,则可判断得知该应用服务提供服务过程出现故障,即该应用服务提供的服务地址可能无法连接或者链接出错,从而可判断该应用服务处于故障状态。
第一处理单元12根据第一接收单元11获取的各个应用服务的状态信息判断得知各个应用服务的状态之后,获取模块20则可获取处于正常服务状态的应用服务的状态信息,包括处于正常服务状态的应用服务的服务类型及其对应的服务地址,并将处于正常服务状态的应用服务的状态信息(包括服务类型及对应的服务地址)整合在一起,生成一个当前应用服务的状态信息列表,即为包括处于正常服务状态的应用服务信息的状态信息列表。其中,当前状态信息列表中包括处于正常服务状态的应用服务的服务类型及其对应的服务地址。当前状态信息列表将用于更新包括当前处于故障状态的应用服务信息的状态信息列表。具体的,更新包括当前处于故障状态的应用服务信息的状态信息列表时可将包括处于故障状态的应用服务信息的状态信息列表中出现故障的应用服务替换为当前状态信息列表中包含的同类型的应用服务,也可直接用当前状态信息列表(包括当前处于正常服务状态的应用服务信息)替换掉包括处于故障状态的应用服务信息的状态信息列表。
终端通过获取模块20获取包括当前处于正常服务状态的应用服务信息的状态信息列表之后,则可将当前状态信息列表发送给应用该应用服务提供的服务类型的应用终端。具体实现中,应用终端每次正常启动后,可自动向装置发送注册信息,包括其应用的服务类型以及接收应用服务的状态信息列表的地址。应用终端自动关闭自身或者结束进程时,可向装置发送注销自身的注销信息。装置在向应用终端发送应用服务的当前状态信息列表之前,可先通过第二判断模块30实时获取各个应用终端的状态信息,并根据获取到的应用终端的状态信息判断各个应用终端的状态,再通过配置模块40将当前状态信息列表发送给处于正常应用状态的应用终端。其中,第二判断模块30获取的应用终端的状态信息可包括应用终端的注册信息或者注销信息等应用终端自身向终端发送的状态信息。若第二接收单元31获取到的应用终端的状态信息为该应用终端的注册信息,则可通过第二处理单元32判断得知该应用终端为正常启动的应用终端,从而可判定该应用终端处于正常应用状态,配置模块40则可向该应用终端发送其应用的服务类型对应的应用服务的状态信息列表。若第二接收单元31获取到的应用终端的状态信息为该应用终端的注销信息,则可通过第二处理单元32判断得知该应用终端已经关闭了自身或者结束了进程,从而可判定该应用终端处于离线状态。处于正常应用状态的应用终端获取到其应用的服务类型对应的应用服务的状态信息列表之后,则可根据当前状态信息列表中其应用的服务类型对应的应用服务的服务地址向应用服务调用其所需的函数(例如API函数)。当向其提供API函数的应用服务出现故障时,应用终端则可根据列表中的应用服务状态信息,向列表中提供同一服务类型的其他应用服务发送调用API函数请求,用处于正常服务状态的应用服务替换出现故障的应用服务,切换调用API函数的链接,维护应用终端的正常运作。应用终端在正常应用状态(即正常运作过程)中,还可定时向装置发送心跳请求,告知其自身的状态。装置的第二接收单元31接收到应用终端的心跳请求,则可通过第二处理单元32判定该应用终端处于正常服务状态,若装置长时间未接收到应用终端发送的心跳请求,第二处理单元32则可判断得知该应用终端可能已经处于离线状态了。应用终端根据应用服务的当前状态信息列表向应用服务发送调用API函数的请求之后,如果应用服务返回API函数调用结果的时间超过预设的时间阈值使得发送请求失败,或者应用终端向应用服务发送请求时连接出现错误使得发送请求失败,并且发送请求的失败次数超过一定比例,则可向装置发起对该应用服务的投诉。第二接收单元31接收到应用终端发送的投诉信息之后,第二处理单元32则可结合第二接收单元31接收到的其他应用终端发送的对该应用服务的投诉信息,判断投诉该应用服务的应用终端的个数占应用该应用服务提供的服务类型的应用终端的总个数比值是否超过预设的比值阈值,若判断结果为是,则可判定该应用服务处于故障状态,若判断结果为否,则可判定该应用服务处于正常状态,出现故障的原因可能不在应用服务,而是应用终端自身出现故障。
具体实现中,本实施例中所描述的应用服务可以为应用终端,应用终端亦可以为应用服务。
本发明实施例中终端通过各个应用服务自身发送的注册信息或者注销信息,或者应用终端发送的对各个应用服务的投诉信息实时判断各个应用服务的状态,并从中获取处于正常服务状态的应用服务的状态信息生成应用服务的当前状态信息列表发送给处于正常应用状态的应用终端,供应用终端进行应用服务切换,将其应用的服务类型对应的应用服务切换至同类型的其他应用服务。本发明实施例中所描述的装置通过实时判断各个应用服务的状态,对应用终端调用函数所需的应用服务的信息进行实时更新,动态下发,更好地保障应用终端的正常运作,提高了应用服务的可用性,适用性强。
本发明所有实施例中的模块或单元,可以通过通用集成电路,例如CPU(Central Processing Unit,中央处理器),或通过ASIC(Application SpecificIntegrated Circuit,专用集成电路)来实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (14)
1.一种实现应用服务高可用的方法,其特征在于,包括:
获取当前状态信息列表,所述当前状态信息列表包括当前处于正常服务状态的应用服务信息;
获取应用终端的状态信息,并根据所述应用终端的状态信息判断所述应用终端的状态,所述应用终端的状态信息包括所述应用终端的注册信息或者注销信息,或者所述应用终端的心跳请求信息,所述应用终端的注册信息包括:所述应用终端应用的服务类型和所述应用终端接收应用服务的状态信息列表的地址;
将所述当前状态信息列表发送给处于正常应用状态的应用终端,以供所述应用终端在向其提供应用程序编程接口API函数的应用服务出现故障时,根据所述应用服务信息向列表中提供同一服务类型的处于正常服务状态的应用服务发送调用API函数请求,切换调用API函数的链接,维护应用终端的正常运作。
2.如权利要求1所述的方法,其特征在于,所述获取当前状态信息列表之前,包括:
获取应用服务的状态信息,并根据所述应用服务的状态信息判断所述应用服务的状态;
其中,所述应用服务的状态信息包括:所述应用服务的注册信息或者注销信息,或者应用终端对所述应用服务的投诉信息;
所述应用服务的注册信息包括:所述应用服务的服务类型及其对应的服务地址。
3.如权利要求2所述的方法,其特征在于,所述应用终端对所述应用服务的投诉信息为应用终端向其应用的服务类型对应的应用服务调用函数失败时,对所述应用服务的可用性进行投诉的投诉信息。
4.如权利要求3所述的方法,其特征在于,所述根据所述应用服务的状态信息判断所述应用服务的状态,包括:
若所述应用服务的状态信息为所述应用服务的注册信息,则判定所述应用服务处于正常服务状态;
若所述应用服务的状态信息为所述应用服务的注销信息,则判定所述应用服务处于离线状态;
若所述应用服务的状态信息为应用终端对所述应用服务的投诉信息,则根据所述投诉信息判断投诉所述应用服务的应用终端的个数占应用所述应用服务提供的服务类型的应用终端的总个数比值是否超过预设的比值阈值,若判断结果为否,则判定所述应用服务处于正常服务状态。
5.如权利要求1所述的方法,其特征在于,所述根据所述应用终端的状态信息判断所述应用终端的状态,包括:
若所述应用终端的状态信息为所述应用终端的注册信息,则判定所述应用终端处于正常应用状态;
若所述应用终端的状态信息为所述应用终端的注销信息,则判定所述应用终端处于离线状态;
若所述应用终端的状态信息为所述应用终端的心跳请求信息,则判定所述应用终端处于正常应用状态。
6.如权利要求4或5所述的方法,其特征在于,所述应用服务包括多个服务类型的应用服务;
其中,同一个服务类型的应用服务不少于两个。
7.一种实现应用服务高可用的装置,其特征在于,包括:
获取模块,用于获取当前状态信息列表,所述当前状态信息列表包括当前处于正常服务状态的应用服务信息;
第二判断模块,用于获取应用终端的状态信息,并根据所述应用终端的状态信息判断所述应用终端的状态,所述应用终端的状态信息包括:所述应用终端的注册信息或者注销信息,或者所述应用终端的心跳请求信息,所述应用终端的注册信息包括:所述应用终端应用的服务类型和所述应用终端接收应用服务的状态信息列表的地址;
配置模块,用于将所述当前状态信息列表发送给处于正常应用状态的应用终端,以供所述应用终端在向其提供应用程序编程接口API函数的应用服务出现故障时,根据所述应用服务信息向列表中提供同一服务类型的处于正常服务状态的的应用服务发送调用API函数请求,切换调用API函数的链接,维护应用终端的正常运作。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
第一判断模块,用于获取应用服务的状态信息,并根据所述应用服务的状态信息判断所述应用服务的状态,并将处于正常服务状态的应用服务的状态信息发送给所述获取模块;
其中,所述应用服务的状态信息包括:所述应用服务的注册信息或者注销信息,或者应用终端对所述应用服务的投诉信息;
所述应用服务的注册信息包括:所述应用服务的服务类型及其对应的服务地址。
9.如权利要求8所述的装置,其特征在于,所述应用终端对所述应用服务的投诉信息为应用终端向其应用的服务类型对应的应用服务调用函数失败时,对所述应用服务的可用性进行投诉的投诉信息。
10.如权利要求9所述的装置,其特征在于,所述第一判断模块,包括:
第一接收单元,用于获取应用服务的状态信息;
第一处理单元,用于根据所述第一接收单元获取到的所述应用服务的状态信息判断所述应用服务的状态,并将处于正常服务状态的应用服务的状态信息发送给所述获取模块。
11.如权利要求10所述的装置,其特征在于,所述第一处理单元根据所述第一接收单元获取到的所述应用服务的状态信息判断所述应用服务的状态,包括:
若所述应用服务的状态信息为所述应用服务的注册信息,则判定所述应用服务处于正常服务状态;
若所述应用服务的状态信息为所述应用服务的注销信息,则判定所述应用服务处于离线状态;
若所述应用服务的状态信息为所述应用终端对所述应用服务的投诉信息,则根据所述投诉信息判断投诉所述应用服务的应用终端的个数占应用所述应用服务提供的服务类型的应用终端的总个数比值是否超过预设的比值阈值,若判断结果为否,则判定所述应用服务处于正常服务状态。
12.如权利要求7所述的装置,其特征在于,所述第二判断模块,包括:
第二接收单元,用于获取应用终端的状态信息;
第二处理单元,用于根据所述应用终端的状态信息判断所述应用终端的状态。
13.如权利要求12所述的装置,其特征在于,所述第二处理单元根据所述应用终端的状态信息判断所述应用终端的状态,包括:
若所述应用终端的状态信息为所述应用终端的注册信息,则判定所述应用终端处于正常应用状态;
若所述应用终端的状态信息为所述应用终端的注销信息,则判定所述应用终端处于离线状态;
若所述应用终端的状态信息为所述应用终端的心跳请求信息,则判定所述应用终端处于正常应用状态。
14.如权利要求11或13所述的装置,其特征在于,所述应用服务包含多个服务类型的应用服务;
其中,同一个服务类型的应用服务不少于两个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310144048.5A CN103269357B (zh) | 2013-04-24 | 2013-04-24 | 一种实现应用服务高可用的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310144048.5A CN103269357B (zh) | 2013-04-24 | 2013-04-24 | 一种实现应用服务高可用的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103269357A CN103269357A (zh) | 2013-08-28 |
CN103269357B true CN103269357B (zh) | 2016-09-14 |
Family
ID=49012966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310144048.5A Expired - Fee Related CN103269357B (zh) | 2013-04-24 | 2013-04-24 | 一种实现应用服务高可用的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103269357B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110806917A (zh) * | 2019-09-19 | 2020-02-18 | 烽火通信科技股份有限公司 | 一种防脑裂的虚拟机高可用的管理装置及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237622A (zh) * | 2008-03-10 | 2008-08-06 | 中兴通讯股份有限公司 | 容灾控制设备 |
CN102571499A (zh) * | 2012-02-14 | 2012-07-11 | 广州亦云信息技术有限公司 | 一种云端数据库服务器集群的监控方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100893860B1 (ko) * | 2004-06-10 | 2009-04-20 | 엘지전자 주식회사 | 광대역 무선 접속 시스템에 적용되는 핸드오버 수행 방법및 핸드오버 실패시 통신 재개 방법 |
-
2013
- 2013-04-24 CN CN201310144048.5A patent/CN103269357B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237622A (zh) * | 2008-03-10 | 2008-08-06 | 中兴通讯股份有限公司 | 容灾控制设备 |
CN102571499A (zh) * | 2012-02-14 | 2012-07-11 | 广州亦云信息技术有限公司 | 一种云端数据库服务器集群的监控方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103269357A (zh) | 2013-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103404113B (zh) | 一种通知推送方法、装置和系统 | |
CN110535902A (zh) | 基于微服务实现监控智能化的处理方法及电子装置 | |
CN105933444B (zh) | 基于注册中心和缓存机制协同的服务发现方法 | |
CN104168333B (zh) | Proxzone服务平台的工作方法 | |
CN106657330B (zh) | 用户数据迁移方法和用户数据备份方法、装置及系统 | |
CN109218141A (zh) | 一种故障节点检测方法及相关装置 | |
CN106034138A (zh) | 一种远程服务调用方法及装置 | |
CN114615203A (zh) | 访问控制方法、装置、存储介质及处理器 | |
CN106412078B (zh) | 精准信息推送方法、装置和系统 | |
CN109120746A (zh) | 网络地址转换方法、装置及地址转换设备 | |
CN106209769A (zh) | 数据交互方法、云端服务器以及智能终端 | |
CN104869229A (zh) | 一种任务分配方法 | |
CN105306407B (zh) | 用户账号登陆方法及装置 | |
CN105813233A (zh) | 一种通信策略配置方法和装置 | |
CN105592134A (zh) | 一种负载分担的方法和装置 | |
CN103269357B (zh) | 一种实现应用服务高可用的方法及装置 | |
US8407291B1 (en) | System and method for dispensing e-Care | |
CN108540582A (zh) | 一种终端标识的处理方法、服务器及终端 | |
CN111314283B (zh) | 防御攻击的方法和装置 | |
EP2201468A1 (en) | Pandemic remote access design | |
CN111147600B (zh) | 集群环境下的服务执行方法及终端 | |
CN117221085A (zh) | 一种网络故障预警方法、装置、电子设备及存储介质 | |
CN107277043A (zh) | 基于集群服务的网络准入控制系统 | |
CN103595781B (zh) | 一种基于zookeeper的服务提供方法、第一服务器及系统 | |
CN101951585A (zh) | 一种用户身份认证方法、系统及移动通讯终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right |
Effective date of registration: 20180428 Granted publication date: 20160914 |
|
PP01 | Preservation of patent right | ||
PD01 | Discharge of preservation of patent |
Date of cancellation: 20210428 Granted publication date: 20160914 |
|
PD01 | Discharge of preservation of patent | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160914 Termination date: 20180424 |
|
CF01 | Termination of patent right due to non-payment of annual fee |