CN114928654A - 节点状态监测方法、装置、设备、存储介质和程序产品 - Google Patents

节点状态监测方法、装置、设备、存储介质和程序产品 Download PDF

Info

Publication number
CN114928654A
CN114928654A CN202210633271.5A CN202210633271A CN114928654A CN 114928654 A CN114928654 A CN 114928654A CN 202210633271 A CN202210633271 A CN 202210633271A CN 114928654 A CN114928654 A CN 114928654A
Authority
CN
China
Prior art keywords
node
service node
service
network
normal
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
Application number
CN202210633271.5A
Other languages
English (en)
Inventor
顾欣
王鹏培
凌晨
刘成锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202210633271.5A priority Critical patent/CN114928654A/zh
Publication of CN114928654A publication Critical patent/CN114928654A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本申请涉及一种节点状态监测方法、装置、设备、存储介质和程序产品。本申请涉及云计算技术领域,所述方法包括:接收服务消费方发送的网络请求,其中,网络请求包括业务节点地址;响应于网络请求,向业务节点地址对应的业务节点发送网络请求;接收业务节点发送的网络响应,其中,网络响应是业务节点根据网络请求发送的响应;根据在第一预设时长内接收到的业务节点发送的正常的网络响应的次数,确定业务节点的节点状态,其中,正常的网络响应用于指示业务节点的状态码正常。由于本申请实施例能够根据在第一预设时长内接收到的业务节点发送的正常的网络响应的次数,确定业务节点的节点状态,以确定业务节点是否能正确的提供服务。

Description

