CN109936613B - 应用于服务器的容灾方法和装置 - Google Patents
应用于服务器的容灾方法和装置 Download PDFInfo
- Publication number
- CN109936613B CN109936613B CN201711375985.6A CN201711375985A CN109936613B CN 109936613 B CN109936613 B CN 109936613B CN 201711375985 A CN201711375985 A CN 201711375985A CN 109936613 B CN109936613 B CN 109936613B
- Authority
- CN
- China
- Prior art keywords
- server
- target server
- target
- shielded
- request message
- 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.)
- Active
Links
Images
Abstract
本发明公开了应用于服务器的容灾方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:响应于请求消息,选择用于处理所述请求消息的服务器;判断所述服务器是否被屏蔽;当所述服务器未被屏蔽时,以所述服务器作为目标服务器,调用所述目标服务器处理所述请求消息;当所述目标服务器调用失败时,屏蔽所述目标服务器Mn次。根据本发明实施例,一方面,随着被调用服务器故障概率的增加,能以指数级方式增加对故障服务器的屏蔽次数,快速屏蔽对故障服务器的访问,提升系统可用性;另一方面,当故障服务器恢复正常时,能快速加回已恢复的故障服务器。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用于服务器的容灾方法和装置。
背景技术
负载均衡是将访问请求消息根据转发策略分发到后端多台服务器的流量分发控制服务,其通常有轮询或加权轮询、随机或加权随机、最小响应时间、最小并发数、哈希等转发策略。大型分布式系统通常包括成百上千甚至数万台服务器,服务器故障是不可避免的。负载均衡通过健康检查来探测和摘除故障服务器,当后端某台服务器健康检查出现异常时,负载均衡会自动将新的请求消息分发到其它健康检查正常的服务器上;而当该服务器恢复正常运行时,负载均衡会将其自动恢复到对外或对内的服务中,以提高系统的业务可用性,实现自动容灾。
现有技术中,负载均衡的健康检查通常有两种方式:一种是通过定制探测包;一种是通过请求结果上报。
对于定制探测包方式,针对七层(HTTP或HTTPS协议)服务一般通过HTTP请求探测来获取状态信息;针对四层TCP协议服务,通过定制的TCP探测来获取状态信息;针对四层UDP协议服务,通过UDP报文探测来获取状态信息。为了避免频繁的健康检查失败引起的切换对系统可用性的冲击,健康检查只有在连续多次探测成功或失败后,才会进行状态切换(判定为健康检查成功或失败)。也就是说存在一个健康检查状态切换的时间窗。
请求结果上报方式是指将正常业务请求的调用数据(通常选取调用结果和调用耗时这两个核心指标)进行上报,然后由负载均衡模块周期性地根据上报的调用数据进行计算,得出各台目标服务器的权值。权值高的服务器转发的请求多,权值低的服务器转发的请求少,权值为0的服务器转发的请求数也为0,从而达到摘除故障机器的效果。这里涉及两个周期时间,一个是获取上报数据样本的周期时间T1,一个是进行权值计算的周期时间T2。T1、T2的选取根据业务情况而定。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
1)对于定制探测包方式,健康检查需要发送额外的探测包,高频率下会对正常业务访问造成影响,降低系统的业务可用性。另外,这种健康检查的方式存在健康检查状态切换时间窗。正处于健康检查状态切换时间窗时,如果目标服务器访问存在异常,而健康检查还未达到检查失败判定次数,则相应请求还是会被分发到该服务器,进而导致前端访问请求失败,容灾效果差。
2)对于请求结果上报方式,摘除故障机器的灵敏性依赖于上报数据样本周期时间T1和权值计算周期时间T2的设置。一般来说,T1、T2设置得越小则摘除故障机器越灵敏,但也不能设置过小。T1过小会导致周期内上报数据样本不足,进而导致各台目标机器的权值计算不准确。T2过小则会耗费更多的计算资源且受限于T1而不一定有更好的容灾效果。
发明内容
有鉴于此,本发明实施例提供一种应用于服务器的容灾方法和装置,一方面,随着被调用服务器故障概率的增加,能以指数级方式增加对故障服务器的屏蔽次数,快速屏蔽对故障服务器的访问,提升系统可用性;另一方面,当故障服务器恢复正常时,能快速加回已恢复的故障服务器。
为实现上述目的,根据本发明实施例的一个方面,提供了一种应用于服务器的容灾方法,包括:
响应于请求消息,选择用于处理所述请求消息的服务器;
判断所述服务器是否被屏蔽;当所述服务器未被屏蔽时,以所述服务器作为目标服务器,调用所述目标服务器处理所述请求消息;
当所述目标服务器调用失败时,屏蔽所述目标服务器Mn次;其中,M为不小于2的整数;n为不小于1的整数,代表所述目标服务器的连续失败次数。
可选地,当所述服务器被屏蔽时,重新选择用于处理所述请求消息的服务器;和/或,当所述目标服务器调用失败时,重新选择用于处理所述请求消息的服务器。
可选地,本发明实施例的方法还包括:当所述目标服务器调用失败时,统计所述目标服务器的连续失败次数n;当所述目标服务器调用成功时,将所述目标服务器的连续失败次数n清零;
当所述目标服务器调用失败时,屏蔽所述目标服务器Mn次包括:当所述目标服务器调用失败时,若n≤N,则屏蔽所述目标服务器Mn次;若n>N,则屏蔽所述目标服务器MN次;其中,N代表预设的失败次数阈值。
可选地,本发明实施例的容灾方法还包括:当所述目标服务器调用失败时,统计作为所述目标服务器的服务器的连续失败次数n;当所述目标服务器调用成功时,将作为所述目标服务器的服务器的连续失败次数n清零;
判断所述服务器是否被屏蔽包括:当Mn达到预设的屏蔽次数阈值时,判断所述服务器未被屏蔽。
可选地,本发明实施例的容灾方法还包括:屏蔽所述目标服务器之后,统计作为所述目标服务器的服务器的被屏蔽时间;当再次调用所述目标服务器时,将作为所述目标服务器的服务器的被屏蔽时间清零;
判断所述服务器是否被屏蔽包括:当所述服务器的被屏蔽时间达到预设的被屏蔽时间阈值,判断所述服务器未被屏蔽。
可选地,本发明实施例的容灾方法还包括:当所述服务器被屏蔽时,重新选择用于处理所述请求消息的服务器之后,统计与所述请求消息对应的重新选择次数;
判断所述服务器是否被屏蔽包括:当所述重新选择次数达到预设的重新选择次数阈值时,判断当前选择的服务器未被屏蔽。
根据本发明实施例的再一个方面,提供了一种应用于服务器的容灾装置,包括:选择模块、判断模块和处理模块;其中,
选择模块响应于请求消息,选择用于处理所述请求消息的服务器;
判断模块判断所述服务器是否被屏蔽;当所述服务器未被屏蔽时,处理模块以所述服务器作为目标服务器,调用所述目标服务器处理所述请求消息;
当所述目标服务器调用失败时,判断模块屏蔽所述目标服务器Mn次;其中,M为不小于2的整数;n为不小于1的整数,代表所述目标服务器的连续失败次数。
可选地,所述处理模块还用于:当所述服务器被屏蔽时,重新选择用于处理所述请求消息的服务器;和/或,当所述目标服务器调用失败时,重新选择用于处理所述请求消息的服务器。
可选地,判断模块还用于:当所述目标服务器调用失败时,统计所述目标服务器的连续失败次数n;当所述目标服务器调用成功时,将所述目标服务器的连续失败次数n清零;
当所述目标服务器调用失败时,若n≤N,则屏蔽所述目标服务器Mn次;若n>N,则屏蔽所述目标服务器MN次;其中,N代表预设的失败次数阈值。
可选地,所述判断模块还用于:当所述目标服务器调用失败时,统计作为所述目标服务器的服务器的连续失败次数n;当所述目标服务器调用成功时,将作为所述目标服务器的服务器的连续失败次数n清零;
所述判断模块判断所述服务器是否被屏蔽包括:当Mn达到预设的屏蔽次数阈值时,判断所述服务器未被屏蔽。
可选地,所述判断模块还用于:屏蔽所述目标服务器之后,统计作为所述目标服务器的服务器的被屏蔽时间;当再次调用所述目标服务器时,将作为所述目标服务器的服务器的被屏蔽时间清零;
所述判断模块判断所述服务器是否被屏蔽包括:当所述服务器的被屏蔽时间达到预设的被屏蔽时间阈值,判断所述服务器未被屏蔽。
可选地,所述判断模块还用于:当所述服务器被屏蔽时,重新选择用于处理所述请求消息的服务器之后,统计与所述请求消息对应的重新选择次数;
所述判断模块判断所述服务器是否被屏蔽包括:当所述重新选择次数达到预设的重新选择次数阈值时,判断当前选择的服务器未被屏蔽。
根据本发明实施例的另一个方面,提供了一种应用于服务器的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例第一方面所述的容灾方法。
根据本发明实施例的还一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例第一方面所述的容灾方法。
上述发明中的一个实施例具有如下优点或有益效果:当目标服务器调用失败时,屏蔽目标服务器Mn次,随着被调用服务器故障概率的增加,能以指数级方式增加对故障服务器的屏蔽次数,快速屏蔽对故障服务器的访问,提升系统可用性;另一方面,当故障服务器恢复正常时,能快速加回已恢复的故障服务器。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的应用于服务器的容灾方法的主要流程的示意图;
图2是根据本发明可选实施例的应用于服务器的容灾方法的主要流程的示意图;
图3是根据本发明实施例的应用于服务器的容灾装置的主要模块的示意图;
图4是本发明实施例可以应用于其中的示例性系统架构图;
图5是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的应用于服务器的容灾方法的主要流程的示意图,如图1所示,应用于服务器的容灾方法,包括:
步骤S101、响应于请求消息,选择用于处理所述请求消息的服务器。
本领域技术人员可以根据应用场景的实际情况设置转发策略,并按照设置的转发策略选择用于处理当前的请求消息的服务器。例如,通过负载均衡技术,采用轮询或加权轮询、随机或加权随机、最小响应时间、最小并发数、哈希等转发策略选择用于处理当前的请求消息的服务器。应当理解的是,本步骤中只要能够选择出一台服务器即可,本发明实施例对如何选择用于处理当前的请求消息的服务器不做具体限定。
步骤S102、判断所述服务器是否被屏蔽;当所述服务器未被屏蔽时,以所述服务器作为目标服务器,调用所述目标服务器处理所述请求消息。
一般来说,若某一服务器被屏蔽,表明该服务器存在故障,此处的故障是指调用该服务器处理之前的请求消息时,调用失败,比如,调用该服务器处理之前的请求消息时存在超时、系统或服务不可用等情况。本实施例中,通过对服务器是否被屏蔽进行判断,能够了解被选择的服务器的使用状态。当被选择的服务器被屏蔽时,不以该服务器作为目标服务器,能大大减少服务器故障期间转发给故障服务器的请求消息的数量,提高系统可用性。当被选择的服务器未被屏蔽时,以该服务器作为目标服务器,能够摘除故障服务器,避免采用故障服务器处理当前的请求消息,提高系统可用性。
当被选择的服务器被屏蔽时,可以重新选择用于处理所述请求消息的服务器。从而避免由于被选择的服务器被屏蔽而导致的当前的请求消息访问失败。
步骤S103、当所述目标服务器调用失败时,屏蔽所述目标服务器Mn次;其中,M为不小于2的整数;n为不小于1的整数,代表所述目标服务器的连续失败次数。
此处的失败泛指目标服务器无法成功处理当前的请求消息的各种情况,比如,调用该服务器处理之前的请求消息时存在超时、系统或服务不可用等情况。
当目标服务器调用失败时,表明该服务器有可能存在故障;当目标服务器连续调用失败时,表明该服务器存在故障的概率更大。再次调用该服务器处理之后的请求消息时,调用失败的概率较大。当请求消息的访问量较大、访问集中时,再次调用有可能存在故障的服务器处理请求消息的调用失败概率更大。为了上述情况导致的调用失败,本发明实施例中,当目标服务器调用失败时,屏蔽目标服务器Mn次,其中,M为不小于2的整数;n为不小于1的整数,代表目标服务器的连续失败次数。
对于某一服务器,首次调用失败时,该服务器被屏蔽M次;第二次调用失败时,该服务器再次被屏蔽M2次;以此类推,当该服务器连续第n次调用失败时,该服务器后续被屏蔽次数达到Mn次。例如,对于某一服务器,首次调用失败时,该服务器被屏蔽2次;第二次调用失败时,该服务器再次被屏蔽4(即22)次;以此类推,当该服务器连续第n次调用失败时,该服务器后续被屏蔽次数达到2n次。
当调用目标服务器连续失败时,表明该服务器存在故障的概率更大。随着被调用服务器故障概率的增加,本实施例能以指数级方式增加对故障服务器的屏蔽次数,达到快速摘除故障服务器的自动容灾效果,大大提升服务器故障期间的系统可用性和稳定性。
现有技术采用定制探测包的方式进行健康检查时,为了避免频繁的健康检查失败引起的切换对系统可用性的冲击,健康检查只有在连续多次探测成功或失败后,才会进行状态切换(判定为健康检查成功或失败)。也就是说存在一个健康检查状态切换的时间窗。正处于健康检查状态切换时间窗时,如果目标服务器访问存在异常,而健康检查还未达到检查失败判定次数,则相应请求还是会被分发到该服务器,进而导致前端访问请求失败,容灾效果差。现有技术中采用请求结果上报的方式进行健康检查时,权值计算周期时间T2内,如果目标服务器存在访问异常,则相应请求消息还是会被分发到该服务器,导致访问请求失败,容灾效果差。本发明实施例在选择用于处理请求消息的服务器之后判断该服务器是否被屏蔽,且仅当该服务器未被屏蔽时,才以该服务器作为目标服务器,能够大大减少服务器故障期间转发给故障服务器的请求消息的数量,提高系统可用性。
图2是根据本发明可选实施例的应用于服务器的容灾方法的主要流程的示意图,如图2所示,应用于服务器的容灾方法包括:对于某一请求消息,
选择用于处理请求消息的服务器;
判断该服务器是否被屏蔽;若是,则重新选择用于处理请求消息的服务器;若否,则以该服务器作为目标服务器,调用该目标服务器处理请求消息;
判断该目标服务器是否调用成功;若是,则结束;否则,重新选择用于处理请求消息的服务器。应当理解的是,目标服务器调用失败之后是否重新选择用于处理请求消息的服务器可以根据应用场景的实际需求进行设置,本发明实施例对比不做具体限制。
在一些可选的实施例中,本发明实施例的方法还包括:当目标服务器调用失败时,统计目标服务器的连续失败次数n;当目标服务器调用成功时,将目标服务器的连续失败次数n清零;
当目标服务器调用失败时,屏蔽目标服务器Mn次包括:当目标服务器调用失败时,若n≤N,则屏蔽所述目标服务器Mn次;若n>N,则屏蔽所述目标服务器MN次;其中,N代表预设的失败次数阈值。
例如,若M=2、预设的失败次数阈值N=7,则对于某一服务器,首次调用失败时,该服务器被屏蔽21次;第二次调用失败时,该服务器再次被屏蔽22次;以此类推,当该服务器连续第7次调用失败时,该服务器后续被屏蔽27次;当该服务器连续7次调用失败之后,即使其连续失败次数继续增加,每次调用失败后的屏蔽次数不再按照MN的方式指数增长,而是将每次调用失败后的屏蔽次数设置为27次。
失败次数阈值可以根据应用场景的实际情况进行设置,例如设置为7,本发明实施例对此不做具体限定。本发明实施例能够防止故障服务器由于连续失败次数过多而导致的长时间被屏蔽,以便在该故障服务器恢复正常时及时将其加回,使其恢复到对外或对内的服务中,提高系统的可用性。
本发明实施例的容灾方法还可以包括:当所述目标服务器调用失败时,统计作为所述目标服务器的服务器的连续失败次数n;当所述目标服务器调用成功时,将作为所述目标服务器的服务器的连续失败次数n清零;
判断所述服务器是否被屏蔽包括:当Mn达到预设的屏蔽次数阈值时,判断所述服务器未被屏蔽。
屏蔽次数阈值可以根据应用场景的实际情况进行设置,本发明实施例对此不做具体限定。在一些实施例中,可以将屏蔽次数阈值设置为128次。当响应于某一请求消息选择一个服务器时,若该服务器已连续被屏蔽128次,则判断该服务器为未被屏蔽状态,直接以该服务器作为目标服务器、并调用该服务器处理此次的请求消息。
本发明实施例中,当响应于某一请求消息选择一个服务器时,若该服务器的连续被屏蔽次数过多,则判断该服务器未被屏蔽。直接以该服务器作为目标服务器,调用该服务器处理该某一请求消息。此时,利用该服务器处理该某一请求,可以理解成是在屏蔽多次后对该服务器进行探测。通过定量探测能够避免该服务器一直被屏蔽,从而在该服务器恢复正常时,及时快速地将该服务器恢复到对外或对内的服务中,提高系统的可用性。通过定量探测能够大大减少探测次数,降低对正常业务的影响,提高系统的可用性。
本发明实施例的容灾方法还可以包括:屏蔽所述目标服务器之后,统计作为所述目标服务器的服务器的被屏蔽时间;当再次调用所述目标服务器时,将作为所述目标服务器的服务器的被屏蔽时间清零;
判断所述服务器是否被屏蔽包括:当所述服务器的被屏蔽时间达到预设的被屏蔽时间阈值,判断所述服务器未被屏蔽。
被屏蔽时间阈值可以根据应用场景的实际情况进行设置,本发明实施例对此不做具体限定。在一些实施例中,可以将被屏蔽时间阈值设置为10s。对于某一服务器,当以该服务器连续被屏蔽时间达到10s时,则在下一次选择该服务器处理请求消息时,该服务器为未被屏蔽状态,以该服务器作为目标服务器、并调用该服务器处理此次的请求消息。
本发明实施例中,当响应于某一请求消息选择一个服务器时,若该服务器的连续被屏蔽时间过长,则判断该服务器未被屏蔽。直接以该服务器作为目标服务器,调用该服务器处理该某一请求消息。此时,利用该服务器处理该某一请求,可以理解成是在屏蔽过长时间后对该服务器进行探测。通过定时探测能够避免该服务器一直被屏蔽,从而在该服务器恢复正常时,及时快速地将该服务器恢复到对外或对内的服务中,提高系统的可用性。通过定时探测能够大大减少探测次数,降低对正常业务的影响,提高系统的可用性。
本发明实施例的容灾方法还可以包括:当所述服务器被屏蔽时,重新选择用于处理所述请求消息的服务器之后,统计与所述请求消息对应的重新选择次数;
判断所述服务器是否被屏蔽包括:当所述重新选择次数达到预设的重新选择次数阈值时,判断当前选择的服务器未被屏蔽。
重新选择次数阈值可以根据应用场景的实际情况进行设置,本发明实施例对此不做具体限定。在一些实施例中,可以将重新选择次数阈值设置为10次。对于某一请求消息,当响应于该某一请求选择的第一个服务器被屏蔽时,则重新选择第二个用于处理该某一请求消息的服务器;当第二个服务器也被屏蔽时,则选择第三个由于处理该某一请求消息的服务器;以此类推,直至选择到未被屏蔽的服务器。若选择的第10个服务器依然是被屏蔽的服务器,则重新选择第11个用于处理该某一请求消息的服务器;此时,若第11个服务器也是被屏蔽的,则不再重新选择服务器,而是解除对该第11个服务器的屏蔽,直接以第11个服务器作为目标服务器、并调用第11个服务器处理此次的请求消息。
本发明实施例中,针对某一请求消息选择用于处理该某一请求消息的服务器时,若该某一请求消息对应的重新选择次数过多,则判断当前选择的服务器未被屏蔽。直接以该服务器作为目标服务器,调用该服务器处理该某一请求消息。如此可以避免由于所有服务器都被屏蔽而导致的无法取到用于处理请求消息的服务器的问题,提升服务器故障期间的系统可用率。
应当理解的是,本发明实施例前述提及的三种判断服务器未被屏蔽的逻辑条件可以任意两两组合使用、或者三者组合使用。当组合使用时,可选地,若满足其中任意一种逻辑条件时,则判断服务器未被屏蔽,从而在其中一种满足逻辑条件时,及时快速屏蔽对故障服务器的访问,达到快速摘除故障服务器的自动容灾效果。以判断服务器未被屏蔽的逻辑条件包括如下方法为例:当所述服务器的连续被屏蔽次数Mn达到预设的屏蔽次数阈值、或者当所述服务器的被屏蔽时间达到预设的被屏蔽时间阈值,判断所述服务器未被屏蔽。若预设的屏蔽次数阈值为128次,预设的被屏蔽时间阈值为10s。当响应于请求消息选择服务器A时,若服务器A连续被屏蔽次数为64次、连续被屏蔽时间达到10s,即使服务器A的被屏蔽次数未达到预设的屏蔽次数阈值128次,仍然将服务器A判断为未屏蔽。如此,当访问请求量访问请求量较少时,能够避免由于服务器的被屏蔽次数未达到预设的屏蔽次数阈值而一直屏蔽该服务器,以便在故障服务器恢复正常时及时将故障服务器加回,使其恢复到恢复到对外或对内的服务中,提高系统的可用性。若服务器A连续被屏蔽次数为256次、连续被屏蔽时间达到6s,即使服务器A的连续被屏蔽时间未达到预设的连续被屏蔽时间阈值10s,仍然将服务器A判断为未屏蔽。如此,当访问请求量访问请求量较多时,能够避免由于服务器的连续被屏蔽时间未达到预设的被屏蔽时间阈值而一直屏蔽该服务器,以便在故障服务器恢复正常时及时将故障服务器加回,使其恢复到恢复到对外或对内的服务中,提高系统的可用性。
图3是根据本发明实施例的应用于服务器的容灾装置的主要模块的示意图,如图3所示,应用于服务器的容灾装置300包括:选择模块301、判断模块302和处理模块303;其中,
选择模块301响应于请求消息,选择用于处理所述请求消息的服务器;
判断模块302判断所述服务器是否被屏蔽;当所述服务器未被屏蔽时,处理模块303以所述服务器作为目标服务器,调用所述目标服务器处理所述请求消息;
当所述目标服务器调用失败时,判断模块302屏蔽所述目标服务器Mn次;其中,M为不小于2的整数;n为不小于1的整数,代表所述目标服务器的连续失败次数。
处理模块303还可以用于:当所述服务器被屏蔽时,重新选择用于处理所述请求消息的服务器;和/或,当所述目标服务器调用失败时,重新选择用于处理所述请求消息的服务器。
可选地,判断模块302还用于:当所述目标服务器调用失败时,统计所述目标服务器的连续失败次数n;当所述目标服务器调用成功时,将所述目标服务器的连续失败次数n清零;
当所述目标服务器调用失败时,若n≤N,则屏蔽所述目标服务器Mn次;若n>N,则屏蔽所述目标服务器MN次;其中,N代表预设的失败次数阈值。
可选地,判断模块302还可以用于:当所述目标服务器调用失败时,统计作为所述目标服务器的服务器的连续失败次数n;当所述目标服务器调用成功时,将作为所述目标服务器的服务器的连续失败次数n清零;
判断模块302判断所述服务器是否被屏蔽包括:当Mn达到预设的屏蔽次数阈值时,判断所述服务器未被屏蔽。
判断模块302还可以用于:屏蔽所述目标服务器之后,统计作为所述目标服务器的服务器的被屏蔽时间;当再次调用所述目标服务器时,将作为所述目标服务器的服务器的被屏蔽时间清零;
判断模块302判断所述服务器是否被屏蔽包括:当所述服务器的被屏蔽时间达到预设的被屏蔽时间阈值,判断所述服务器未被屏蔽。
判断模块302还可以用于:当所述服务器被屏蔽时,重新选择用于处理所述请求消息的服务器之后,统计与所述请求消息对应的重新选择次数;
判断模块302判断所述服务器是否被屏蔽包括:当所述重新选择次数达到预设的重新选择次数阈值时,判断当前选择的服务器未被屏蔽。
根据本发明实施例的另一个方面,提供了一种应用于服务器的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的容灾方法。
图4示出了可以应用本发明实施例的应用于服务器的容灾方法或应用于服务器的容灾装置的示例性系统架构400。
如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和业务服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与业务服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
业务服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的应用于服务器的容灾方法一般由业务服务器405执行,相应地,应用于服务器的容灾装置一般设置于业务服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本发明实施例的终端设备的计算机系统500的结构示意图。图5示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种应用于服务器的容灾装置包括:选择模块、判断模块和处理模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如选择模块还可以被描述为“判断所述服务器是否被屏蔽”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
响应于请求消息,选择用于处理所述请求消息的服务器;
判断所述服务器是否被屏蔽;当所述服务器未被屏蔽时,以所述服务器作为目标服务器,调用所述目标服务器处理所述请求消息;
当调用所述目标服务器失败时,屏蔽所述目标服务器Mn次;其中,M为不小于2的整数;n为不小于1的整数,代表所述目标服务器的调用失败次数。
根据本发明实施例的技术方案,一方面,随着被调用服务器故障概率的增加,能以指数级方式增加对故障服务器的屏蔽次数,快速屏蔽对故障服务器的访问,提升系统可用性;另一方面,当故障服务器恢复正常时,能快速加回已恢复的故障服务器。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (14)
1.一种应用于服务器的容灾方法,其特征在于,包括:
响应于请求消息,选择用于处理所述请求消息的服务器;
判断所述服务器是否被屏蔽;当所述服务器未被屏蔽时,以所述服务器作为目标服务器,调用所述目标服务器处理所述请求消息;
当所述目标服务器调用失败时,屏蔽所述目标服务器Mn次,并重新选择用于处理所述请求消息的服务器;其中,M为不小于2的整数;n为不小于1的整数,代表所述目标服务器的连续失败次数。
2.如权利要求1所述的容灾方法,其特征在于,当所述服务器被屏蔽时,重新选择用于处理所述请求消息的服务器;和/或,当所述目标服务器调用失败时,重新选择用于处理所述请求消息的服务器。
3.如权利要求1所述的容灾方法,其特征在于,还包括:当所述目标服务器调用失败时,统计所述目标服务器的连续失败次数n;当所述目标服务器调用成功时,将所述目标服务器的连续失败次数n清零;
当所述目标服务器调用失败时,屏蔽所述目标服务器Mn次包括:当所述目标服务器调用失败时,若n≤N,则屏蔽所述目标服务器Mn次;若n>N,则屏蔽所述目标服务器M N次;其中,N代表预设的失败次数阈值。
4.如权利要求1所述的容灾方法,其特征在于,还包括:当所述目标服务器调用失败时,统计作为所述目标服务器的服务器的连续失败次数n;当所述目标服务器调用成功时,将作为所述目标服务器的服务器的连续失败次数n清零;
判断所述服务器是否被屏蔽包括:当Mn达到预设的屏蔽次数阈值时,判断所述服务器未被屏蔽。
5.如权利要求1所述的容灾方法,其特征在于,还包括:屏蔽所述目标服务器之后,统计作为所述目标服务器的服务器的被屏蔽时间;当再次调用所述目标服务器时,将作为所述目标服务器的服务器的被屏蔽时间清零;
判断所述服务器是否被屏蔽包括:当所述服务器的被屏蔽时间达到预设的被屏蔽时间阈值,判断所述服务器未被屏蔽。
6.如权利要求2所述的容灾方法,其特征在于,还包括:当所述服务器被屏蔽时,重新选择用于处理所述请求消息的服务器之后,统计与所述请求消息对应的重新选择次数;
判断所述服务器是否被屏蔽包括:当所述重新选择次数达到预设的重新选择次数阈值时,判断当前选择的服务器未被屏蔽。
7.一种应用于服务器的容灾装置,其特征在于,包括:选择模块、判断模块和处理模块;其中,
选择模块响应于请求消息,选择用于处理所述请求消息的服务器;
判断模块判断所述服务器是否被屏蔽;当所述服务器未被屏蔽时,处理模块以所述服务器作为目标服务器,调用所述目标服务器处理所述请求消息;
当所述目标服务器调用失败时,判断模块屏蔽所述目标服务器Mn次;其中,M为不小于2的整数;n为不小于1的整数,代表所述目标服务器的连续失败次数。
8.如权利要求7所述的容灾装置,其特征在于,所述处理模块还用于:当所述服务器被屏蔽时,重新选择用于处理所述请求消息的服务器;和/或,当所述目标服务器调用失败时,重新选择用于处理所述请求消息的服务器。
9.如权利要求7所述的容灾装置,其特征在于,所述判断模块还用于:当所述目标服务器调用失败时,统计所述目标服务器的连续失败次数n;当所述目标服务器调用成功时,将所述目标服务器的连续失败次数n清零;
当所述目标服务器调用失败时,若n≤N,则屏蔽所述目标服务器Mn次;若n>N,则屏蔽所述目标服务器M N次;其中,N代表预设的失败次数阈值。
10.如权利要求7所述的容灾装置,其特征在于,所述判断模块还用于:当所述目标服务器调用失败时,统计作为所述目标服务器的服务器的连续失败次数n;当所述目标服务器调用成功时,将作为所述目标服务器的服务器的连续失败次数n清零;
所述判断模块判断所述服务器是否被屏蔽包括:当Mn达到预设的屏蔽次数阈值,判断所述服务器未被屏蔽。
11.如权利要求7所述的容灾装置,其特征在于,所述判断模块还用于:屏蔽所述目标服务器之后,统计作为所述目标服务器的服务器的被屏蔽时间;当再次调用所述目标服务器时,将作为所述目标服务器的服务器的被屏蔽时间清零;
所述判断模块判断所述服务器是否被屏蔽包括:当所述服务器的被屏蔽时间达到预设的被屏蔽时间阈值,判断所述服务器未被屏蔽。
12.如权利要求8所述的容灾装置,其特征在于,所述判断模块还用于:当所述服务器被屏蔽时,重新选择用于处理所述请求消息的服务器之后,统计与所述请求消息对应的重新选择次数;
所述判断模块判断所述服务器是否被屏蔽包括:当所述重新选择次数达到预设的重新选择次数阈值时,判断当前选择的服务器未被屏蔽。
13.一种应用于服务器的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711375985.6A CN109936613B (zh) | 2017-12-19 | 2017-12-19 | 应用于服务器的容灾方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711375985.6A CN109936613B (zh) | 2017-12-19 | 2017-12-19 | 应用于服务器的容灾方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109936613A CN109936613A (zh) | 2019-06-25 |
CN109936613B true CN109936613B (zh) | 2021-11-05 |
Family
ID=66983726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711375985.6A Active CN109936613B (zh) | 2017-12-19 | 2017-12-19 | 应用于服务器的容灾方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109936613B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111181777B (zh) * | 2019-12-17 | 2022-09-20 | 深圳前海环融联易信息科技服务有限公司 | 一种服务降级的方法、装置、计算机设备及存储介质 |
CN113676365B (zh) * | 2020-05-13 | 2022-10-11 | 北京达佳互联信息技术有限公司 | 一种访问请求的处理方法、装置及电子设备 |
CN113783908B (zh) * | 2020-06-10 | 2023-06-27 | 腾讯科技(上海)有限公司 | 服务调用方法、装置、设备及存储介质 |
CN112769889B (zh) * | 2020-11-18 | 2022-12-06 | 青岛海尔科技有限公司 | 服务数据的推送方法、装置、存储介质以及电子装置 |
CN112543141B (zh) * | 2020-12-04 | 2022-03-01 | 互联网域名系统北京市工程研究中心有限公司 | Dns转发服务器容灾调度的方法和系统 |
CN112540880A (zh) * | 2020-12-22 | 2021-03-23 | 作业帮教育科技(北京)有限公司 | 一种快速屏蔽集群中故障显卡的方法、装置及电子设备 |
CN113377539A (zh) * | 2021-06-10 | 2021-09-10 | 中国工商银行股份有限公司 | 实现负载均衡的处理方法及装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100587692C (zh) * | 2007-01-26 | 2010-02-03 | 华中科技大学 | 一种提高元数据服务可靠性的方法及其系统 |
CN102467508A (zh) * | 2010-11-04 | 2012-05-23 | 中兴通讯股份有限公司 | 提供数据库服务的方法及数据库系统 |
US20120124431A1 (en) * | 2010-11-17 | 2012-05-17 | Alcatel-Lucent Usa Inc. | Method and system for client recovery strategy in a redundant server configuration |
CN102075380B (zh) * | 2010-12-16 | 2014-12-10 | 中兴通讯股份有限公司 | 一种服务器状态检测方法及装置 |
US8677461B2 (en) * | 2011-04-21 | 2014-03-18 | Lsi Corporation | Method to provide chip based security for I/O packets in an array using dynamic topology |
CN102843264B (zh) * | 2012-09-21 | 2015-04-08 | 中国航空无线电电子研究所 | 高速串行总线网络中双主机的控制方法 |
CN103731312A (zh) * | 2014-01-26 | 2014-04-16 | 飞狐信息技术(天津)有限公司 | 对远程方法调用的服务进行故障检查的方法和装置 |
CN105554121A (zh) * | 2015-12-18 | 2016-05-04 | 深圳中兴网信科技有限公司 | 实现分布式缓存系统负载均衡的方法及系统 |
CN107196777A (zh) * | 2016-03-14 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种应用处理的方法和装置 |
CN105956138B (zh) * | 2016-05-11 | 2019-07-12 | 北京百度网讯科技有限公司 | 数据库连接的控制方法和装置 |
CN106202416B (zh) * | 2016-07-11 | 2018-10-02 | 腾讯科技(深圳)有限公司 | 列表数据写方法和装置、列表数据读取方法和装置 |
CN106294073B (zh) * | 2016-08-15 | 2019-03-12 | 合一智能科技(深圳)有限公司 | 服务调用方法及装置 |
CN107204875B (zh) * | 2017-05-11 | 2022-08-23 | 腾讯科技(深圳)有限公司 | 数据上报链路监测方法、装置、电子设备及存储介质 |
CN107395406B (zh) * | 2017-07-12 | 2020-12-25 | 广州市百果园信息技术有限公司 | 在线系统的在线状态数据处理方法、装置及系统 |
-
2017
- 2017-12-19 CN CN201711375985.6A patent/CN109936613B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109936613A (zh) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109936613B (zh) | 应用于服务器的容灾方法和装置 | |
CN109684358B (zh) | 数据查询的方法和装置 | |
CN111131058B (zh) | 访问量控制方法和装置 | |
CN111124819B (zh) | 全链路监控的方法和装置 | |
US8898520B1 (en) | Method of assessing restart approach to minimize recovery time | |
US9596313B2 (en) | Method, terminal, cache server and system for updating webpage data | |
CN107204875B (zh) | 数据上报链路监测方法、装置、电子设备及存储介质 | |
CN108833205B (zh) | 信息处理方法、装置、电子设备及存储介质 | |
CN113517985B (zh) | 文件数据处理方法、装置、电子设备及计算机可读介质 | |
CN111181765A (zh) | 一种任务处理方法和装置 | |
CN112383585A (zh) | 消息处理系统、方法及电子设备 | |
CN108093036B (zh) | 一种获取资源的方法及装置 | |
CN109428926B (zh) | 一种调度任务节点的方法和装置 | |
CN110958250B (zh) | 一种端口监控方法、装置和电子设备 | |
US9600251B1 (en) | Enhancing API service schemes | |
CN112788076A (zh) | 一种多服务负载部署的方法和装置 | |
US20230269304A1 (en) | Method and apparatus for processing notification trigger message | |
CN113760982A (zh) | 一种数据处理方法和装置 | |
CN113742389A (zh) | 一种业务处理方法和装置 | |
CN113765966A (zh) | 一种负载均衡方法和装置 | |
CN115525411A (zh) | 处理业务请求的方法、装置、电子设备和计算机可读介质 | |
CN113676531B (zh) | 电商流量削峰方法、装置、电子设备及可读存储介质 | |
CN115543416A (zh) | 一种配置更新方法、装置、电子设备及存储介质 | |
CN114374657A (zh) | 一种数据处理方法和装置 | |
CN110247847B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |