CN111770154A - 服务检测方法、装置、设备以及存储介质 - Google Patents
服务检测方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN111770154A CN111770154A CN202010589438.3A CN202010589438A CN111770154A CN 111770154 A CN111770154 A CN 111770154A CN 202010589438 A CN202010589438 A CN 202010589438A CN 111770154 A CN111770154 A CN 111770154A
- Authority
- CN
- China
- Prior art keywords
- service
- candidate
- nodes
- detection
- node
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 162
- 230000015654 memory Effects 0.000 claims description 21
- 238000000034 method Methods 0.000 claims description 21
- 238000013515 script Methods 0.000 claims description 9
- 230000000694 effects Effects 0.000 claims description 8
- 239000000126 substance Substances 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 239000000654 additive Substances 0.000 description 4
- 230000000996 additive effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008030 elimination Effects 0.000 description 3
- 238000003379 elimination reaction Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
-
- 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/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了服务检测方法、装置、设备以及存储介质,涉及互联网、大数据、云计算等领域。具体实现方案为:从候选节点集合中获取服务的候选节点;对该服务的候选节点进行检测;根据检测结果,从该候选节点集合中选取部分节点加入稳定节点集合,该稳定节点集合中包括该服务的候选节点中的可用节点。在本申请实施例中,对候选节点集合中服务的候选节点进行检测,得到稳定节点集合,进而可以通过稳定节点集合支持该服务,提高了服务的稳定性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及互联网、大数据、云计算等领域。
背景技术
在互联网技术中,大量的架构系统采用分布式架构进行服务部署。每个服务可能包括成千上万个节点,这些节点部署在不同的物理机器上,这些节点共同组成一个可用的服务。上游业务通过某种负载均衡算法,如Round-Robin(轮询调度)、Locality-Aware(拓扑感知)、Hash(哈希)等,从分布式服务中挑选服务节点发起访问。由于分布式系统中服务节点众多、网络环境复杂、机器配置差异大,不确定的网络故障、机器故障、业务故障均会导致分布式服务可用性降低、稳定性变差。
在线业务对服务的可用性、稳定性要求极高,分布式系统能否检测和剔除故障节点是考量一个分布式系统能否提供高可靠、高可信的服务的重要指标。相关技术中,通过在负载均衡算法中屏蔽故障节点或者在业务层对节点进行健康检查等取出故障节点,但是仍然存在节点稳定性差、可用性不高、无法检查业务故障等问题。
发明内容
本申请提供了一种服务检测方法、装置、设备以及存储介质。
根据本申请的一方面,提供了一种服务检测方法,包括:
从候选节点集合中获取服务的候选节点;
对该候选节点进行检测;
根据检测结果,从该候选节点集合中选取部分节点加入稳定节点集合,该稳定节点集合中包括该服务的候选节点中的可用节点。
根据本申请的另一方面,提供了一种服务检测装置,包括:
获取模块,用于从候选节点集合中获取服务的候选节点;
检测模块,用于对该候选节点进行检测;
选取模块,用于根据检测结果,从该候选节点集合中选取部分节点加入稳定节点集合,该稳定节点集合中包括该服务的候选节点中的可用节点。
根据本申请的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行服务检测方法。
根据本申请的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行服务检测方法。
根据本申请的技术方案,对候选节点集合中服务的候选节点进行检测,得到稳定节点集合,进而可以通过稳定节点集合支持该服务,提高了服务的稳定性。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请一实施例的服务检测方法的流程图;
图2是根据本申请另一实施例的服务检测方法的流程图;
图3是根据本申请另一实施例的服务检测方法的流程图;
图4是根据本申请另一实施例的服务检测方法的流程图;
图5是根据本申请另一实施例的服务检测方法的流程图;
图6是根据本申请另一实施例的服务检测方法的应用场景的示意图;
图7是根据本申请一实施例的服务检测装置的框图;
图8是根据本申请另一实施例的服务检测装置的框图;
图9是根据本申请实施例的服务检测方法的电子设备的框图;
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本申请一实施例的服务检测方法的流程图,该方法可以包括:
S101、从候选节点集合中获取服务的候选节点。
S102、对该服务的候选节点进行检测。
S103、根据检测结果,从该候选节点集合中选取部分节点加入稳定节点集合,该稳定节点集合中包括该服务的候选节点中的可用节点。
在本申请实施例中,候选节点集合中可以包括一个或多个服务的候选节点,一个服务可以具有一个或多个候选节点。对于分布式系统,一个服务可以部署在若干的物理机器上,这些物理机器可以共同支持该服务。这些物理机器上运行的该服务的程序可以看做该服务的候选节点。例如,一个DNS服务可能具有几千个候选节点,这些候选节点部署在不同的物理机器上。这些候选节点共同组成一个可用的服务。例如,在云计算的场景中,服务可以部署在支持云计算的若干的物理机器上。
可以对某个服务的各候选节点分别进行检测,如果某个候选节点所部署的物理机器出现部件或网络连接等故障,可能导致该候选节点不可达,则可以不使用该候选节点提供该服务。如果某个候选节点的业务处理有问题,返回的业务数据不符合要求,则可以不使用该候选节点提供该服务。
检测设备将这些不适宜提供该服务的候选节点剔除后,可以将剩下的可用节点为该服务的稳定节点。稳定节点集合中可以包括一个或多个服务的稳定节点,每个服务可以具有一个或多个稳定节点。例如,可以记录稳定节点列表。每间隔一段时间检测一次服务的所有候选节点,将该服务的稳定节点的信息,记录到该服务的稳定节点列表中,将剔除的故障节点从稳定节点列表中删除。
在本申请实施例中,对候选节点集合中服务的候选节点进行检测,得到稳定节点集合,进而可以通过稳定节点集合支持该服务,提高了服务的稳定性,不仅能够解决分布式系统中的单点故障的问题,还可以解决节点批量故障、业务故障等问题。
图2是根据本申请另一实施例的服务检测方法的流程图。该实施例的服务检测方法可以包括上一实施例的各步骤。在本实施例中,该方法还包括:S104、在接收到该服务的使用请求的情况下,向该服务的至少一个稳定节点发送该使用请求。
在一种实施方式中,如果检测设备接收到客户端的针对某个服务的使用请求,可以向该服务的稳定节点发送该使用请求。该服务的稳定节点对该使用请求进行处理,返回处理结果。将使用请求发送至稳定节点进行处理,有利于提高服务的稳定性,减少故障对服务的影响。
例如,域名到IP地址的解析是由分布在互联网上的许多域名服务器程序共同完成的。域名服务器程序在多个节点上运行,运行域名服务器程序的机器可以称为域名服务器。在稳定节点池中包括域名服务的稳定节点,如果接收到客户端的域名服务请求,可以将该域名服务请求发送到该域名服务的一个或多个稳定节点上进行解析。
图3是根据本申请另一实施例的服务检测方法的流程图。该实施例的服务检测方法可以包括上一实施例的各步骤。在本实施例中,S102中,对该服务的候选节点进行检测,包括物理检测,具体可以包括:
S201、定期对该服务的候选节点进行套接字(socket)连接探活。
S202、根据探活结果调整该服务的候选节点的可信分。
其中,该探活结果包括被检测的候选节点是否可达和/或是否超时。
示例性地,套接字(socket)连接探活的过程可以包括:检测设备向服务的候选节点发起传输控制协议(TCP,Transmission Control Protocol)三次握手,建立新连接。如果连接建立成功,代表在该候选节点该服务活着,探活结果是候选节点可达且未超时。如果建立失败,代表在该候选节点该服务死了,探活结果是候选节点不可达和/或超时。示例性地,如果候选节点所在的物理机器出现部件例如CPU、内存或磁盘等故障、网络故障等问题,可能出现该候选节点不可达和/或超时。
示例性地,评分算法可以采用多种,可以预先根据候选节点所在的物理机器的性能等为每个候选节点估算一个初始分值,也可以为所有的候选节点统一设置初始分值。然后,可以采用加性增、乘性减的评分算法继续评分。加性增可以包括:如果检测成功,评分增加某个设定值例如+1或+2。乘性减可以包括:如果检测成功,评分减半。这样可以使得故障节点快速退出服务,并且对于恢复的节点,可以等到节点多次检测成功处于稳定状态后再提供服务。该评分算法既可以适用于物理检测,也可以适用于业务检测。
此外,可以设置故障阈值,如果候选节点的可信分大于或等于该阈值,则加入稳定节点集合,如果候选节点的可信分小于该阈值,则加入稳定节点集合。
在本实施例中,S103中,根据检测结果,从该候选节点集合中选取部分节点加入稳定节点集合,包括以下至少之一:
将可信分高于或等于第一阈值的候选节点的信息加入该稳定节点集合对应的域名列表中;
将可信分低于第一阈值的候选节点的信息从该稳定节点集合对应的域名列表中删除。
采用可信分和阈值进行比较,能够合理地确定服务的稳定节点,进而提供稳定的服务。
结合上述评分算法举例如下:假设某个服务的候选节点初始的可信分为20,故障阈值为8,每次检测成功加1分,检测失败减半。第一次检测失败,该候选节点的可信分变为10,大于阈值,继续作为稳定节点提供服务。第二次检测失败,该候选节点的可信分变为5,小于阈值,从稳定节点集合中剔除,退出服务。第三次检测成功,该候选节点的可信分变为6,接着检测成功多次,直到该候选节点的可信分变为8,才能加入稳定节点集合,继续提供服务。采用灵敏且稳定的故障评分算法,有利于保证故障节点及时被屏蔽、节点恢复稳定后再解屏蔽。
通过定时探活对服务的节点进行物理检测,有利于减少物理故障对服务的影响。根据探活结果调整候选节点的可信分,可以及时将不可达和/或超时的节点从访问列表中剔除掉,及时检测出机器故障、机器假死、延迟故障等物理故障。
图4是根据本申请另一实施例的服务检测方法的流程图。该实施例的服务检测方法可以包括上述实施例的各步骤。
在本实施例中,S102中,对该服务的候选节点进行检测,包括业务检测,具体可以包括:
S301、执行该服务对应的业务检测脚本,通过该服务对应的业务接口向该服务的候选节点发送业务检测请求;
S302、接收该服务的候选节点返回的业务数据;
S303、检测该业务数据是否满足判定条件;
S304、根据检测结果调整该服务的候选节点的可信分。
在本申请实施例中,服务可以为业务的载体,例如,服务可以为实际的应用程序,业务可以为这个程序中包含的各种处理逻辑。在业务检测中,可以为每种服务定制化地设置对应的业务检测请求以及判定条件。根据每一种服务的特点,为不同的服务编写对应的业务检测脚本。在进行需要对某个服务进行业务检测时,可以执行该服务的业务检测脚本,向该服务的业务接口发送业务检测请求例如接口访问请求。并根据脚本中的判定条件对接收到响应进行检测,判断该候选节点是否出现业务故障。例如检测结果为节点处理结果异常、节点状态不一致等,可以判定该节点出现业务故障。
采用定制化、扩展化的检测算法,对节点返回的数据进行业务故障检测,及时检测出业务层面的故障,减少业务故障对服务的影响。
此外,业务检测的评分算法可以参见上述实施例的物理检测中的评分算法。对于每个候选节点,也可以综合物理检测和业务检测的评分,得到综合的可信分。例如,对DNS/BNS服务的候选节点进行物理检测和业务检测,得到稳定节点,通过稳定节点提供服务,减少各种物理故障和业务故障对服务的影响,提高服务稳定性。
图5是根据本申请另一实施例的服务检测方法的流程图。该实施例的服务检测方法可以包括上述实施例的各步骤。
在本实施例中,该方法还包括:
S401、在该稳定节点集合中该服务的稳定节点的数量小于第二阈值的情况下,按照可信分从该候选节点集合中选择该服务的至少一个候选节点加入该稳定节点集合。
第二阈值可以称为可用度阈值,不同服务的可用度阈值可能相同,也可以不同。对服务进行物理检测和/或业务检测后,可能更新稳定节点集合。在更新稳定节点集合时,可以检测某个服务的稳定节点的数量。如果该服务的稳定节点的数量小于可用度阈值,可以从该服务的各候选节点中选择一个或多个节点加入稳定节点集合。选择以及可以是按照候选节点的可信分的从高到底的顺序,将这些候选节点中不在稳定节点集合中的且分数较高的一个或多个节点选出,记录到稳定节点列表,从而加入稳定节点集合。
例如,如果可用度阈值为20,故障阈值为8。服务的稳定节点包括节点1到节点18共18个节点,节点数量小于可用度阈值。也就是说,差两个节点才能达到可用于要求。该服务的候选节点集合中,还包括节点19到节点30共12个节点,可以从其中选取2个或2个以上的节点补充到稳定节点集合中,以满足可用度需求。可以按照可信度分数从高到底的顺序选,也可以再设置一个阈值,将高于该阈值的节点全部加入稳定节点集合,具体选择方式不做限制。例如,可信分最高的节点为节点19(可信分为7)和节点25(可信分为6),虽然他们的可信分低于故障阈值,也可以将他们加入稳定节点集合临时用来提供服务。如果后续检测到可信分更高的节点,可以将这些临时提供服务的节点替换掉。
在本申请实施例中,通过可用度控制,可以防止系统崩溃,提高系统服务的稳定性和可用性。
在一种应用场景,在用于提供域名服务的分布式系统中,采用本实施例的服务检测方法可以进行故障节点检测和剔除。在DNS(DomainNaming Service,域名服务)或BNS(Baidu Naming Service,百度命名服务)(以下简称DNS/BNS服务)基础上,采用物理检测和业务检测结合的方式评选出可靠的、稳定的服务节点,及时剔除故障节点,保证对外提供的DNS/BNS服务的高可用性、高稳定性。
如图6所示,在该服务检测方法中,故障节点检测和剔除机制可以通过业务层、检测层和网络层来实现。
业务层负责对接DNS/BNS服务,从候选节点池周期获取候选节点。候选节点池可以包括服务的多个候选节点。并且,业务层可以记录检测层返回的稳定节点,并提供新的DNS/BNS服务(稳定的DNS/BNS服务)。新的DNS/BNS服务在接口协议上与之前普通的DNS/BNS服务保持一致,使用方例如客户端只需更改DNS设置或者BNS设置即可对接,保证系统对外的透明性。服务的稳定节点可以加入稳定节点池。
检测层负责对节点进行物理检测和业务检测。检测层可以定时执行检测任务。不同服务的检测周期可以相同,也可以不同。
物理检测可以通过定时套接字(socket)连接探活的方式进行,如果被检测的节点unreachable(不可达)或timeout(超时),则认为检测失败。相应地,如果被检测的节点可达且不超时,则认为检测成功。这种情况下,评分逻辑会调整所检测的机器节点的可信分。其中,一种示例性的探活的过程可以包括:检测端发起TCP三次握手,建立新连接,连接建立成功代表服务活着,建立失败代表服务死了。
物理检测主要可以检测该节点在硬件、网络连接等方面的故障。
业务检测可以通过访问业务接口以及检测业务返回数据是否满足检测插件判定条件的方式进行。判定条件可以包括:如果返回的业务响应(response)与参考数据不一致,判定为业务检测失败。具体地,检测插件中可以预先定义各种检测函数,每个函数对应一个阶段。当检测插件返回失败时,评分逻辑会调整机器节点的可信分。当某一个节点的可信分低于阈值时,则判定当前节点不可用,可以将当前节点的信息从DNS/BNS列表中剔除。
网络层负责网络请求的连接、接口协议适配等工作。
以下分别介绍故障节点检测和剔除机制中的评分算法、检测插件和可用度控制。
1.可以使用加性增、乘性减的评分算法。其中,加性增可以包括:如果物理检测或业务检测成功,评分增加某个设定值例如+1。乘性减可以包括:如果物理检测或业务检测成功,评分减半。例如,如果节点A的可信分为20,检测失败一次可信分变为10,再检测成功一次可信分变为11。
这种评分算法可以保证故障节点的迅速退场,同时保证恢复后的节点稳定后才会进场。示例性地,该评分算法的伪代码如下:
int check(condition,score):
if condition:
return score+1>MAX_SCORE?MAX_SCORE:score+1;
else:
return score/2<MIN_SCORE?MIN_SCORE:score/2;
2.检测插件采用业务检测脚本例如Lua脚本实现。针对不同的服务向该服务的候选节点发送对应的请求数据,并对该候选节点返回的数据进行检测。例如,下表中的两个函数,对应业务检测逻辑的不同阶段。其中,检测设备使用data函数可以向某个服务的候选节点发送业务请求数据,通过check函数可以对候选节点返回的数据进行检测。
3.可用度控制:设置可用度阈值,如果在稳定节点池中某个服务的稳定节点的数量小于该阈值,按照可信分从候选节点池中选择该服务的候选节点加入稳定节点池。
可用度控制可以解决系统雪崩的问题。通过故障节点检测和屏蔽机制可以有效过滤掉系统中不满足服务要求的节点,但是如果屏蔽的节点数不做控制的话,会导致可用的节点数越来越少。分布式系统的压力会集中到剩下的可用节点,可能由于压力增大而导致剩下的可用节点崩溃甚至系统崩溃。通过对系统采用可用度控制,保证在出现故障的情况下能够有足够多的节点满足访问需要,服务降级处理。
采用本实施例的服务检测方法检测和剔除故障节点,通过物理检测和业务检测能够减少线上出现的机器假死、混部环境容器相互影响、磁盘故障、网络故障等问题,能有效解决系统中单点、多点故障。例如,应用于信息流(Feed)正排系统中,服务可用性具有大幅提高。
在本实施例中,提供了分布式系统的故障节点检测和剔除机制,以解决分布式系统中的硬件层面和业务层面的故障。采用统一的检测机制对分布式系统中的节点进行探活,及时检测出硬件层面的故障,如网络不可用、机器死机、端口假死等问题。采用灵敏且稳定的故障评分算法保证故障节点及时被屏蔽、节点恢复稳定后再解屏蔽。采用定制化、扩展化的检测算法,对节点返回的数据进行业务故障检测,如节点处理结果异常、节点状态不一致,及时检测出业务层面的故障。本申请实施例提供了统一的、灵敏的、扩展性强的故障节点检测和剔除机制,可以保证分布式系统的高可用性、高稳定性。
图7是根据本申请一实施例的服务检测装置的框图。该装置可以包括:
获取模块41,用于从候选节点集合中获取服务的候选节点;
检测模块42,用于对该服务的候选节点进行检测;
选取模块43,用于根据检测结果,从该候选节点集合中选取部分节点加入稳定节点集合,该稳定节点集合中包括该服务的候选节点中的可用节点。
在一种可能的实施方式中,如图8所示,该装置还包括:
发送模块51,用于在接收到该服务的使用请求的情况下,向该服务的至少一个稳定节点发送该使用请求。
在一种可能的实施方式中,该检测模块42包括物理检测子模块421,该物理检测子模块421用于:
定期对该服务的候选节点进行套接字socket连接探活;
根据探活结果调整该服务的候选节点的可信分。
在一种可能的实施方式中,该探活结果包括被检测的候选节点是否可达和/或是否超时。
在一种可能的实施方式中,该检测模块包括业务检测子模块422,该业务检测子模块422用于:
执行该服务对应的业务检测脚本,通过该服务对应的业务接口向该服务的候选节点发送业务检测请求;
接收该服务的候选节点返回的业务数据;
检测该业务数据是否满足判定条件;
根据检测结果调整该服务的候选节点的可信分。
在一种可能的实施方式中,该选取模块具体用于执行以下步骤至少之一:
将可信分高于或等于第一阈值的候选节点的信息加入该稳定节点集合对应的域名列表中;
将可信分低于第一阈值的候选节点的信息从该稳定节点集合对应的域名列表中删除。
在一种可能的实施方式中,该装置还包括:
可用性模块52,用于在该稳定节点集合中该服务的稳定节点的数量小于第二阈值的情况下,按照可信分从该候选节点集合中选择该服务的至少一个候选节点加入该稳定节点集合。
本申请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图9所示,是根据本申请实施例的服务检测方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图9所示,该电子设备包括:一个或多个处理器901、存储器902,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器901为例。
存储器902即为本申请所提供的非瞬时计算机可读存储介质。其中,该存储器存储有可由至少一个处理器执行的指令,以使该至少一个处理器执行本申请所提供的服务检测方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的服务检测方法。
存储器902作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的服务检测方法对应的程序指令/模块(例如,附图7所示的获取模块41、检测模块42和选取模块43)。处理器901通过运行存储在存储器902中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的服务检测方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务检测方法的电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至服务检测方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
服务检测方法的电子设备还可以包括:输入装置903和输出装置904。处理器901、存储器902、输入装置903和输出装置904可以通过总线或者其他方式连接,图9中以通过总线连接为例。
输入装置903可接收输入的数字或字符信息,以及产生与服务检测方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置904可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
在本申请实施例中,对候选节点集合中服务的候选节点进行检测,得到稳定节点集合,进而可以通过稳定节点集合支持该服务,提高了服务的稳定性,不仅能够解决分布式系统中的单点故障的问题,还可以解决节点批量故障、业务故障等问题。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (16)
1.一种服务检测方法,包括:
从候选节点集合中获取服务的候选节点;
对所述服务的候选节点进行检测;
根据检测结果,从所述候选节点集合中选取部分节点加入稳定节点集合,所述稳定节点集合中包括所述服务的候选节点中的可用节点。
2.根据权利要求1所述的方法,其特征在于,还包括:
在接收到所述服务的使用请求的情况下,向所述服务的至少一个稳定节点发送所述使用请求。
3.根据权利要求1所述的方法,其特征在于,对所述服务的候选节点进行检测,包括:
定期对所述服务的候选节点进行套接字socket连接探活;
根据探活结果调整所述服务的候选节点的可信分。
4.根据权利要求3所述的方法,其特征在于,所述探活结果包括被检测的候选节点是否可达和/或是否超时。
5.根据权利要求1至4中任一项所述的方法,其特征在于,对所述服务的候选节点进行检测,包括:
执行所述服务对应的业务检测脚本,通过所述服务对应的业务接口向所述服务的候选节点发送业务检测请求;
接收所述服务的候选节点返回的业务数据;
检测所述业务数据是否满足判定条件;
根据检测结果调整所述服务的候选节点的可信分。
6.根据权利要求1至4中任一项所述的方法,其特征在于,根据检测结果,从所述候选节点集合中选取部分节点加入稳定节点集合,包括以下至少之一:
将可信分高于或等于第一阈值的候选节点的信息加入所述稳定节点集合对应的域名列表中;
将可信分低于第一阈值的候选节点的信息从所述稳定节点集合对应的域名列表中删除。
7.根据权利要求1至4中任一项所述的方法,其特征在于,还包括:
在所述稳定节点集合中所述服务的稳定节点的数量小于第二阈值的情况下,按照可信分从所述候选节点集合中选择所述服务的至少一个候选节点加入所述稳定节点集合。
8.一种服务检测装置,包括:
获取模块,用于从候选节点集合中获取服务的候选节点;
检测模块,用于对所述服务的候选节点进行检测;
选取模块,用于根据检测结果,从所述候选节点集合中选取部分节点加入稳定节点集合,所述稳定节点集合中包括所述服务的候选节点中的可用节点。
9.根据权利要求8所述的装置,其特征在于,还包括:
发送模块,用于在接收到所述服务的使用请求的情况下,向所述服务的至少一个稳定节点发送所述使用请求。
10.根据权利要求8所述的装置,其特征在于,所述检测模块包括物理检测子模块,所述物理检测子模块用于:
定期对所述服务的候选节点进行套接字socket连接探活;
根据探活结果调整所述服务的候选节点的可信分。
11.根据权利要求10所述的装置,其特征在于,所述探活结果包括被检测的候选节点是否可达和/或是否超时。
12.根据权利要求8至11中任一项所述的装置,其特征在于,所述检测模块包括业务检测子模块,所述业务检测子模块用于:
执行所述服务对应的业务检测脚本,通过所述服务对应的业务接口向所述服务的候选节点发送业务检测请求;
接收所述服务的候选节点返回的业务数据;
检测所述业务数据是否满足判定条件;
根据检测结果调整所述服务的候选节点的可信分。
13.根据权利要求8至11中任一项所述的装置,其特征在于,所述选取模块具体用于执行以下步骤至少之一:
将可信分高于或等于第一阈值的候选节点的信息加入所述稳定节点集合对应的域名列表中;
将可信分低于第一阈值的候选节点的信息从所述稳定节点集合对应的域名列表中删除。
14.根据权利要求8至11中任一项所述的装置,其特征在于,还包括:
可用性模块,用于在所述稳定节点集合中所述服务的稳定节点的数量小于第二阈值的情况下,按照可信分从所述候选节点集合中选择所述服务的至少一个候选节点加入所述稳定节点集合。
15.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010589438.3A CN111770154B (zh) | 2020-06-24 | 2020-06-24 | 服务检测方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010589438.3A CN111770154B (zh) | 2020-06-24 | 2020-06-24 | 服务检测方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111770154A true CN111770154A (zh) | 2020-10-13 |
CN111770154B CN111770154B (zh) | 2023-12-05 |
Family
ID=72721693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010589438.3A Active CN111770154B (zh) | 2020-06-24 | 2020-06-24 | 服务检测方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111770154B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114205260A (zh) * | 2021-11-08 | 2022-03-18 | 南方电网深圳数字电网研究院有限公司 | 基于go语言的tcp连接探活方法及装置 |
CN115002114A (zh) * | 2022-05-27 | 2022-09-02 | 北京百度网讯科技有限公司 | 节点处理方法、装置、电子设备、存储介质及服务器 |
US20230147295A1 (en) * | 2021-11-05 | 2023-05-11 | Salesforce.Com, Inc. | Mechanisms for grouping nodes |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101048007A (zh) * | 2006-02-20 | 2007-10-03 | 三菱电机株式会社 | 从移动终端传送寻呼请求消息的方法 |
CN104901989A (zh) * | 2014-03-07 | 2015-09-09 | 中国科学院声学研究所 | 一种现场服务提供系统及方法 |
CN106856489A (zh) * | 2015-12-08 | 2017-06-16 | 阿里巴巴集团控股有限公司 | 一种分布式存储系统的服务节点切换方法和装置 |
CN107171859A (zh) * | 2017-06-27 | 2017-09-15 | 联想(北京)有限公司 | 一种编码方法、解码方法及服务器、终端设备 |
EP3336704A1 (en) * | 2016-12-19 | 2018-06-20 | Alcatel Lucent | A method for selecting a root node in a cloud environment |
CN109254876A (zh) * | 2018-09-11 | 2019-01-22 | 郑州云海信息技术有限公司 | 云计算系统中数据库的管理方法和装置 |
CN109510775A (zh) * | 2018-11-12 | 2019-03-22 | 网宿科技股份有限公司 | 定向流量的调度方法、鉴权装置、网络设备及存储介质 |
CN110162424A (zh) * | 2019-05-23 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 故障处理方法、系统、装置及存储介质 |
CN110737560A (zh) * | 2019-10-22 | 2020-01-31 | 北京百度网讯科技有限公司 | 一种服务状态检测方法、装置、电子设备和介质 |
-
2020
- 2020-06-24 CN CN202010589438.3A patent/CN111770154B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101048007A (zh) * | 2006-02-20 | 2007-10-03 | 三菱电机株式会社 | 从移动终端传送寻呼请求消息的方法 |
CN104901989A (zh) * | 2014-03-07 | 2015-09-09 | 中国科学院声学研究所 | 一种现场服务提供系统及方法 |
CN106856489A (zh) * | 2015-12-08 | 2017-06-16 | 阿里巴巴集团控股有限公司 | 一种分布式存储系统的服务节点切换方法和装置 |
EP3336704A1 (en) * | 2016-12-19 | 2018-06-20 | Alcatel Lucent | A method for selecting a root node in a cloud environment |
CN107171859A (zh) * | 2017-06-27 | 2017-09-15 | 联想(北京)有限公司 | 一种编码方法、解码方法及服务器、终端设备 |
CN109254876A (zh) * | 2018-09-11 | 2019-01-22 | 郑州云海信息技术有限公司 | 云计算系统中数据库的管理方法和装置 |
CN109510775A (zh) * | 2018-11-12 | 2019-03-22 | 网宿科技股份有限公司 | 定向流量的调度方法、鉴权装置、网络设备及存储介质 |
CN110162424A (zh) * | 2019-05-23 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 故障处理方法、系统、装置及存储介质 |
CN110737560A (zh) * | 2019-10-22 | 2020-01-31 | 北京百度网讯科技有限公司 | 一种服务状态检测方法、装置、电子设备和介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230147295A1 (en) * | 2021-11-05 | 2023-05-11 | Salesforce.Com, Inc. | Mechanisms for grouping nodes |
CN114205260A (zh) * | 2021-11-08 | 2022-03-18 | 南方电网深圳数字电网研究院有限公司 | 基于go语言的tcp连接探活方法及装置 |
CN115002114A (zh) * | 2022-05-27 | 2022-09-02 | 北京百度网讯科技有限公司 | 节点处理方法、装置、电子设备、存储介质及服务器 |
CN115002114B (zh) * | 2022-05-27 | 2024-03-19 | 北京百度网讯科技有限公司 | 节点处理方法、装置、电子设备、存储介质及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN111770154B (zh) | 2023-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10078563B2 (en) | Preventing split-brain scenario in a high-availability cluster | |
US10652119B2 (en) | Automatic recovery engine with continuous recovery state machine and remote workflows | |
CN111753997B (zh) | 分布式训练方法、系统、设备及存储介质 | |
CN111770154A (zh) | 服务检测方法、装置、设备以及存储介质 | |
US8898520B1 (en) | Method of assessing restart approach to minimize recovery time | |
US20210092158A1 (en) | Method, apparatus, device, terminal, and medium for defending against attacking behavior | |
CN111683139B (zh) | 用于均衡负载的方法和装置 | |
US9742676B2 (en) | Highly available servers | |
CN102082800A (zh) | 一种用户请求处理的方法和服务器 | |
US20210218824A1 (en) | Method and device for processing mini program data | |
CN111865720B (zh) | 用于处理请求的方法、装置、设备以及存储介质 | |
WO2022199204A1 (zh) | 用于确定资源的方法和装置 | |
CN110958250B (zh) | 一种端口监控方法、装置和电子设备 | |
CN112540914A (zh) | 单元测试的执行方法、执行装置、服务器和存储介质 | |
CN110995504B (zh) | 微服务节点异常处理方法、装置及系统 | |
CN111625195A (zh) | 用于服务器扩容的方法及装置 | |
CN111966471B (zh) | 访问方法、装置、电子设备及计算机存储介质 | |
CN110554918A (zh) | 限流方法、装置、电子设备和计算机可读存储介质 | |
US10601954B2 (en) | Sandboxing requests for web services | |
CN110659184B (zh) | 健康状态检查方法、装置及系统 | |
CN112069137A (zh) | 生成信息的方法、装置、电子设备及计算机可读存储介质 | |
US11381665B2 (en) | Tracking client sessions in publish and subscribe systems using a shared repository | |
CN111598571A (zh) | 区块链的事务处理方法、装置、设备和存储介质 | |
CN110750313B (zh) | 一种中间件的热加载方法、装置、电子设备及存储介质 | |
US9608914B2 (en) | Information processing apparatus and information processing method |
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 |