节点状态监测方法、装置、设备、存储介质和程序产品
技术领域
本申请涉及云计算技术领域,特别是涉及一种节点状态监测方法、装置、设备、存储介质和程序产品。
背景技术
随着云原生技术的快速发展,服务网格作为其核心技术被各企业落地实践。服务网格的本质是一组业务程序的轻量级的网络代理,代理业务程序的网络通信流量。因代理节点和业务节点部署在一起,则代理节点监测业务节点能否正常提供服务,对提高系统可用性就变的至关重要。
传统技术中,只有业务节点进程停止时,代理节点才会根据kubernetes的容器集(pod)生命管理机制自动重启pod。因此,如何监测业务节点的节点状态,以确定业务节点是否能正确的提供服务就变得十分重要。
发明内容
基于此,有必要针对上述技术问题,提供一种能够监测业务节点的节点状态监测方法、装置、设备、存储介质和程序产品。
第一方面,本申请提供了一种节点状态监测方法。所述方法包括:
接收服务消费方发送的网络请求,其中,所述网络请求包括业务节点地址;
响应于所述网络请求,向所述业务节点地址对应的业务节点发送所述网络请求;
接收所述业务节点发送的网络响应,其中,所述网络响应是所述业务节点根据所述网络请求发送的响应;
根据在第一预设时长内接收到的所述业务节点发送的正常的网络响应的次数,确定所述业务节点的节点状态,其中,所述正常的网络响应用于指示所述业务节点的状态码正常。
在其中一个实施例中,所述方法还包括:
若服务端代理节点根据所述正常的网络响应的次数,确定的所述业务节点的节点状态为异常状态,则将所述网络请求转发至与所述业务节点同类型的其他服务端业务节点。
在其中一个实施例中,所述方法还包括:
若所述服务消费方中的客户端代理节点根据所述正常业务响应的次数,确定的所述业务节点的节点状态为异常状态,则隔离所述业务节点。
在其中一个实施例中,所述方法还包括:
向所述业务节点发送健康探测请求;
若在第一预设时长内未接收到所述业务节点发送的健康探测响应,则确定所述业务节点的节点状态为异常状态。
在其中一个实施例中,所述向所述业务节点发送健康探测请求,包括:
在所述业务节点对应的代理节点启动成功后,向所述业务节点发送所述健康探测请求;
或者,在第二预设时长内所述代理节点未接收到所述网络请求,则向所述业务节点发送所述健康探测请求。
在其中一个实施例中,所述方法还包括:
确定在第三预设时长内接收到的正常健康探测响应的次数,其中,所述正常健康探测响应为所述业务节点响应于所述健康探测请求发送的响应,用于指示所述业务节点的状态码正常;
根据在所述第三预设时长内接收到的正常健康探测响应的次数,确定所述业务节点的节点状态。
在其中一个实施例中,所述根据在所述第三预设时长内接收到的正常健康探测响应的次数,确定所述业务节点的节点状态,包括:
确定在所述第三预设时长内,接收到的所述正常健康探测响应的次数与发送的所述健康探测请求的总次数的比值;
若所述比值小于或等于第一预设比值,则确定所述业务节点的节点状态为异常状态。
在其中一个实施例中,所述方法还包括:
若所述业务节点的节点状态为异常状态,且所述业务节点对应的代理节点为客户端代理节点,则控制所述业务节点停止工作或进行重启。
在其中一个实施例中,所述向所述业务节点发送健康探测请求,包括:
从连接池中查找与所述业务节点对应的长连接;
若未从所述连接池中查找到所述长连接,则创建与所述业务节点之间的长连接;
利用所述长连接向所述业务节点发送所述健康探测请求。
第二方面,本申请还提供了一种节点状态监测装置。所述装置包括:
第一接收模块,用于接收服务消费方发送的网络请求,其中,所述网络请求包括业务节点地址;
第一发送模块,用于响应于所述网络请求,向所述业务节点地址对应的业务节点发送所述网络请求;
第二接收模块,用于接收所述业务节点发送的网络响应,其中,所述网络响应是所述业务节点根据所述网络请求发送的响应;
第一确定模块,用于根据在第一预设时长内接收到的所述业务节点发送的正常的网络响应的次数,确定所述业务节点的节点状态,其中,所述正常的网络响应用于指示所述业务节点的状态码正常。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一方法的步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面中任一方法的步骤。
上述节点状态监测方法、装置、设备、存储介质和程序产品,接收服务消费方发送的包含业务节点地址的网络请求,响应于网络请求,向业务节点地址对应的业务节点发送网络请求,并接收业务节点发送的业务节点根据网络请求发送的网络响应,根据在第一预设时长内接收到的业务节点发送的用于指示业务节点的状态码正常的正常的网络响应的次数,确定业务节点的节点状态。由于本申请实施例能够根据在第一预设时长内接收到的业务节点发送的正常的网络响应的次数,确定业务节点的节点状态,以确定业务节点是否能正确的提供服务。
附图说明
图1为本申请实施例提供的一种微服务架构示意图;
图2为本申请实施例提供的一种服务网格架构示意图;
图3是本申请实施例提供的一种节点状态监测方法的流程示意图;
图4是本申请实施例提供的一种节点状态监测方法的系统架构图;
图5是本申请实施例提供的一种服务网格进行容错的示意图;
图6是本申请实施例提供的另一种服务网格进行容错的示意图;
图7是本申请实施例提供的一种节点状态确定方法的流程示意图;
图8是本申请实施例提供的另一种业务节点的节点状态确定方法的流程示意图;
图9是本申请实施例提供的一种健康探测请求发送方法的流程示意图;
图10是本申请实施例提供的一种长连接获取过程的示意图;
图11是本申请实施例提供的一种节点状态监测装置的结构示意图;
图12为本申请实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,图1为本申请实施例提供的一种微服务架构示意图。微服务架构为一种面向服务的架构(Service Oriented Architecture,SOA),将复杂系统切分为多个小服务或者应用,同时将该小服务或者应用称为微服务。每个微服务单独部署,独立运行在自己的进程中,同时微服务之间互相协调、互相配合,为用户提供最终价值。越来越多的传统服务架构朝着微服务架构转变,服务网格架构(Service Mesh)应用而生,将微服务的基础通信交给服务网格去完成。
参照图2,图2是本申请实施例提供的一种服务网格架构示意图。服务网格是指用于微服务间通信的可配置基础架构层(Configurable Infrastructure Layer),它负责为构架复杂的云原生应用传递可靠的网络请求。微服务架构的分布式应用之间的网络通信被服务网格代理,经由服务网格实现微服务201之间的通信。服务网格对微服务201之间的网络通信进行代理,是通过为每个微服务201创建一个边车(sidecar)实现的。每个微服务通过开启透明劫持功能后,出入应用的网络通信流量将会被代理节点(sidecar proxy)202自动拦截,实现网络通信流量代理的功能。
然而,现有服务网格中的代理节点和业务节点部署在同一个pod中,共享pod生命周期,只有才业务节点进程停止时,才会有kubernetes的pod生命管理机制自动重启pod,而业务节点自身发生业务异常等情况时,则网络代理节点无法判断业务节点是否能继续提供服务,将继续对其代理网络流量,而这部分流量就会因为业务节点异常而失败,影响系统可用性。
其中,Pod是Kubernetes创建或部署的最小/最简单的基本单位,一个Pod代表集群上正在运行的一个进程。一个Pod封装一个或多个应用容器、存储资源、一个独立的网络IP以及管理控制容器运行方式的策略选项。
Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用。其中,容器(Container):和虚拟机相似,也是计算机系统的仿真器,由于容器之间底层共享操作系统,所以相对于虚拟机来说,更加的轻量化。
为了解决上述技术问题,本申请实施例提供了一种节点状态监测方法。参照图3,图3是本申请实施例提供的一种节点状态监测方法的流程示意图,该方法应用于服务网格中的代理节点,代理节点可以为图2中的任意一个代理节点,该方法包括以下步骤:
S301、接收服务消费方发送的网络请求,其中,网络请求包括业务节点地址。
参照图4,图4是本申请实施例提供的一种节点状态监测方法的系统架构图。该系统包括客户端和服务端,客户端指服务消费方,服务端指服务提供方,客户端部署于一个pod,服务端部署于一个pod,客户端包括客户端业务节点A,服务端包括服务端代理节点B和服务端业务节点B。以服务消费方为图4中的客户端,代理节点为图4中的服务端代理节点B为例,则服务端代理节点B接收客户端发送的包含服务端业务节点地址的网络请求,此种情况下,S301中的业务节点地址指的是服务端业务节点地址,该服务端业务节点地址为与服务端代理节点B对应的服务端业务节点B的地址,即该网络请求中包括的业务节点地址指的是服务端业务节点B的地址。
S302、响应于网络请求,向业务节点地址对应的业务节点发送网络请求。
结合上述举例进行说明,服务端代理节点B响应于客户端业务节点A发送的网络请求,向服务端业务节点地址对应的服务端业务节点B发送网络请求。
S303、接收业务节点发送的网络响应,其中,网络响应是业务节点根据网络请求发送的响应。
结合上述举例进行说明,服务端代理节点B接收服务端业务节点B发送的网络响应,其中,网络响应是服务端业务节点B根据网络请求发送的响应。
S304、根据在第一预设时长内接收到的业务节点发送的正常的网络响应的次数,确定业务节点的节点状态,其中,正常的网络响应用于指示业务节点的状态码正常。
其中,可以通过判断接收到的正常的网络响应的次数是否超过第一预设阈值,确定业务节点的节点状态;也可以先确定接收到的正常的网络响应的次数占第一预设时长内发送的网络请求的总次数的比值,判断该比值是否超过预设比值确定业务节点的节点状态。
通过判断接收到的正常的网络响应的次数是否超过第一预设阈值,确定业务节点的节点状态的实现方式例如为:
若接收到的服务端业务节点B的正常的网络响应的次数超过第一预设阈值,则确定服务端业务节点B的节点状态为正常状态,即服务端业务节点B能正常提供服务;反之,若接收到的服务端业务节点B的正常的网络响应的次数未超过第一预设阈值,则确定服务端业务节点B的节点状态为异常状态,即服务端业务节点B不能正常提供服务。
需要说明的是,本实施例提供的是一种被动探测业务节点的状态的实现方式,通过被动探测业务节点的状态,代理节点能够感知业务节点的健康状况,即状态正常,则意味着业务节点的健康状况程度高;状态异常,则意味着业务节点的健康状况程度低,无法提供正常服务,从而实现根据业务节点的状态对非正常提供服务的业务节点提供无损业务容错能力。
本实施提供的节点状态监测方法,接收服务消费方发送的包含业务节点地址的网络请求,响应于网络请求,向业务节点地址对应的业务节点发送网络请求;接收业务节点发送的业务节点根据网络请求发送的网络响应,根据在第一预设时长内接收到的业务节点发送的用于指示业务节点的状态码正常的正常的网络响应的次数,确定业务节点的节点状态。由于本申请实施例能够根据在第一预设时长内接收到的业务节点发送的正常的网络响应的次数,确定业务节点的节点状态,以确定业务节点是否能正确的提供服务。
可选的,在上述的S304、根据在第一预设时长内接收到的业务节点发送的正常的网络响应的次数,确定业务节点的节点状态之后,还可以包括如下实现方式:
若服务端代理节点根据正常的网络响应的次数,确定的业务节点的节点状态为异常状态,则将网络请求转发至与业务节点同类型的其他服务端业务节点。
例如,结合图5进行说明,图5是本申请实施例提供的一种服务网格进行容错的示意图。以服务消费方为图5中的客户端,该客户端包括客户端业务节点A,代理节点为服务端代理节点B为例。则服务端代理节点B接收客户端业务节点A发送的包含服务端业务节点B地址的网络请求,并向服务端业务节点B发送网络请求,服务端代理节点B接收服务端业务节点B发送的网络响应,若根据服务端业务节点B发送的正常的网络响应的次数,确定服务端业务节点B的节点状态为异常状态,例如如图5示出的×符号表示服务端业务节点B的节点状态为异常状态,则服务端代理节点B将网络请求转发至与服务端业务节点B同类型的服务端C,以由服务端业务节点C处理该网络请求。
其中,需要说明的是,同一个服务可以对应有多个实例,各实例部署于不同的pod中,一个pod对应一个实例,当某个pod中的实例无法正常为网络请求提供服务时,可以将网络请求转发到该服务对应的其他实例中,例如,如图4所示,将网络请求转发到与服务端业务节点B同类型的服务端业务节点C,即将网络请求转发到与业务节点能提供同一个服务的其他服务端业务节点。
本实施例提供的方法,通过根据正常的网络响应的次数,确定的业务节点的节点状态为异常状态,且业务节点所对应的代理节点为服务端代理节点,进而将网络请求转发至同类型的其他服务端业务节点,以避免传统技术中,直接根据kubernetes的pod生命管理机制自动重启pod,从而实现在业务节点的节点状态为异常状态时,将网络请求转发至其他服务端业务节点,使服务网格能够提供无损业务正常执行的容错能力,实现在业务节点的节点状态为异常状态时,由其他服务端业务节点提供服务,从而提高系统可用性。
可选的,在上述的S304、根据在第一预设时长内接收到的业务节点发送的正常的网络响应的次数,确定业务节点的节点状态之后,还可以包括如下实现方式:
若服务消费方中的客户端代理节点根据正常业务响应的次数,确定的业务节点的节点状态为异常状态,则隔离业务节点。
图6是本申请实施例提供的另一种服务网格进行容错的示意图。若客户端代理节点A根据正常业务响应的次数,确定的服务端业务节点B的节点状态为异常状态,即如图6示出的×表示服务端B不能对客户端A提供服务。此种情况下,客户端代理节点A从网络路由侧将节点状态为异常状态的服务端B进行隔离,隔离后,客户端代理节点A可以将网络请求发送至服务端C。其中,服务端B和服务端C为同一个服务对应的多个实例,也即在客户端代理节点确定同一个服务的某个实例对应的服务端不能正常提供服务时,则将该服务端隔离,由其他的能够正常提供服务的服务端提供服务。
参照图7,图7是本申请实施例提供的一种节点状态确定方法的流程示意图,包括以下步骤:
S701、向业务节点发送健康探测请求。
在pod启动时,会先启动代理节点,后启动业务节点,在代理节点启动完成后,它即可向业务节点发送健康探测请求。
S702、若在第一预设时长内未接收到业务节点发送的健康探测响应,则确定业务节点的节点状态为异常状态。
结合上述图4举例进行说明,若服务端代理节点B和服务端业务节点B所在的pod启动时,服务端代理节点B启动成功后,向服务端业务节点B发送健康探测请求,若在第一预设时长内未接收到服务端业务节点B发送的健康探测响应,则确定服务端业务节点B的节点状态为异常状态。
本实施例提供的方法,向业务节点发送健康探测请求,并接收业务节点发送的健康探测响应,进而根据在第一预设时长内未接收到业务节点发送的健康探测响应,确定业务节点的节点状态。由于本申请实施例能够根据在第一预设时长内未接收到的业务节点发送的健康探测响应,确定业务节点的节点状态,以确定业务节点是否能正确的提供服务。
可选的,向业务节点发送健康探测请求,还可以包括如下实现方式:
在业务节点对应的代理节点启动成功后,向业务节点发送健康探测请求;或者,在第二预设时长内代理节点未接收到网络请求,则向业务节点发送健康探测请求。
其中,当pod刚启动时(pod内包括代理节点和业务节点),由于先启动代理节点后启动业务节点,在代理节点启动完成后,代理节点通过主动探测方式对业务节点进行健康监测,以确定业务节点是否正常。当代理节点和业务节点均启动成功后,若pod能正常收发报文,则可以不进行主动探测。例如在业务低峰期,存在较长时间段内业务节点未收到网络请求的情况,那么在这种情况下,代理节点可以主动向业务节点发送健康探测请求,以确定业务节点是否正常。该健康探测请求可以为心跳请求。
需要说明的是,健康探测请求还可以包括业务请求。例如,在业务高峰期,业务节点能够正常收发数据,那么在这种情况下,代理节点通过向业务节点发送网络请求即可以确定业务节点的节点状态,无需向业务节点发送心跳探测,从而可以节省发送心跳探测所需的资源。
参照图8,图8是本申请实施例提供的另一种业务节点的节点状态确定方法的流程示意图。
S801、确定在第三预设时长内接收到的正常健康探测响应的次数,其中,正常健康探测响应为业务节点响应于健康探测请求发送的响应,用于指示业务节点的状态码正常。
S802、根据在第三预设时长内接收到的正常健康探测响应的次数,确定业务节点的节点状态。
其中,可以通过判断在第三预设时长内接收到的正常健康探测响应的次数是否超过第二预设阈值,确定业务节点的状态;也可以先确定在第三预设时长内接收到的正常健康探测响应的次数占发送的健康探测请求的总次数的比值,判断该比值是否超过第二预设比值,确定业务节点的状态。
通过判断在第三预设时长内接收到的正常健康探测响应的次数是否超过第二预设阈值,确定业务节点的状态的实现方式例如以图4举例进行说明:确定服务端代理节点B在第三预设时长内,接收到的服务端业务节点B响应于健康探测请求发送的正常健康探测响应的次数,若服务端代理节点B接收到正常健康探测响应的次数超过第二预设阈值,则确定服务端业务节点B的节点状态为正常状态,即服务端业务节点B能正常提供服务;反之,若服务端代理节点B接收到的服务端业务节点B发送的正常健康探测响应的次数未超过第二预设阈值,则确定服务端业务节点B的节点状态为异常状态,即服务端业务节点B不能正常提供服务。
需要说明的是,本申请实施例能够实现代理节点多级感知业务节点健康状况,即可以主动探测业务节点的状态,也可以被动探测业务节点的状态,从而根据业务节点的状态,获知业务节点的健康状况。
本实施例提供的方法,确定在第三预设时长内接收到的正常健康探测响应的次数,并根据在第三预设时长内接收到的正常健康探测响应的次数,确定业务节点的节点状态,由于本申请实施例能够根据在第三预设时长内接收到的业务节点发送的正常健康探测响应,确定业务节点的节点状态,以确定业务节点是否能正确的提供服务。
可选的,本实施例涉及的是如何根据在第三预设时长内接收到的正常健康探测响应的次数,确定所述业务节点的节点状态的一种可选的实现方式:
确定在第三预设时长内,接收到的正常健康探测响应的次数与发送的健康探测请求的总次数的比值;若比值小于或等于第一预设比值,则确定业务节点的节点状态为异常状态。
例如,在第三预设时长为10s内,代理节点接收到的正常健康探测响应的次数为7次,而发送健康探测请求的总次数为10次,则比值为0.7。通过比较比值0.7和第一预设比值0.8,确定比值0.7小于第一预设比值0.8,则业务节点的节点状态为异常状态。
本实施提供的方法,通过确定在第三预设时长内,接收到的正常健康探测响应的次数与发送的健康探测请求的总次数的比值,进而在比值小于或等于第一预设比值时,确定业务节点的节点状态为异常状态,从而代理节点监测业务节点的节点状态,以实现通过代理节点对业务节点的状态进行细粒度监测。
可选的,在上述实施例的基础上,还可以包括如下实现方式:
若业务节点的节点状态为异常状态,且业务节点对应的代理节点为客户端代理节点,则控制业务节点停止工作或进行重启。
其中,控制业务节点停止工作的实现方式包括优雅下线,其优雅下线涉及的是外部请求和异步任务必须处理完再停止业务节点停止工作,也就是服务优雅下线。
例如,在部署有客户端代理节点A和客户端业务节点A的pod启动时,会先启动客户端代理节点A,后启动客户端业务节点A,在客户端代理节点A启动完成后,它即可向客户端业务节点A发送健康探测请求,若发送健康探测请求后,确定客户端业务节点A的状态为异常状态,则可控制客户端业务节点A停止工作或进行重启。
本实施例提供的方法,当异常状态的业务节点是客户端业务节点,则客户端代理节点控制客户端业务节点停止工作或进行重启,以实现业务节点的节点状态为异常状态时,则控制节点状态为异常状态的业务节点以优雅下线的方式停止工作,使服务网格能够提供无损业务正常执行的容错能力,以提高系统可用性。
在一个实施例中,如图9所示,图9是本申请实施例提供的一种健康探测请求发送方法的流程示意图。本实施例涉及的是如何向业务节点发送健康探测请求的一种可选的实现方式。在上述实施例的基础上,健康探测请求发送方法具体包括如下步骤:
S901、从连接池中查找与业务节点对应的长连接。
本实施例中,连接池是通过建立一个数据库连接池以及一套连接使用,使得连接池中的连接可以得到高效、安全的复用,避免数据库连接频繁建立和关闭。连接池中的连接例如可以是HTTP,也可以是DUBBO。
其中,HTTP是超文本传输协议(Hyper Text Transfer Protocol),是一个简单的请求-响应协议,指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。DUBBO是分布式的服务框架,致力于提供高性能和透明化的远程过程调用的远程服务调用方案,以及SOA服务治理方案。
例如,参照图10,图10是本申请实施例提供的一种长连接获取过程的示意图。根据包含业务节点地址的网络请求对应的通信协议,从连接池中查找是否有与业务节点对应的长连接。若在连接池能够找到与业务节点对应的长连接,则利用此长连接的stream向业务节点发送健康探测请求。
S902、若未从连接池中查找到长连接,则创建与业务节点之间的长连接。
结合上述举例进行说明,在连接池中未找到与业务节点对应的长连接,则根据包含业务节点地址的网络请求对应的通信协议,创建与业务节点对应的长连接。
S903、利用长连接向业务节点发送健康探测请求。
结合上述举例进行说明,利用长连接的stream向业务节点发送健康探测请求。
本实施例提供的方法,通过从连接池中查找与业务节点对应的长连接,若未从连接池中查找到长连接,则创建与业务节点之间的长连接,并利用长连接向业务节点发送健康探测请求,从而实现代理节点直接获取连接池中的长连接,并使其长连接得以高效、安全的复用,进而若在连接池中未找到长连接,则创建长连接,从而使代理节点能够监测业务节点是否存在异常,以实现通过代理节点对业务节点的状态进行细粒度监测。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的节点状态监测方法的节点状态监测装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个节点状态监测装置实施例中的具体限定可以参见上文中对于节点状态监测方法的限定,在此不再赘述。
在一个实施例中,如图11所示,图11是本申请实施例提供的一种节点状态监测装置的结构示意图,节点状态监测装置1100包括:第一接收模块1101、响应模块1102、第二接收模块1103和确定模块1104,其中:
第一接收模块1101,用于接收服务消费方发送的网络请求,其中,所述网络请求包括业务节点地址;
第一发送模块1102,用于响应于所述网络请求,向所述业务节点地址对应的业务节点发送所述网络请求;
第二接收模块1103,用于接收所述业务节点发送的网络响应,其中,所述网络响应是所述业务节点根据所述网络请求发送的响应;
第一确定模块1104,用于根据在第一预设时长内接收到的所述业务节点发送的正常的网络响应的次数,确定所述业务节点的节点状态,其中,所述正常的网络响应用于指示所述业务节点的状态码正常。
在其中一个实施例中,装置还包括:
转发模块,用于若服务端代理节点根据所述正常的网络响应的次数,确定的所述业务节点的节点状态为异常状态,则将所述网络请求转发至与所述业务节点同类型的其他服务端业务节点。
在其中一个实施例中,节点状态监测装置还包括:
隔离模块,用于若所述服务消费方中的客户端代理节点根据所述正常业务响应的次数,确定的所述业务节点的节点状态为异常状态,则隔离所述业务节点。
在其中一个实施例中,节点状态监测装置还包括:
第二发送模块,用于向所述业务节点发送健康探测请求;
第二确定模块,用于若在第一预设时长内未接收到所述业务节点发送的健康探测响应,则确定所述业务节点的节点状态为异常状态。
在其中一个实施例中,第二发送模块,具体用于在所述业务节点对应的代理节点启动成功后,向所述业务节点发送所述健康探测请求;或者,在第二预设时长内所述代理节点未接收到所述网络请求,则向所述业务节点发送所述健康探测请求。
在其中一个实施例中,节点状态监测装置还包括:
第三确定模块,用于确定在第三预设时长内接收到的正常健康探测响应的次数,其中,所述正常健康探测响应为所述业务节点响应于所述健康探测请求发送的响应,用于指示所述业务节点的状态码正常。
第四确定模块,用于根据在所述第三预设时长内接收到的正常健康探测响应的次数,确定所述业务节点的节点状态。
在其中一个实施例中,第四确定模块,具体用于确定在所述第三预设时长内,接收到的所述正常健康探测响应的次数与发送的所述健康探测请求的总次数的比值;若所述比值小于或等于第一预设比值,则确定所述业务节点的节点状态为异常状态。
在其中一个实施例中,节点状态监测装置还包括:
控制模块,用于若所述业务节点的节点状态为异常状态,且所述业务节点对应的代理节点为客户端代理节点,则控制所述业务节点停止工作或进行重启。
在其中一个实施例中,第二发送模块,具体用于从连接池中查找与所述业务节点对应的长连接;若未从所述连接池中查找到所述长连接,则创建与所述业务节点之间的长连接;利用所述长连接向所述业务节点发送健康探测请求。
上述节点状态监测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种节点状态监测方法。
本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
接收服务消费方发送的网络请求,其中,所述网络请求包括业务节点地址;
响应于所述网络请求,向所述业务节点地址对应的业务节点发送所述网络请求;
接收所述业务节点发送的网络响应,其中,所述网络响应是所述业务节点根据所述网络请求发送的响应;
根据在第一预设时长内接收到的所述业务节点发送的正常的网络响应的次数,确定所述业务节点的节点状态,其中,所述正常的网络响应用于指示所述业务节点的状态码正常。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
若服务端代理节点根据所述正常的网络响应的次数,确定的所述业务节点的节点状态为异常状态,则将所述网络请求转发至与所述业务节点同类型的其他服务端业务节点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
若所述服务消费方中的客户端代理节点根据所述正常业务响应的次数,确定的所述业务节点的节点状态为异常状态,则隔离所述业务节点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
向所述业务节点发送健康探测请求;
若在第一预设时长内未接收到所述业务节点发送的健康探测响应,则确定所述业务节点的节点状态为异常状态。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
在所述业务节点对应的代理节点启动成功后,向所述业务节点发送所述健康探测请求;
或者,在第二预设时长内所述代理节点未接收到所述网络请求,则向所述业务节点发送所述健康探测请求。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
确定在第三预设时长内接收到的正常健康探测响应的次数,其中,所述正常健康探测响应为所述业务节点响应于所述健康探测请求发送的响应,用于指示所述业务节点的状态码正常;
根据在所述第三预设时长内接收到的正常健康探测响应的次数,确定所述业务节点的节点状态。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
确定在所述第三预设时长内,接收到的所述正常健康探测响应的次数与发送的所述健康探测请求的总次数的比值;
若所述比值小于或等于第一预设比值,则确定所述业务节点的节点状态为异常状态。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
若所述业务节点的节点状态为异常状态,且所述业务节点对应的代理节点为客户端代理节点,则控制所述业务节点停止工作或进行重启。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
从连接池中查找与所述业务节点对应的长连接;
若未从所述连接池中查找到所述长连接,则创建与所述业务节点之间的长连接;
利用所述长连接向所述业务节点发送所述健康探测请求。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收服务消费方发送的网络请求,其中,所述网络请求包括业务节点地址;
响应于所述网络请求,向所述业务节点地址对应的业务节点发送所述网络请求;
接收所述业务节点发送的网络响应,其中,所述网络响应是所述业务节点根据所述网络请求发送的响应;
根据在第一预设时长内接收到的所述业务节点发送的正常的网络响应的次数,确定所述业务节点的节点状态,其中,所述正常的网络响应用于指示所述业务节点的状态码正常。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若服务端代理节点根据所述正常的网络响应的次数,确定的所述业务节点的节点状态为异常状态,则将所述网络请求转发至与所述业务节点同类型的其他服务端业务节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若所述服务消费方中的客户端代理节点根据所述正常业务响应的次数,确定的所述业务节点的节点状态为异常状态,则隔离所述业务节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
向所述业务节点发送健康探测请求;
若在第一预设时长内未接收到所述业务节点发送的健康探测响应,则确定所述业务节点的节点状态为异常状态。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在所述业务节点对应的代理节点启动成功后,向所述业务节点发送所述健康探测请求;
或者,在第二预设时长内所述代理节点未接收到所述网络请求,则向所述业务节点发送所述健康探测请求。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
确定在第三预设时长内接收到的正常健康探测响应的次数,其中,所述正常健康探测响应为所述业务节点响应于所述健康探测请求发送的响应,用于指示所述业务节点的状态码正常;
根据在所述第三预设时长内接收到的正常健康探测响应的次数,确定所述业务节点的节点状态。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
确定在所述第三预设时长内,接收到的所述正常健康探测响应的次数与发送的所述健康探测请求的总次数的比值;
若所述比值小于或等于第一预设比值,则确定所述业务节点的节点状态为异常状态。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若所述业务节点的节点状态为异常状态,且所述业务节点对应的代理节点为客户端代理节点,则控制所述业务节点停止工作或进行重启。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
从连接池中查找与所述业务节点对应的长连接;
若未从所述连接池中查找到所述长连接,则创建与所述业务节点之间的长连接;
利用所述长连接向所述业务节点发送所述健康探测请求。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
接收服务消费方发送的网络请求,其中,所述网络请求包括业务节点地址;
响应于所述网络请求,向所述业务节点地址对应的业务节点发送所述网络请求;
接收所述业务节点发送的网络响应,其中,所述网络响应是所述业务节点根据所述网络请求发送的响应;
根据在第一预设时长内接收到的所述业务节点发送的正常的网络响应的次数,确定所述业务节点的节点状态,其中,所述正常的网络响应用于指示所述业务节点的状态码正常。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若服务端代理节点根据所述正常的网络响应的次数,确定的所述业务节点的节点状态为异常状态,则将所述网络请求转发至与所述业务节点同类型的其他服务端业务节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若所述服务消费方中的客户端代理节点根据所述正常业务响应的次数,确定的所述业务节点的节点状态为异常状态,则隔离所述业务节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
向所述业务节点发送健康探测请求;
若在第一预设时长内未接收到所述业务节点发送的健康探测响应,则确定所述业务节点的节点状态为异常状态。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在所述业务节点对应的代理节点启动成功后,向所述业务节点发送所述健康探测请求;
或者,在第二预设时长内所述代理节点未接收到所述网络请求,则向所述业务节点发送所述健康探测请求。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
确定在第三预设时长内接收到的正常健康探测响应的次数,其中,所述正常健康探测响应为所述业务节点响应于所述健康探测请求发送的响应,用于指示所述业务节点的状态码正常;
根据在所述第三预设时长内接收到的正常健康探测响应的次数,确定所述业务节点的节点状态。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
确定在所述第三预设时长内,接收到的所述正常健康探测响应的次数与发送的所述健康探测请求的总次数的比值;
若所述比值小于或等于第一预设比值,则确定所述业务节点的节点状态为异常状态。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若所述业务节点的节点状态为异常状态,且所述业务节点对应的代理节点为客户端代理节点,则控制所述业务节点停止工作或进行重启。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
从连接池中查找与所述业务节点对应的长连接;
若未从所述连接池中查找到所述长连接,则创建与所述业务节点之间的长连接;
利用所述长连接向所述业务节点发送所述健康探测请求。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (13)

