CN118055043A - 健康状态检查方法、装置、电子设备及存储介质 - Google Patents
健康状态检查方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN118055043A CN118055043A CN202410307506.0A CN202410307506A CN118055043A CN 118055043 A CN118055043 A CN 118055043A CN 202410307506 A CN202410307506 A CN 202410307506A CN 118055043 A CN118055043 A CN 118055043A
- Authority
- CN
- China
- Prior art keywords
- service node
- state
- health
- checking
- service
- 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.)
- Pending
Links
- 230000036541 health Effects 0.000 title claims abstract description 224
- 238000000034 method Methods 0.000 title claims abstract description 80
- 230000003862 health status Effects 0.000 claims abstract description 78
- 238000011084 recovery Methods 0.000 claims abstract description 78
- 238000001514 detection method Methods 0.000 claims abstract description 23
- 230000004044 response Effects 0.000 claims description 50
- 238000007689 inspection Methods 0.000 claims description 36
- 238000004891 communication Methods 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000002452 interceptive effect Effects 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 11
- 239000000523 sample Substances 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- 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/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
-
- 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/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/1034—Reaction to server failures by a load balancer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种健康状态检查方法、装置、电子设备及存储介质。所述方法包括:采用被动健康检查方式,检查服务节点的第一健康状态;在所述第一健康状态指示所述服务节点处于故障状态的情况下,从服务节点列表中删除所述服务节点;基于主动健康检查方式,检查所述服务节点的第二健康状态;在所述第二健康状态指示所述服务节点处于故障恢复状态的情况下,将所述服务节点添加至所述服务节点列表中。本申请可以提高故障检测的准确率,避免干扰服务节点的正常工作,同时可以及时检测出故障恢复的服务节点。
Description
技术领域
本申请涉及负载均衡技术领域,特别是涉及一种健康状态检查方法、装置、电子设备及存储介质。
背景技术
网络负载均衡器(Load Balancer)是一种网络软件设备,其可以接收用户的请求,并按照一定的调度算法策略,把用户的请求转发到不同的后端服务器节点上。通过使用负载均衡器,系统可以在不同的服务器上分散负载,从而降低单个服务器的压力、减少它们的故障风险并提高服务的响应速度。
健康检查是负载均衡器的重要功能之一,其目标是及时发现并剔除异常的后端服务节点,保证用户的请求不被转发到故障的后端服务节点上。目前的服务节点健康检查通常是采用主动健康检查方法,其是按照一定的时间间隔主动向后端服务节点发送探测请求,并根据响应结果判断后端服务节点是否正常运行。而探测请求一般比较简单,通常和真实业务流量在请求格式、网络路径上存在很大差异,可能导致探测结果不准确。需要周期性的频繁发送到后端服务节点,在一定程度上会干扰后端服务节点正常的工作,且不能及时检测出故障恢复的服务节点。
发明内容
本申请实施例的目的在于提供一种健康状态检查方法、装置、电子设备及存储介质,以达到提高故障服务节点的检测准确率,同时,能够及时检测出故障恢复的服务节点的目的。具体技术方案如下:
在本申请实施的第一方面,首先提供了一种健康状态检查方法,包括:
采用被动健康检查方式,检查服务节点的第一健康状态;
在所述第一健康状态指示所述服务节点处于故障状态的情况下,从服务节点列表中删除所述服务节点;
基于主动健康检查方式,检查所述服务节点的第二健康状态;
在所述第二健康状态指示所述服务节点处于故障恢复状态的情况下,将所述服务节点添加至所述服务节点列表中。
在本申请实施的第二方面,提供了一种健康状态检查装置,包括:
第一状态检查模块,用于采用被动健康检查方式,检查服务节点的第一健康状态;
服务节点删除模块,用于在所述第一健康状态指示所述服务节点处于故障状态的情况下,从服务节点列表中删除所述服务节点;
第二状态检查模块,用于基于主动健康检查方式,检查所述服务节点的第二健康状态;
服务节点添加模块,用于在所述第二健康状态指示所述服务节点处于故障恢复状态的情况下,将所述服务节点添加至所述服务节点列表中。
在本申请实施的又一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的健康状态检查方法。
在本申请实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的健康状态检查方法。
在本申请实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的健康状态检查方法。
本申请实施例提供的方案,通过采用被动健康检查方式,检查服务节点的第一健康状态。在第一健康状态指示服务节点处于故障状态的情况下,从服务节点列表中删除服务节点。基于主动健康检查方式,检查服务节点的第二健康状态。在第二健康状态指示服务节点处于故障恢复状态的情况下,将服务节点添加至服务节点列表中。本申请实施例通过采用被动健康检查方式检查服务节点是否出现故障,可以避免出现和真实业务流量在请求格式、网络路径上存在的差异,能够提高故障节点检测的准确率。同时可以避免频繁向服务节点发送探测请求的问题,因此,能够避免干扰服务节点正常的工作。而且,采用主动健康检查方式对故障服务节点进行故障恢复检查,可以达到及时检测故障恢复的服务节点的目的,可以确保故障恢复的服务节点及时应用。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种健康状态检查方法的步骤流程图;
图2为本申请实施例提供的另一种健康状态检查方法的步骤流程图;
图3为本申请实施例提供的一种被动健康检查模块的示意图;
图4为本申请实施例提供的一种状态标识添加方法的步骤流程图;
图5为本申请实施例提供的又一种健康状态检查方法的步骤流程图;
图6为本申请实施例提供的一种主动健康检查程序的示意图;
图7为本申请实施例提供的再一种健康状态检查方法的步骤流程图;
图8为本申请实施例提供的一种状态标识删除方法的步骤流程图;
图9为本申请实施例提供的一种连接信息缓存方法的步骤流程图;
图10为本申请实施例提供的一种组合健康检查实体关系的示意图;
图11为本申请实施例提供的一种健康状态检查装置的结构示意图;
图12为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
图1为本申请实施例提供的一种健康状态检查方法的步骤流程图,如图1所示,该健康状态检查方法可以包括:步骤101、步骤102、步骤103和步骤104。
步骤101:采用被动健康检查方式,检查服务节点的第一健康状态。
本申请实施例可以应用于采用被动健康检查方式和主动健康检查方式分别进行服务节点故障检查和故障服务节点恢复检查的场景中。
被动健康检查方式在负载均衡器内部实现,它是通过负载均衡器连接的状态信息,在用户请求和响应转发过程中探测后端服务节点的可用性,并在后端服务节点不可用时将其从负载均衡器的服务节点列表中摘除。
在具体实现中,可以通过采用被动健康检查方式检查服务节点的第一健康状态。可以理解地,被动健康检查方式是针对可用服务节点(即未发生故障的服务节点)进行的健康状态检查。在具体实现中,在负载均衡器内预先设置有被动健康检查模块,通过被动健康检查模块获取服务节点针对用户请求的响应结果,以此确定服务节点的健康状态。对于该实现过程将在下述实施例中结合图2进行详细描述,本实施例在此不再加以赘述。
在采用被动健康检查方式检查出服务节点的第一健康状态之后,执行步骤102。
步骤102:在所述第一健康状态指示所述服务节点处于故障状态的情况下,从服务节点列表中删除所述服务节点。
服务节点列表是指负载均衡器内的用于作为负载均衡器进行用户请求转发的依据,即在服务节点存在于服务节点列表中时,则表示可以将用户请求转发给该服务节点。
在采用被动健康检查方式检查出服务节点的第一健康状态之后,可以根据第一健康状态确定服务节点是否出现故障。
若第一健康状态指示服务节点未出现故障,则继续采用被动健康检查方式对服务节点进行健康检查。
若第一健康状态指示服务节点处于故障状态时,则可以从服务节点列表中删除服务节点。在从服务节点列表中删除故障服务节点之后,负载均衡器后续接收到的用户请求将不会被转发给该故障服务节点。
在从服务节点列表中删除故障的服务节点之后,执行步骤103。
步骤103:基于主动健康检查方式,检查所述服务节点的第二健康状态。
在本示例中,主动健康检查方式是指用于对故障的服务节点进行故障恢复检查的方式,主动健康检查方式通常是按照一定的时间间隔主动向后端服务节点中出现故障的服务节点发送探测请求,以检查服务节点是否正常运行。
在从服务节点列表中删除故障的服务节点之后,可以基于主动健康检查方式,对故障的服务节点进行健康状态的检查,即检查故障的服务节点是否恢复正常。
在具体实现中,可以预先设置主动健康检查程序,以对故障的服务节点进行故障恢复检查。具体地,可以由主动健康检查程序根据业务配置表中的禁用状态标识,确定待进行故障恢复检查的服务节点,并对该服务节点进行故障恢复检查。对于主动健康检查的实现过程将在下述实施例中结合图5进行详细描述,本实施例在此不再加以赘述。
在基于主动健康检查方式检查得到服务节点的第二健康状态之后,执行步骤104。
步骤104:在所述第二健康状态指示所述服务节点处于故障恢复状态的情况下,将所述服务节点添加至所述服务节点列表中。
在第二健康状态指示故障的服务节点仍处于故障状态时,则可以按照设定检查周期对该服务节点继续进行故障恢复检查。
在第二健康状态指示故障的服务节点处于故障恢复状态时,则可以将服务节点添加至服务节点列表中,即在负载均衡器进行后续用户请求分配时,可以分配至该故障恢复的服务节点。
本申请实施例通过采用被动健康检查方式检查服务节点是否出现故障,并采用主动健康检查方式对故障服务节点进行故障恢复检查,从而可以达到及时检测故障服务节点及故障恢复的服务节点的目的,可以确保故障恢复的服务节点及时应用。
接下来,结合图2对于被动健康检查的实现过程进行详细描述。参照图2,示出了本申请实施例提供的另一种健康状态检查方法的步骤流程图。如图2所示,该健康状态检查方法可以包括:步骤201和步骤202。
步骤201:调用预先配置的被动健康检查模块,探测网络负载均衡器与所述服务节点在进行用户请求消息和响应消息转发过程中的连接状态信息。
在本申请实施例中,被动健康检查模块可以为负载均衡器内的一个虚拟模块,被动健康检查模块可以包括:后端节点可用性检查子模块和业务更新子模块。如图3所示,被动健康检查模块30包括:后端节点可用性检查子模块31和业务更新子模块32。
在具体实现中,在采用被动健康检查方式进行服务节点故障检测时,可以调用被动健康检查模块探测网络负载均衡器与服务节点在进行用户请求消息和响应消息转发过程中的连接状态信息,即探测网络负载均衡器与服务节点之间的连接状态信息。具体地,可以通过后端节点可用性检查子模块31实时探测网络负载均衡器与服务节点在进行用户请求消息和响应消息转发过程中的连接状态信息。
在调用预先配置的被动健康检查模块,探测到网络负载均衡器与服务节点在进行用户请求消息和响应消息转发过程中的连接状态信息之后,执行步骤202。
步骤202:根据所述连接状态信息,确定所述服务节点的第一健康状态。
在调用预先配置的被动健康检查模块,探测到网络负载均衡器与服务节点在进行用户请求消息和响应消息转发过程中的连接状态信息之后,则可以根据网络负载均衡器与服务节点之间的连接状态信息,确定服务节点的第一健康状态。即后端节点可用性检查子模块可以根据连接状态信息判断出服务节点的第一健康状态。具体地,指示服务节点处于故障状态的连接状态信息可以至少包括以下几种:
1、在所述连接状态信息指示所述网络负载均衡器的TCP连接由SYN-RECV状态或SYN-SENT状态转换为关闭状态的情况下,确定所述服务节点的第一健康状态为故障状态。
在本实施例中,TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
SYN_RECV是指网络负载均衡器被动打开后,接收到了服务节点的SYN并且发送了ACK时的状态。
SYN-SENT状态是指TCP连接发起方(即网络负载均衡器)第一次发给接受方(即服务节点)时设置的状态。
在连接状态信息指示网络负载均衡器的TCP连接由SYN-RECV状态或SYN-SENT状态转换为关闭状态的情况下,则可以确定服务节点的第一健康状态为故障状态。
2、在所述连接状态信息指示所述网络负载均衡器的TCP连接在SYN-RECV状态或SYN-SENT状态下超时的情况下,确定所述服务节点的第一健康状态为故障状态。
在连接状态信息指示网络负载均衡器的TCP连接在SYN-RECV状态或SYN-SENT状态下超时的情况下,则可以确定服务节点的第一健康状态为故障状态。
3、在所述连接状态信息指示所述网络负载均衡器的TCP连接收到所述服务节点发送的RST包的情况下,确定所述服务节点的第一健康状态为故障状态。
RST表示重置连接、复位连接,RST包用于指示强制关闭TCP连接。
在连接状态信息指示网络负载均衡器的TCP连接收到服务节点发送的RST包的情况下,则可以确定服务节点的第一健康状态为故障状态
4、在所述连接状态信息指示所述网络负载均衡器的UDP连接在指定时间内未收到所述服务节点的响应的情况下,确定所述服务节点的第一健康状态为故障状态。
UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
在连接状态信息指示网络负载均衡器的UDP连接在指定时间(可自定义)内未收到服务节点的响应的情况下,则可以确定服务节点的第一健康状态为故障状态。
5、在所述连接状态信息指示所述网络负载均衡器的UDP连接收到所述服务节点的主机或端口不可达类型的ICMP报文的情况下,确定所述服务节点的第一健康状态为故障状态。
ICMP(Internet Control Message Protocol,网络控制报文协议)允许主机或路由报告差错情况和提供有关异常情况。ICMP报文是作为IP层数据报的数据加上数据报的首部组成数据报文进行发送。
在连接状态信息指示网络负载均衡器的UDP连接收到服务节点的主机或端口不可达类型的ICMP报文的情况下,则可以确定服务节点的第一健康状态为故障状态。
6、在所述连接状态信息指示所述网络负载均衡器HTTP或HTTPS连接收到所述服务节点发送的错误响应码,或者未收到所述服务节点的响应的情况下,确定所述服务节点的第一健康状态为故障状态。
HTTP(Hypertext Transfer Protocol,超文本传输协议)和HTTPS(HypertextTransfer Protocol Secure,超文本传输安全协议)均是网络传输协议。
在连接状态信息指示网络负载均衡器HTTP或HTTPS连接收到服务节点发送的错误响应码,或者未收到服务节点的响应的情况下,则可以确定服务节点的第一健康状态为故障状态。其中,错误响应码可以为5XX响应码,如500(服务器内部错误)、502(错误网关)等。
本申请实施例通过采用被动健康检查方式检查服务节点是否出现故障,相较于主动健康检查的方式,可以避免频繁向服务节点发送探测请求,干扰服务节点正常的工作的问题,同时,可以达到及时检查出故障服务节点的目的。
在检查出服务节点故障之后,还可以修改服务节点的节点权重,以及服务节点的禁用状态标识。对于该实现过程可以结合图4进行如下详细描述。
参照图4,示出了本申请实施例提供的一种状态标识添加方法的步骤流程图。如图4所示,该状态标识添加方法可以包括:步骤401、步骤402和步骤403。
步骤401:在所述第一健康状态指示所述服务节点处于故障状态的情况下,保存预先配置的所述服务节点的节点权重。
在本申请实施例中,节点权重可以是由业务人员预先为服务节点配置的权重,具体地,业务人员可以根据服务节点的内存、用户请求承载量等信息,配置服务节点的节点权重。而对于节点权重的具体数值可以根据实际情况而定,本实施例对此不加以限制。
在通过被动健康检查方式检查得到的第一健康状态指示服务节点处于故障状态时,则可以保存预先配置的服务节点的节点权重。
在保存预先配置的服务节点的节点权重之后,执行步骤402。
步骤402:将所述服务节点的节点权重修改为0。
在保存预先配置的服务节点的节点权重之后,可以将服务节点的节点权重修改为0。在服务节点的节点权重为0时,则表示该服务节点不可用,禁止新的连接调度到该节点。
在将服务节点的节点权重修改为0之后,执行步骤403。
步骤403:响应于所述服务节点的节点权重修改为0,在业务配置表中为所述服务节点添加禁用状态标识。
业务配置表是负载均衡器的业务转发规则集合,业务配置表中每条信息至少包括如下几个属性:
1、业务ID,全局唯一的ID,用于区分不同的业务配置。
2、入口地址:业务对应的访问地址,由负载均衡器分配,可以是虚拟IP地址、URI、域名等。
3、健康检查方式:用于指定被动健康检查和主动健康检查的具体方式,例如,主动健康检查可以包括:如Ping/TCP/UDP/SSL/HTTP或HTTPS等检查方式,在业务配置表可以指定具体地健康检查方式,如指定TCP检查方式等。
在将服务节点的节点权重修改为0之后,可以响应于服务节点的节点权重修改为0,并在业务配置表中为服务节点添加禁用状态标识。在具体实现中,在服务节点故障时,可以在业务配置表中为故障服务节点添加Inhibited标识,该标识可以指示该服务节点的权重是被健康检查程序置0(而不是业务管理者主动置0);该标识可以为主动健康检查筛选需要探测节点的判断标准。
对于被动健康检查的过程可以如图3所示,后端节点可用性检测子模块31检查服务节点是否出现故障的情况,并将检查结果发送给业务更新子模块32。业务更新子模块32可以根据检查结果修改负载均衡器中相应服务节点的信息,即针对故障服务节点,可以将其节点权重修改为0,并在业务配置表中为其添加禁用状态标识。
本申请实施例被动健康检查模块修改故障服务节点的节点权重,并为其添加禁用状态标识,可以为主动健康检查提供筛选需要探测节点的判断标准,同时,可以指示负载均衡器及时发现故障服务节点,避免将用户请求分发给故障服务节点,导致用户请求未响应的情况出现。
接下来,结合图5对于主动健康检查的实现过程进行详细描述。参照图5,示出了本申请实施例提供的又一种健康状态检查方法的步骤流程图。如图5所示,该健康状态检查方法可以包括:步骤501和步骤502。
步骤501:调用主动健康检查程序根据所述业务配置表中的所述禁用状态标识,确定待进行故障恢复检查的服务节点。
在本申请实施例中,主动健康检查程序可以为一个独立的程序,该主动健康检查程序可以部署于负载均衡器所在设备上的程序,也可以部署于外部设备上。其可以通过进程通信或API(Application Programming Interface,应用程序编程接口)接口与负载均衡器进行数据交互。
在具体实现中,主动健康检查程序内可以包含三个模块,如图6所示,这三个模块分别为:输入模块61、健康检查任务处理模块62和业务更新模块63。
其中,输入模块61可以周期性的通过通信接口获取负载均衡器的业务配置表,然后根据后端服务节点的inhibited的标志过滤出需要探测的后端服务节点,构造健康检查任务表,最后对比当前正在运行的健康检查任务表,关停已经被删除的后端服务节点的健康检查任务、启动新加入节点的健康检查任务。
健康检查任务处理模块62可以执行健康检查任务表里的节点探测任务。探测方法由用户通过业务配置表传入,支持Ping/TCP/UDP/SSL/HTTP或HTTPS等主动探测方法。
业务更新模块63可以用于在探测到故障节点恢复后,通知负载均衡器将故障节点的权重恢复为原有值,并清除inhibited标志。不同于被动健康检查能直接修改这两个数据,主动健康检查需要通过通信机制来实现。
在通过通信接口获取负载均衡器的业务配置表之后,主动健康检查程序可以根据业务配置表各服务节点是否有禁用状态标识,以确定待进行故障恢复检查的服务节点。例如,在业务配置表中包含四个服务节点,分别为:服务节点1、服务节点2、服务节点3和服务节点4,其中,在业务配置表中,服务节点2和服务节点3均添加有禁用状态标识,此时,可以将服务节点2和服务节点3作为待进行故障恢复检查的服务节点等。
具体实现过程可以如图6所示,输入模块61获取到业务配置表之后,可以构造健康检查任务表,并与已有健康检查任务表比对,启动新的和关停过期的健康检查任务。即对于已经故障恢复的服务节点可以停止健康检查任务,对于新的故障服务节点开启健康检查任务。
在调用主动健康检查程序根据业务配置表中的禁用状态标识确定出待进行故障恢复检查的服务节点之后,执行步骤502。
步骤502:基于设定检查周期,检查所述待进行故障恢复检查的服务节点的第二健康状态。
设定检查周期是指预先设置的用于对故障服务节点进行故障恢复检查的周期,在本示例中,设定检查周期可以为3秒、5秒等等。对于设定检查周期的具体数值可以根据业务需求而定,本实施例对此不加以限制。
在调用主动健康检查程序根据业务配置表中的禁用状态标识确定出待进行故障恢复检查的服务节点之后,可以基于设定检查周期,检查待进行故障恢复检查的服务节点的第二健康状态。即每间隔设定检查周期,对故障的服务节点进行一次健康状态检查,以确定服务节点是否处于故障恢复状态。如图6所示,在确定健康检查任务之后,可以通过健康检查任务处理模块62对故障服务节点执行故障恢复检查。
在具体实现中,还可以预先在业务配置表指定主动健康检查的方法,并根据该方法对服务节点进行故障恢复检查。对于该实现过程可以结合图7进行如下详细描述。
参照图7,示出了本申请实施例提供的再一种健康状态检查方法的步骤流程图。如图7所示,该健康状态检查方法可以包括:步骤701、步骤702和步骤703。
步骤701:基于所述业务配置表,确定用于健康状态检查的目标检查方式,所述目标检查方式为所述主动健康检查方式包含的多种检查方式中的任一种检查方式。
在本申请实施例中,目标检查方式是指预先在业务配置表内配置的用于进行主动健康检查的方式,如Ping/TCP/UDP/SSL/HTTP或HTTPS等检查方式。
在通过通信接口获取负载均衡器的业务配置表之后,可以解析业务配置表,以获取业务配置表中预先配置的用于健康状态检查的目标检查方式。
可以理解地,业务配置表中的目标检查方式可以是由业务人员预先配置的,也可以是由管理工具预先配置的。对于业务配置表中的进行主动健康检查的具体方式的配置方式可以根据业务需求而定,本实施例对此不加以限制。
在基于业务配置表确定用于健康状态检查的目标检查方式之后,执行步骤702。
步骤702:基于所述目标检查方式,按照所述设定检查周期向所述待进行故障恢复检查的服务节点发送探测请求。
在基于业务配置表获取目标检查方式之后,可以基于目标检查方式,按照设定检查周期检查向待进行故障恢复检查的服务节点发送探测请求。具体地,探测请求可以为定期发送的心跳信号,以等待待进行故障恢复检查的服务节点是否返回响应信号。
在基于目标检查方式按照设定检查周期向待进行故障恢复检查的服务节点发送探测请求之后,执行步骤703。
步骤703:基于所述待进行故障恢复检查的服务节点对所述探测请求的响应结果,得到所述服务节点的第二健康状态。
在基于目标检查方式按照设定检查周期向待进行故障恢复检查的服务节点发送探测请求之后,则可以基于待进行故障恢复检查的服务节点对探测请求的响应结果,得到服务节点的第二健康状态。例如,在预设时间内未接收到待进行故障恢复检查的服务节点返回的响应结果,则表示该待进行故障恢复检查的服务节点仍处于故障状态。而在预设时间内接收到待进行故障恢复检查的服务节点返回的响应消息,则表示该待进行故障恢复检查的服务节点处于正常状态等。
本申请实施例通过在业务配置表中配置进行健康状态检查的检查方式对故障服务节点进行故障恢复检查,可以丰富主动健康检查方式的多样性。
在本申请实施例中,在故障服务节点恢复之后,则可以由主动健康检查程序将故障恢复的服务节点告知负载均衡器,以由负载均衡器进行节点权重和状态标识的调整。对于该实现过程可以结合图8进行如下详细描述。
参照图8,示出了本申请实施例提供的一种状态标识删除方法的步骤流程图。如图8所示,该状态标识删除方法可以包括:步骤801和步骤802。
步骤801:在所述第二健康状态指示所述服务节点处于故障恢复状态的情况下,将所述服务节点的节点权重修改为初始值。
在本申请实施例中,在第二健康状态指示服务节点处于故障恢复状态时,则可以由主动健康检查程序将将故障恢复的服务节点通知给负载均衡器,以由负载均衡器将该故障恢复的服务节点的节点权重修改为初始值。
在将故障恢复的服务节点的节点权重修改为初始值之后,执行步骤802。
步骤802:响应于所述服务节点的节点权重修改为初始值,在所述业务配置表中删除所述服务节点的禁用状态标识。
在将故障恢复的服务节点的节点权重修改为初始值之后,可以响应于服务节点的节点权重修改为初始值,在业务配置表中删除服务节点的禁用状态标识。
本申请实施例通过修改故障恢复的服务节点的节点权重,可以使负载均衡器在后续进行请求转发时将用户请求转发至该故障恢复的服务节点。而通过删除业务配置表中故障恢复的服务节点的禁用状态标识,可以使主动健康检查程序关停对该故障恢复的服务节点的健康检查任务,避免频繁向故障恢复的服务节点发送探测请求干扰服务节点的正常工作。
在本申请实施例中,在负载均衡器内可以配置转发表,以存储负载均衡器正在进行的所有连接信息和转发状态。在具体实现中,负载均衡器可以自动维护转发表,即在每次新的用户请求开始处理时,则创建转发连接并初始化状态,用户请求处理过程中更新连接状态,用户请求处理结束后再自动删除对应的转发连接。对于连接信息和转发状态的存储过程可以结合图9进行如下详细描述。
参照图9,示出了本申请实施例提供的一种连接信息缓存方法的步骤流程图。如图9所示,该连接信息缓存方法可以包括:步骤901、步骤902、步骤903和步骤904。
步骤901:获取目标用户请求,及业务配置表中配置的所述目标用户请求对应的用户地址、负载均衡器的虚拟服务入口地址和服务节点地址。
在本实施例中,负载均衡器可以获取目标用户请求,通过负载均衡器内的调度模块按照设定的调度算法选取处理目标用户请求的后端服务节点。并根据后端服务节点的节点权重选择出连接的服务节点,并在业务配置表中配置目标用户请求对应的用户地址、负载均衡器的虚拟服务入口地址和服务节点地址。
入口地址是用户请求访问的目标地址,也是负载均衡器提供的虚拟服务地址。用户访问该虚拟服务地址,负载均衡器把用户请求转发给后端真实的服务节点上。
入口地址和服务器节点地址并非是在调度用户请求后才创建的,而是在处理用户请求前已经由服务管理者预先配置好的,并允许服务管理者在负载均衡器工作过程中修改。
在获取到目标用户请求,以及业务配置表中配置的目标用户请求对应的用户地址、负载均衡器的虚拟服务入口地址和服务节点地址之后,执行步骤902。
步骤902:基于所述用户地址、所述虚拟服务入口地址和所述服务节点地址,创建转发连接信息。
在获取到目标用户请求,以及业务配置表中配置的目标用户请求对应的用户地址、虚拟服务入口地址和服务节点地址之后,可以基于用户地址、虚拟服务入口地址和服务节点地址,创建转发连接信息,即用户地址—虚拟服务入口地址—服务节点地址。
在基于用户地址、虚拟服务入口地址和服务节点地址创建转发连接信息之后,执行步骤903。
步骤903:在所述目标用户请求对应的数据传输过程中,获取所述转发连接信息对应的连接状态信息。
在基于用户地址、虚拟服务入口地址和服务节点地址创建转发连接信息之后,可以在目标用户请求对应的数据传输过程中,获取转发连接信息对应的连接状态信息,即连接状态信息是指该用户连接当前所处的状态。可以通过连接状态的变迁确定后端服务节点是否可用,例如,由SYN_SENT转到CLOSED/TIMEDOUT状态即说明该连接对应的后端服务节点故障。
在获取到转发连接信息对应的连接状态信息之后,执行步骤904。
步骤904:将所述转发连接信息和所述连接状态信息缓存至转发表。
在获取到转发连接信息对应的连接状态信息之后,则可以将转发连接信息和连接状态信息缓存至转发表。
当然,在连接关闭或者超时后,也可以从转发表中删除转发连接信息和连接状态信息。
本申请实施例通过将转发连接信息和连接状态信息缓存至转发表,可以使负载均衡器及时了解用户连接当前的状态,避免出现中途出现断接未及时处理的情况。
接下来,结合组合健康检查的实体关系对本申请实施例的上述技术方案进行如下描述。
参照图10,示出了本申请实施例提供的一种组合健康检查实体关系的示意图。如图10所示,在负载均衡器内设置有业务表,用户可以通过用户管理工具对业务表进行管理。业务表存储有负载均衡器的业务转发规则集合,业务表中的每条信息均具备如下几个属性:
业务ID:全局唯一的ID,用于区分不同业务配置;
入口地址:业务对应的访问地址,由负载均衡器分配,可以是虚拟IP地址、URI、域名等;
健康检查方式:用于指定被动健康检查和主动健康检查的具体检查方式;
后端节点列表:该业务关联的所有后端节点,每个后端节点至少具有地址、调度权重和Inhibited标志位三个属性。
被动健康检查模块可以检查后端服务节点是否出现故障。若某服务节点出现故障,则可以在业务表中修改该服务节点的状态。
主动健康检查程序可以读取业务表中服务节点的健康状态,并根据健康状态更新故障检查表,即针对新出现的故障服务节点,则可以添加至故障检查表中,并从故障检查表中删除故障恢复的服务节点。并周期性的对故障检查表中的故障服务节点进行故障恢复检查。同时,在检查出故障恢复的服务节点之后,则可以将故障恢复的服务节点告知负载均衡器,以由负载均衡器在业务表中更改服务节点的健康状态。
在负载均衡器内还设置有负载均衡调度模块,该负载均衡调度模块可以按照设定算法选取处理用户请求的后端服务节点。
在负载均衡器内设置有转发表,该转发表存储有负载均衡器正在进行中的所有连接信息和转发状态。
同时设置有负载均衡转发模块,该负载均衡转发模块查找转发表,然后根据查到的连接信息,将用户的请求数据发给后端服务节点,并将后端服务节点的响应转发回用户。在转发过程中,记录连接的状态信息,比如对于TCP四层负载均衡转发,转发表中记录的连接状态包括:SYN_RECV、SYN_SENT、ESTABLISHED、FINWAIT、CLOSEWAIT、TIMEWAIT等。其中,SYN_RECV是指网络负载均衡器被动打开后,接收到了服务节点的SYN并且发送了ACK时的状态。SYN-SENT是指TCP连接发起方(即网络负载均衡器)第一次发给接受方(即服务节点)时设置的状态。ESTABLISHED是指连接成功的状态。FINWAIT是指网络负载均衡器主动要求关闭TCP连接,并且主动发送fin以后,等待服务节点回复ACK时候的状态。CLOSEWAIT是指已经创建的连接等待关闭的状态。TIMEWAIT是指服务节点收到网络负载均衡器发送的fin并返回ACK包时的状态。
本申请实施例提供的健康状态检查方法,通过采用被动健康检查方式,检查服务节点的第一健康状态。在第一健康状态指示服务节点处于故障状态的情况下,从服务节点列表中删除服务节点。基于主动健康检查方式,检查服务节点的第二健康状态。在第二健康状态指示服务节点处于故障恢复状态的情况下,将服务节点添加至服务节点列表中。本申请实施例通过采用被动健康检查方式检查服务节点是否出现故障,并采用主动健康检查方式对故障服务节点进行故障恢复检查,从而可以达到及时检测故障服务节点及故障恢复的服务节点的目的,可以确保故障恢复的服务节点及时应用。
参照图11,示出了本申请实施例提供的一种健康状态检查装置的结构示意图,如图11所示,该健康状态检查装置1100可以包括以下模块:
第一状态检查模块1110,用于采用被动健康检查方式,检查服务节点的第一健康状态;
服务节点删除模块1120,用于在所述第一健康状态指示所述服务节点处于故障状态的情况下,从服务节点列表中删除所述服务节点;
第二状态检查模块1130,用于基于主动健康检查方式,检查所述服务节点的第二健康状态;
服务节点添加模块1140,用于在所述第二健康状态指示所述服务节点处于故障恢复状态的情况下,将所述服务节点添加至所述服务节点列表中。
可选地,所述第一状态检查模块包括:
响应结果获取单元,用于调用预先配置的被动健康检查模块,探测网络负载均衡器与所述服务节点在进行用户请求消息和响应消息转发过程中的连接状态信息;
第一状态确定单元,用于根据所述连接状态信息,确定所述服务节点的第一健康状态。
可选地,所述第一状态确定单元包括:
第一状态确定子单元,用于在所述连接状态信息指示所述网络负载均衡器的TCP连接由SYN-RECV状态或SYN-SENT状态转换为关闭状态的情况下,确定所述服务节点的第一健康状态为故障状态;
第二状态确定子单元,用于在所述连接状态信息指示所述网络负载均衡器的TCP连接在SYN-RECV状态或SYN-SENT状态下超时的情况下,确定所述服务节点的第一健康状态为故障状态;
第三状态确定子单元,用于在所述连接状态信息指示所述网络负载均衡器的TCP连接收到所述服务节点发送的RST包的情况下,确定所述服务节点的第一健康状态为故障状态;
第四状态确定子单元,用于在所述连接状态信息指示所述网络负载均衡器的UDP连接在指定时间内未收到所述服务节点的响应的情况下,确定所述服务节点的第一健康状态为故障状态;
第五状态确定子单元,用于在所述连接状态信息指示所述网络负载均衡器的UDP连接收到所述服务节点的主机或端口不可达类型的ICMP报文的情况下,确定所述服务节点的第一健康状态为故障状态;
第六状态确定子单元,用于在所述连接状态信息指示所述网络负载均衡器HTTP或HTTPS连接收到所述服务节点发送的错误响应码,或者未收到所述服务节点的响应的情况下,确定所述服务节点的第一健康状态为故障状态。
可选地,所述装置还包括:
节点权重保存模块,用于在所述第一健康状态指示所述服务节点处于故障状态的情况下,保存预先配置的所述服务节点的节点权重;
节点权重修改模块,用于将所述服务节点的节点权重修改为0;
状态标识添加模块,用于响应于所述服务节点的节点权重修改为0,在业务配置表中为所述服务节点添加禁用状态标识。
可选地,所述第二状态检查模块包括:
服务节点确定单元,用于调用主动健康检查程序根据所述业务配置表中的所述禁用状态标识,确定待进行故障恢复检查的服务节点;
第二状态检查单元,用于基于设定检查周期,检查所述待进行故障恢复检查的服务节点的第二健康状态。
可选地,所述第二状态检查单元包括:
目标检查方式确定子单元,用于基于所述业务配置表,确定用于健康状态检查的目标检查方式,所述目标检查方式为所述主动健康检查方式包含的多种检查方式中的任一种检查方式;
探测请求发送子单元,用于基于所述目标检查方式,按照所述设定检查周期向所述待进行故障恢复检查的服务节点发送探测请求;
第二健康状态获取子单元,用于基于所述待进行故障恢复检查的服务节点对所述探测请求的响应结果,得到所述服务节点的第二健康状态。
可选地,所述装置还包括:
初始值修改模块,用于在所述第二健康状态指示所述服务节点处于故障恢复状态的情况下,将所述服务节点的节点权重修改为初始值;
状态标识删除模块,用于响应于所述服务节点的节点权重修改为初始值,在所述业务配置表中删除所述服务节点的禁用状态标识。
可选地,所述装置还包括:
地址获取模块,用于获取目标用户请求,及业务配置表中配置的所述目标用户请求对应的用户地址、负载均衡器的虚拟服务入口地址和服务节点地址;
转发连接创建模块,用于基于所述用户地址、所述虚拟服务入口地址和所述服务节点地址,创建转发连接信息;
连接状态获取模块,用于在所述目标用户请求对应的数据传输过程中,获取所述转发连接信息对应的连接状态信息;
转发连接缓存模块,用于将所述转发连接信息和所述连接状态信息缓存至转发表。
本申请实施例提供的健康状态检查装置,通过采用被动健康检查方式,检查服务节点的第一健康状态。在第一健康状态指示服务节点处于故障状态的情况下,从服务节点列表中删除服务节点。基于主动健康检查方式,检查服务节点的第二健康状态。在第二健康状态指示服务节点处于故障恢复状态的情况下,将服务节点添加至服务节点列表中。本申请实施例通过采用被动健康检查方式检查服务节点是否出现故障,并采用主动健康检查方式对故障服务节点进行故障恢复检查,从而可以达到及时检测故障服务节点及故障恢复的服务节点的目的,可以确保故障恢复的服务节点及时应用。
本申请实施例还提供了一种电子设备,如图12所示,包括处理器1201、通信接口1202、存储器1203和通信总线1204,其中,处理器1201,通信接口1202,存储器1203通过通信总线1204完成相互间的通信,
存储器1203,用于存放计算机程序;
处理器1201,用于执行存储器1203上所存放的程序时,实现如下步骤:
采用被动健康检查方式,检查服务节点的第一健康状态;
在所述第一健康状态指示所述服务节点处于故障状态的情况下,从服务节点列表中删除所述服务节点;
基于主动健康检查方式,检查所述服务节点的第二健康状态;
在所述第二健康状态指示所述服务节点处于故障恢复状态的情况下,将所述服务节点添加至所述服务节点列表中。
可选地,所述采用被动健康检查方式,检查服务节点的第一健康状态,包括:
调用预先配置的被动健康检查模块,探测网络负载均衡器与所述服务节点在进行用户请求消息和响应消息转发过程中的连接状态信息;
根据所述连接状态信息,确定所述服务节点的第一健康状态。
可选地,所述根据所述连接状态信息,确定所述服务节点的第一健康状态,包括:
在所述连接状态信息指示所述网络负载均衡器的TCP连接由SYN-RECV状态或SYN-SENT状态转换为关闭状态的情况下,确定所述服务节点的第一健康状态为故障状态;
在所述连接状态信息指示所述网络负载均衡器的TCP连接在SYN-RECV状态或SYN-SENT状态下超时的情况下,确定所述服务节点的第一健康状态为故障状态;
在所述连接状态信息指示所述网络负载均衡器的TCP连接收到所述服务节点发送的RST包的情况下,确定所述服务节点的第一健康状态为故障状态;
在所述连接状态信息指示所述网络负载均衡器的UDP连接在指定时间内未收到所述服务节点的响应的情况下,确定所述服务节点的第一健康状态为故障状态;
在所述连接状态信息指示所述网络负载均衡器的UDP连接收到所述服务节点的主机或端口不可达类型的ICMP报文的情况下,确定所述服务节点的第一健康状态为故障状态;
在所述连接状态信息指示所述网络负载均衡器HTTP或HTTPS连接收到所述服务节点发送的错误响应码,或者未收到所述服务节点的响应的情况下,确定所述服务节点的第一健康状态为故障状态。
可选地,在所述采用被动健康检查方式,检查服务节点的第一健康状态之后,还包括:
在所述第一健康状态指示所述服务节点处于故障状态的情况下,保存预先配置的所述服务节点的节点权重;
将所述服务节点的节点权重修改为0;
响应于所述服务节点的节点权重修改为0,在业务配置表中为所述服务节点添加禁用状态标识。
可选地,所述基于主动健康检查方式,检查所述服务节点的第二健康状态,包括:
调用主动健康检查程序根据所述业务配置表中的所述禁用状态标识,确定待进行故障恢复检查的服务节点;
基于设定检查周期,检查所述待进行故障恢复检查的服务节点的第二健康状态。
可选地,所述基于设定检查周期,检查所述待进行故障恢复检查的服务节点的第二健康状态,包括:
基于所述业务配置表,确定用于健康状态检查的目标检查方式,所述目标检查方式为所述主动健康检查方式包含的多种检查方式中的任一种检查方式;
基于所述目标检查方式,按照所述设定检查周期向所述待进行故障恢复检查的服务节点发送探测请求;
基于所述待进行故障恢复检查的服务节点对所述探测请求的响应结果,得到所述服务节点的第二健康状态。
可选地,在所述基于主动健康检查方式,检查所述服务节点的第二健康状态之后,还包括:
在所述第二健康状态指示所述服务节点处于故障恢复状态的情况下,将所述服务节点的节点权重修改为初始值;
响应于所述服务节点的节点权重修改为初始值,在所述业务配置表中删除所述服务节点的禁用状态标识。
可选地,在所述将所述服务节点添加至所述服务节点列表中之后,还包括:
获取目标用户请求,及业务配置表中配置的所述目标用户请求对应的入口地址和服务节点地址;
基于所述入口地址、所述服务节点地址和负载均衡器的地址,创建转发连接信息;
在所述目标用户请求对应的数据传输过程中,获取所述转发连接信息对应的连接状态信息;
将所述转发连接信息和所述连接状态信息缓存至转发表。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的健康状态检查方法。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的健康状态检查方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (11)
1.一种健康状态检查方法,其特征在于,包括:
采用被动健康检查方式,检查服务节点的第一健康状态;
在所述第一健康状态指示所述服务节点处于故障状态的情况下,从服务节点列表中删除所述服务节点;
基于主动健康检查方式,检查所述服务节点的第二健康状态;
在所述第二健康状态指示所述服务节点处于故障恢复状态的情况下,将所述服务节点添加至所述服务节点列表中。
2.根据权利要求1所述的方法,其特征在于,所述采用被动健康检查方式,检查服务节点的第一健康状态,包括:
调用预先配置的被动健康检查模块,探测网络负载均衡器与所述服务节点在进行用户请求消息和响应消息转发过程中的连接状态信息;
根据所述连接状态信息,确定所述服务节点的第一健康状态。
3.根据权利要求2所述的方法,其特征在于,所述根据所述连接状态信息,确定所述服务节点的第一健康状态,包括:
在所述连接状态信息指示所述网络负载均衡器的TCP连接由SYN-RECV状态或SYN-SENT状态转换为关闭状态的情况下,确定所述服务节点的第一健康状态为故障状态;
在所述连接状态信息指示所述网络负载均衡器的TCP连接在SYN-RECV状态或SYN-SENT状态下超时的情况下,确定所述服务节点的第一健康状态为故障状态;
在所述连接状态信息指示所述网络负载均衡器的TCP连接收到所述服务节点发送的RST包的情况下,确定所述服务节点的第一健康状态为故障状态;
在所述连接状态信息指示所述网络负载均衡器的UDP连接在指定时间内未收到所述服务节点的响应的情况下,确定所述服务节点的第一健康状态为故障状态;
在所述连接状态信息指示所述网络负载均衡器的UDP连接收到所述服务节点的主机或端口不可达类型的ICMP报文的情况下,确定所述服务节点的第一健康状态为故障状态;
在所述连接状态信息指示所述网络负载均衡器HTTP或HTTPS连接收到所述服务节点发送的错误响应码,或者未收到所述服务节点的响应的情况下,确定所述服务节点的第一健康状态为故障状态。
4.根据权利要求1所述的方法,其特征在于,在所述采用被动健康检查方式,检查服务节点的第一健康状态之后,还包括:
在所述第一健康状态指示所述服务节点处于故障状态的情况下,保存预先配置的所述服务节点的节点权重;
将所述服务节点的节点权重修改为0;
响应于所述服务节点的节点权重修改为0,在业务配置表中为所述服务节点添加禁用状态标识。
5.根据权利要求4所述的方法,其特征在于,所述基于主动健康检查方式,检查所述服务节点的第二健康状态,包括:
调用主动健康检查程序根据所述业务配置表中的所述禁用状态标识,确定待进行故障恢复检查的服务节点;
基于设定检查周期,检查所述待进行故障恢复检查的服务节点的第二健康状态。
6.根据权利要求5所述的方法,其特征在于,所述基于设定检查周期,检查所述待进行故障恢复检查的服务节点的第二健康状态,包括:
基于所述业务配置表,确定用于健康状态检查的目标检查方式,所述目标检查方式为所述主动健康检查方式包含的多种检查方式中的任一种检查方式;
基于所述目标检查方式,按照所述设定检查周期向所述待进行故障恢复检查的服务节点发送探测请求;
基于所述待进行故障恢复检查的服务节点对所述探测请求的响应结果,得到所述服务节点的第二健康状态。
7.根据权利要求4所述的方法,其特征在于,在所述基于主动健康检查方式,检查所述服务节点的第二健康状态之后,还包括:
在所述第二健康状态指示所述服务节点处于故障恢复状态的情况下,将所述服务节点的节点权重修改为初始值;
响应于所述服务节点的节点权重修改为初始值,在所述业务配置表中删除所述服务节点的禁用状态标识。
8.根据权利要求1所述的方法,其特征在于,在所述将所述服务节点添加至所述服务节点列表中之后,还包括:
获取目标用户请求,及业务配置表中配置的所述目标用户请求对应的用户地址、负载均衡器的虚拟服务入口地址和服务节点地址;
基于所述用户地址、所述虚拟服务入口地址和所述服务节点地址,创建转发连接信息;
在所述目标用户请求对应的数据传输过程中,获取所述转发连接信息对应的连接状态信息;
将所述转发连接信息和所述连接状态信息缓存至转发表。
9.一种健康状态检查装置,其特征在于,包括:
第一状态检查模块,用于采用被动健康检查方式,检查服务节点的第一健康状态;
服务节点删除模块,用于在所述第一健康状态指示所述服务节点处于故障状态的情况下,从服务节点列表中删除所述服务节点;
第二状态检查模块,用于基于主动健康检查方式,检查所述服务节点的第二健康状态;
服务节点添加模块,用于在所述第二健康状态指示所述服务节点处于故障恢复状态的情况下,将所述服务节点添加至所述服务节点列表中。
10.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-9中任一所述的方法步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410307506.0A CN118055043A (zh) | 2024-03-18 | 2024-03-18 | 健康状态检查方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410307506.0A CN118055043A (zh) | 2024-03-18 | 2024-03-18 | 健康状态检查方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118055043A true CN118055043A (zh) | 2024-05-17 |
Family
ID=91051789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410307506.0A Pending CN118055043A (zh) | 2024-03-18 | 2024-03-18 | 健康状态检查方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118055043A (zh) |
-
2024
- 2024-03-18 CN CN202410307506.0A patent/CN118055043A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10917322B2 (en) | Network traffic tracking using encapsulation protocol | |
US7991877B2 (en) | Rogue router hunter | |
US7990847B1 (en) | Method and system for managing servers in a server cluster | |
US7987266B2 (en) | Failover in proxy server networks | |
US8625448B2 (en) | Method and system for validating network traffic classification in a blade server | |
US7453865B2 (en) | Communication channels in a storage network | |
US20110093612A1 (en) | Device, method and computer readable medium for bgp route monitoring | |
US10033602B1 (en) | Network health management using metrics from encapsulation protocol endpoints | |
US20110199906A1 (en) | Methods, systems, and computer readable media for performing diameter answer message-based network management at a diameter signaling router (dsr) | |
CN111953770B (zh) | 一种路由转发方法、装置、路由设备及可读存储介质 | |
US20110072129A1 (en) | Icmp proxy device | |
CN109586959B (zh) | 一种故障检测的方法及装置 | |
US11888745B2 (en) | Load balancer metadata forwarding on secure connections | |
US10320680B1 (en) | Load balancer that avoids short circuits | |
US20150256622A1 (en) | Connection management device, communication system, connection management method, and computer program product | |
CN112217859A (zh) | 负载均衡方法、系统、移动终端及存储介质 | |
US10411981B2 (en) | Method and system for detecting client causing network problem using client route control system | |
CN104348661B (zh) | 网络失效数据上传、接收方法和设备及记录方法和系统 | |
EP3151520B1 (en) | Quarantining an internet protocol address | |
US8572245B1 (en) | Using the TCP window size for identifying packets and debugging | |
CN105939216B (zh) | 报文传输的方法及装置 | |
CN116781564B (zh) | 一种容器云平台的网络检测方法、系统、介质和电子设备 | |
CN118055043A (zh) | 健康状态检查方法、装置、电子设备及存储介质 | |
CN109302390A (zh) | 一种漏洞检测方法和装置 | |
US10313254B1 (en) | Network management interface for a network element with network-wide information |
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 |