1.一种节点状态监测方法,其特征在于,所述方法包括:
接收服务消费方发送的网络请求,其中,所述网络请求包括业务节点地址;
响应于所述网络请求,向所述业务节点地址对应的业务节点发送所述网络请求;
接收所述业务节点发送的网络响应,其中,所述网络响应是所述业务节点根据所述网络请求发送的响应;
根据在第一预设时长内接收到的所述业务节点发送的正常的网络响应的次数,确定所述业务节点的节点状态,其中,所述正常的网络响应用于指示所述业务节点的状态码正常。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若服务端代理节点根据所述正常的网络响应的次数,确定的所述业务节点的节点状态为异常状态,则将所述网络请求转发至与所述业务节点同类型的其他服务端业务节点。
3.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述服务消费方中的客户端代理节点根据所述正常业务响应的次数,确定的所述业务节点的节点状态为异常状态,则隔离所述业务节点。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向所述业务节点发送健康探测请求;
若在第一预设时长内未接收到所述业务节点发送的健康探测响应,则确定所述业务节点的节点状态为异常状态。
5.根据权利要求4所述的方法,其特征在于,所述向所述业务节点发送健康探测请求,包括:
在所述业务节点对应的代理节点启动成功后,向所述业务节点发送所述健康探测请求;
或者,在第二预设时长内所述代理节点未接收到所述网络请求,则向所述业务节点发送所述健康探测请求。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
确定在第三预设时长内接收到的正常健康探测响应的次数,其中,所述正常健康探测响应为所述业务节点响应于所述健康探测请求发送的响应,用于指示所述业务节点的状态码正常;
根据在所述第三预设时长内接收到的正常健康探测响应的次数,确定所述业务节点的节点状态。
7.根据权利要求6所述的方法,其特征在于,所述根据在所述第三预设时长内接收到的正常健康探测响应的次数,确定所述业务节点的节点状态,包括:
确定在所述第三预设时长内,接收到的所述正常健康探测响应的次数与发送的所述健康探测请求的总次数的比值;
若所述比值小于或等于第一预设比值,则确定所述业务节点的节点状态为异常状态。
8.根据权利要求4-7任一项所述的方法,其特征在于,所述方法还包括:
若所述业务节点的节点状态为异常状态,且所述业务节点对应的代理节点为客户端代理节点,则控制所述业务节点停止工作或进行重启。
9.根据权利要求4-7任一项所述的方法,其特征在于,所述向所述业务节点发送健康探测请求,包括:
从连接池中查找与所述业务节点对应的长连接;
若未从所述连接池中查找到所述长连接,则创建与所述业务节点之间的长连接;
利用所述长连接向所述业务节点发送所述健康探测请求。
10.一种节点状态监测装置,其特征在于,所述装置包括:
第一接收模块,用于接收服务消费方发送的网络请求,其中,所述网络请求包括业务节点地址;
第一发送模块,用于响应于所述网络请求,向所述业务节点地址对应的业务节点发送所述网络请求;
第二接收模块,用于接收所述业务节点发送的网络响应,其中,所述网络响应是所述业务节点根据所述网络请求发送的响应;
第一确定模块,用于根据在第一预设时长内接收到的所述业务节点发送的正常的网络响应的次数,确定所述业务节点的节点状态,其中,所述正常的网络响应用于指示所述业务节点的状态码正常。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述的方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
13.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
CN202210633271.5A 2022-06-07 2022-06-07 节点状态监测方法、装置、设备、存储介质和程序产品 Pending CN114928654A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210633271.5A CN114928654A (zh) 2022-06-07 2022-06-07 节点状态监测方法、装置、设备、存储介质和程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210633271.5A CN114928654A (zh) 2022-06-07 2022-06-07 节点状态监测方法、装置、设备、存储介质和程序产品

Publications (1)

Publication Number Publication Date
CN114928654A true CN114928654A (zh) 2022-08-19

Family

ID=82812405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210633271.5A Pending CN114928654A (zh) 2022-06-07 2022-06-07 节点状态监测方法、装置、设备、存储介质和程序产品

Country Status (1)

Country Link
CN (1) CN114928654A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201470A1 (en) * 2005-11-11 2008-08-21 Fujitsu Limited Network monitor program executed in a computer of cluster system, information processing method and computer
CN110022227A (zh) * 2019-03-07 2019-07-16 阿里巴巴集团控股有限公司 业务处理方法、装置、设备及存储介质
CN110740072A (zh) * 2018-07-20 2020-01-31 华为技术有限公司 一种故障检测方法、装置和相关设备
CN114257532A (zh) * 2021-12-22 2022-03-29 中国工商银行股份有限公司 服务端状态探测方法及装置
CN114518993A (zh) * 2022-02-16 2022-05-20 平安普惠企业管理有限公司 基于业务特征的系统性能监控方法、装置、设备及介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201470A1 (en) * 2005-11-11 2008-08-21 Fujitsu Limited Network monitor program executed in a computer of cluster system, information processing method and computer
CN110740072A (zh) * 2018-07-20 2020-01-31 华为技术有限公司 一种故障检测方法、装置和相关设备
CN110022227A (zh) * 2019-03-07 2019-07-16 阿里巴巴集团控股有限公司 业务处理方法、装置、设备及存储介质
CN114257532A (zh) * 2021-12-22 2022-03-29 中国工商银行股份有限公司 服务端状态探测方法及装置
CN114518993A (zh) * 2022-02-16 2022-05-20 平安普惠企业管理有限公司 基于业务特征的系统性能监控方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
US9794365B2 (en) Re-establishing push notification channels via user identifiers
RU2746042C1 (ru) Способ и система для передачи сообщения
US20210176310A1 (en) Data synchronization method and system
US5781737A (en) System for processing requests for notice of events
CN107204901B (zh) 一种提供、接收状态通知的计算机系统
CN107547661B (zh) 一种容器负载均衡实现方法
US8984328B2 (en) Fault tolerance in a parallel database system
US8607233B2 (en) Web service management
US10198338B2 (en) System and method of generating data center alarms for missing events
US20040221207A1 (en) Proxy response apparatus
US5768524A (en) Method for processing requests for notice of events
CN112751916B (zh) 一种面向微服务治理的数据发布-订阅方法和系统
CN104158707A (zh) 一种检测并处理集群脑裂的方法和装置
CN111176888B (zh) 云存储的容灾方法、装置及系统
CN109309617A (zh) 容灾切换方法、相关设备及计算机存储介质
US20210224167A1 (en) Method to Disable or Reboot Unresponsive Device with Active Uplink in a Ring Network
US5857076A (en) Program product for obtaining the state of network resources in A distributed computing environment
CN114900526B (zh) 负载均衡方法及系统、计算机存储介质、电子设备
US5768523A (en) Program product for processing requests for notice of events
CN113965576B (zh) 基于容器的大数据采集方法、装置、存储介质和设备
CN114090342A (zh) 存储容灾的链路管理方法及消息执行节点、存储控制集群
CN111835797A (zh) 一种数据处理方法、装置及设备
Hammoudi et al. A new Infrastructure as a Service for IoT-Cloud
CN116192885A (zh) 高可用集群架构人工智能实验云平台数据处理方法及系统
CN115834668B (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