CN110519337B - 一种节点状态判断、采集方法及状态决策器、状态采集器 - Google Patents
一种节点状态判断、采集方法及状态决策器、状态采集器 Download PDFInfo
- Publication number
- CN110519337B CN110519337B CN201910715085.4A CN201910715085A CN110519337B CN 110519337 B CN110519337 B CN 110519337B CN 201910715085 A CN201910715085 A CN 201910715085A CN 110519337 B CN110519337 B CN 110519337B
- Authority
- CN
- China
- Prior art keywords
- state
- node
- target
- information
- context information
- 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
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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/14—Session management
-
- 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/56—Provisioning of proxy services
-
- 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/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Abstract
本发明公开了一种节点状态判断方法,所述方法应用于状态决策器中,所述方法包括:接收节点状态信息,并识别所述节点状态信息中携带的目标节点标识;判断与所述目标节点标识相绑定的目标上下文信息是否存在,若所述目标上下文信息存在,更新所述目标上下文信息中的状态参数和异常计数值;若所述目标上下文信息不存在,创建与所述目标节点标识相绑定的所述目标上下文信息,并设置创建的所述目标上下文信息中的状态参数和异常计数值。本申请提供的技术方案,可以获取并管理各个节点的工作状态。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种节点状态判断、采集方法及状态决策器、状态采集器。
背景技术
企业在部署服务器时,通常会采用高可用性、高扩展性和高容灾性的网络架构。这类架构中通常使用Keepalived+Haproxy或Keepalived+Nginx架构,为获取上述架构中各个服务节点的工作状态,通常采用由监测服务端主动向待监测服务节点发起Http请求,如果待监测服务节点状态正常,则返回200;如果待监测服务节点状态异常或者不可用,则Http请求超时。但是这种工作方式存在如下缺点:监测服务端需要识别每个待监测服务节点的IP和端口,否则访问不到待监测服务节点上的服务;待监测服务节点上的服务需要提供Http请求接口,存在接口被攻击导致待监测服务节点瘫痪的风险。
鉴于此,有必要提供一种新的节点状态判断、采集方法及状态决策器、状态采集器以解决上述不足。
发明内容
本申请的目的在于提供一种节点状态判断、采集方法及状态决策器、状态采集器,可以获取并管理各个节点的工作状态。
为实现上述目的,本申请一方面提供一种节点状态判断方法,所述方法应用于状态决策器中,所述方法包括:接收节点状态信息,并识别所述节点状态信息中携带的目标节点标识;判断与所述目标节点标识相绑定的目标上下文信息是否存在,若所述目标上下文信息存在,更新所述目标上下文信息中的状态参数和异常计数值;若所述目标上下文信息不存在,创建与所述目标节点标识相绑定的所述目标上下文信息,并设置创建的所述目标上下文信息中的状态参数和异常计数值。
为实现上述目的,本申请另一方面还提供一种状态决策器,所述状态决策器包括:信息接收模块,用于接收节点状态信息,并识别所述节点状态信息中携带的目标节点标识;上下文判断模块,用于判断与所述目标节点标识相绑定的目标上下文信息是否存在;上下文执行模块,用于若所述目标上下文信息存在,更新所述目标上下文信息中的状态参数和异常计数值,以及,若所述目标上下文信息不存在,创建与所述目标节点标识相绑定的所述目标上下文信息,并设置创建的所述目标上下文信息中的状态参数和异常计数值。
为实现上述目的,本申请一方面提供一种节点状态采集方法,所述方法应用于状态采集器中,所述方法包括:获取节点的节点配置信息;根据所述节点配置信息判断所述节点的类型,并根据与所述类型相绑定的信息获取策略,获取所述节点的节点状态信息。
为实现上述目的,本申请另一方面还提供一种状态采集器,所述状态采集器包括:信息采集模块,用于获取节点的节点配置信息;节点判断模块,用于根据所述节点配置信息判断所述节点的类型,并根据与所述类型相绑定的信息获取策略,获取所述节点的节点状态信息。
由此可见,本申请提供的技术方案,将获取待监测服务节点的工作状态划分为“状态采集”和“状态决策”两个过程,其中“状态采集”过程由状态采集器实现,“状态决策”过程由状态决策器完成,状态采集器通过基于消息中间件服务器实现的通信协议,将待监测服务节点的工作状态上报至状态决策器,状态决策器根据各个状态采集器的汇报结果,可以获取并管理所有待监测服务节点的工作状态。本申请提供的技术方案,通过在待监测服务节点中设置状态采集器的方式,无需针对待监测服务节点做过多配置,就可以将待监测服务节点接入状态监测系统,提高了状态监测系统部署的灵活性,同时通过使用消息中间件服务器作为信息传输的中介,并采用自定义通信协议,可以对外隐藏待监测服务节点的通信端口,进一步提高待监测服务节点和状态监测系统的安全性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施方式中状态监测系统的架构示意图;
图2是本申请实施方式一中节点状态判断方法的流程图;
图3是本申请实施方式二中节点状态判断方法的流程图;
图4是本申请实施方式中定时检测程序的工作流程图;
图5是本申请实施方式中状态决策器的功能模块示意图;
图6是本申请实施方式中状态决策器的结构示意图;
图7是本申请实施方式中节点状态采集方法的流程图;
图8是本申请实施方式中状态采集器的工作流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
现今单个服务器已经难以满足企业的工作需求,实际应用中通常会以服务器集群的形式进行部署,同时考虑到集群的高可用性、高扩展性和高容灾性需求,企业通常会采用Keepalived+Haproxy或者Keepalived+Nginx的网络架构。在上述网络架构下,当集群中的某一个服务节点工作异常时,系统会自动将该服务节点上的任务重新分配到其它工作正常的服务节点上,以保证单个服务节点的故障不会影响到系统的整体服务,受限于上述网络架构,管理人员无法获知系统内各个服务节点的工作状态,也就无法对工作异常的服务节点进行维护,当工作异常的服务节点持续累积时,系统虽然仍可以对外提供服务,但其服务性能会不断下降,直至所有服务节点均工作异常,整个系统崩溃,所以针对服务器集群而言,如何获取集群中每个服务器的工作状态是很重要的课题。
为解决上述问题,现有的技术方案是在服务器集群中单独设置监测服务器,由监测服务器对集群中所有服务器(即服务节点)的工作状态进行监测。通常由监测服务器主动向待监测服务节点发起Http请求,如果待监测服务节点工作状态正常,则返回200;如果待监测服务节点状态异常或者不可用,则Http请求超时。但是这种工作方式存在如下缺点:监测服务器需要向集群中的所有待监测服务节点发起Http请求,并处理请求结果,当集群规模很大时,监测服务器的工作负载极大,容易出现故障;监测服务器需要识别每个待监测服务节点的IP和端口,以访问待监测服务节点上的服务,但是对于第三方组件,其端口配置往往难以获取,因此存在第三方组件兼容性问题;待监测服务节点需要提供Http请求接口,在消息传输过程中,Http请求接口可能泄露,存在接口被攻击导致待监测服务节点瘫痪的风险。
本申请提供的技术方案可以解决上述不足。
为便于理解本申请中涉及到的消息中间件服务器和上下文信息的内容,下面对其进行简要介绍。
消息中间件(Message Oriented Middleware)技术是指利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成,通过提供消息传递和消息排队模型,消息中间件技术可以在分布式环境下扩展进程间的通信。消息中间件技术按照传输模式可以分为:点对点模式和发布/订阅模式。点对点模式用于消息生产者和消息消费者之间点到点的通信,消息生产者将消息发送到具有某个标识的特定消息消费者,它的特点是一个消息只有一个消息消费者。发布/订阅模式用于向一个特定的消息主题生产消息,一个或多个订阅者可以接收来自特定消息主题的消息,它的特点是一个消息可以有多个订阅者(即一个消息可以有多个消息消费者)。本申请将支持消息中间件技术的服务器称为消息中间件服务器,消息中间件服务器可以提供基于存储和转发的应用程序之间的异步数据发送,即应用程序之间彼此不直接通信,而是与作为中介的消息中间件服务器进行通信,应用程序之间的通信端口由消息中间件服务器提供。
上下文信息(Context)是一种抽象类,定义了各种抽象方法,包括获取系统资源、获取系统服务、发送广播、启动Activity、创建View等,是一个应用中所有功能的集合,广泛应用于各种编程语言中(例如Java)。
请参阅图1,为本申请实施方式中状态监测系统的架构示意图。
在本实施方式中,状态监测系统的架构可以采用客户端/服务器架构(C/S,Client/Server),其中,状态采集器作为客户端,状态决策器作为服务器端。通过在每个待监测服务节点中设置状态采集器,可以将状态监测系统的监测粒度细化为单个服务节点,进而提高对整个网络工作状态的感知,并且基于客户端/服务器架构,通过状态决策器统一管理所有服务节点的工作状态,可以进一步简化状态监测系统的管理和部署。
在本实施方式中,状态监测系统可以划分为三个层次:状态采集层、状态决策层和消息中间件层,其中,状态采集层由状态采集器和待监测服务节点组成,状态决策层由状态决策器组成,消息中间件层由消息中间件服务器组成。每个待监测服务节点都设置有状态采集器,上述状态采集器可以实时或者定时检测与其连接的待监测服务节点的工作状态,并将获取的节点状态信息按照自定义通信协议发送至消息中间件服务器,状态决策器根据从消息中间件服务器获取的上述节点状态信息,判断并管理上述待监测服务节点的工作状态。通过使用消息中间件服务器作为信息传输的中介,并采用自定义通信协议,可以对外隐藏待监测服务节点的通信端口,提高待监测服务节点和状态监测系统的安全性。
需要特别指出的是,消息中间件服务器可以主动向状态决策器推送上述节点状态信息,也可以根据状态决策器发来的节点状态信息获取请求,向状态决策器反馈上述节点状态信息,本申请对此不作限制。
需要特别指出的是,消息中间件服务器既可以采用点对点的传输模式,也可以采用发布/订阅的传输模式。当消息中间件服务器采用点对点的传输模式时,状态决策层为单状态决策器模型(即只设置有一台状态决策器);当消息中间件服务器采用发布/订阅的传输模式时,状态决策层可以为多状态决策器模型(即可以设置多台状态决策器),多个状态决策器之间可以互为备份,可以避免出现因单台状态决策器故障导致整个状态监测系统无法工作的情况。同理,消息中间件服务器可以采用单台服务器的部署方式,也可以采用服务器集群的部署方式,本申请对此不作限制。
在实际应用中,可以将状态采集器嵌入待监测服务节点中,也可以将状态采集器设置在待监测服务节点外,并通过有线或者无线通信的方式获取待监测服务节点的节点状态信息,本申请对此不作限制。
需要特别指出的是,状态决策层和/或消息中间件层中也可以设置有状态采集器,用于获取状态决策器和/或消息中间件服务器的工作状态,并将获取的状态决策器和/或消息中间件服务器的节点状态信息发送至消息中间件服务器,以使得状态决策器可以从消息中间件服务器中获取上述节点状态信息。
除非特别指明,下文中涉及到的状态采集器、消息中间件服务器和状态决策器皆位于如图1所示的状态监测系统中。
请参阅图2,为本申请实施方式一中节点状态判断方法的流程图,所述方法应用于状态决策器中,所述方法可以包括以下步骤。
S101:获取节点状态信息,并识别所述节点状态信息中携带的目标节点标识。
在本实施方式中,状态监测系统可以对其覆盖的所有待监测服务节点设置节点标识,上述节点标识可以采用“节点IP”和/或“节点名称”的形式表征,其中,“节点IP”可以采用待监测服务节点的IP地址,“节点名称”可以采用不重复的数字编号、MAC地址、或者其它可以用于区别不同服务节点的字段或者字符,本申请对此不作限制。上述各个待监测服务节点都设置有状态采集器,状态采集器可以实时或者定时检测与其连接的待监测服务节点的工作状态,以获取上述待监测服务节点的节点状态信息,并将获取的节点状态信息按照自定义通信协议发送至消息中间件服务器,上述节点状态信息中携带有该待监测服务节点的节点标识。状态决策器可以从消息中间件服务器获取上述节点状态信息,并从上述节点状态信息中识别出其携带的节点标识,本申请将其称之为目标节点标识。
需要特别指出的是,基于消息中间件技术的高效可靠的消息传递机制,节点状态信息在传输过程中丢失的概率可以忽略不计,因此在本实施方式中,可以利用节点状态信息的传输情况来表征待监测服务节点是否工作正常,即当状态决策器获取到某一待监测服务节点的节点状态信息时,则表明该待监测服务节点的工作状态是正常的;当状态决策器未能获取到某一待监测服务节点的节点状态信息时,则表明该待监测服务节点的工作状态是异常的,设置在该待监测服务节点中的状态采集器未发送其节点状态信息。相应的,如果待监测服务节点工作正常,状态采集器可以获取该待监测服务节点的节点状态信息;如果待监测服务节点工作不正常,状态采集器将不能获取该待监测服务节点的节点状态信息。利用节点状态信息的传输情况来表征待监测服务节点是否工作正常,可以进一步简化状态决策器的判断过程,提高状态监测系统的工作效率。
需要特别指出的是,状态决策器可以根据预设时间间隔主动向消息中间件服务器拉取上述节点状态信息,也可以由消息中间件服务器根据预设时间间隔主动向状态决策器推送上述节点状态信息,本申请对此不作限制。
在一个实施方式中,节点状态信息中还可以包括待监测服务节点的CPU负载、内存负载和可用带宽等信息,以使得状态决策器后续可以根据上述CPU负载、内存负载和可用带宽等信息,动态调整各个待监测服务节点的负载情况,实现整个服务节点集群的负载均衡。
在一个实施方式中,当状态采集器获取到待监测服务节点的节点状态信息后,状态采集器还可以采用特定封装格式,例如JSON(JavaScript Object Notation)格式,对上述节点状态信息进行封装,以进一步减少字符冗余,提高节点状态信息的传输效率。在另一个实施方式中,状态采集器还可以对上述节点状态信息进行加密,以提高节点状态信息的安全性,相应的,当状态决策器接收到加密的节点状态信息后,还需要对上述节点状态信息进行解密,加解密方法可以采用现有的技术,本申请对此不作限制。
在一个实施方式中,状态监测系统还可以采用令牌(Token)机制,例如JWT(JSONWeb Token)机制,对节点状态信息进行认证。当状态决策器接收到节点状态信息之后,状态决策器可以判断上述节点状态信息中是否携带有令牌,若携带有令牌,则可以通过效验令牌中的字段是否有缺失、字段属性是否一致等方式,验证上述令牌的合法性。如果经过验证,上述令牌是合法的,状态决策器再对上述节点状态信息进行下一步处理;如果上述节点状态信息中没有携带令牌,或者经过验证,上述令牌是非法的,状态决策器将丢弃上述节点状态信息。
在一个实施方式中,当状态决策器识别出上述节点状态信息中携带的目标节点标识之后,状态决策器可以将上述节点状态信息封装为目标节点消息对象,并根据上述目标节点标识进行hash一致算法,将上述目标节点消息对象放入与上述目标节点标识相对应的目标节点处理线程中,以使得上述目标节点处理线程可以根据上述目标节点标识,判断与上述目标节点标识相绑定的目标上下文信息是否存在。
S102:判断与所述目标节点标识相绑定的目标上下文信息是否存在,若所述目标上下文信息存在,更新所述目标上下文信息中的状态参数和异常计数值;若所述目标上下文信息不存在,创建与所述目标节点标识相绑定的所述目标上下文信息,并设置创建的所述目标上下文信息中的状态参数和异常计数值。
在本实施方式中,状态决策器储存有待监测服务节点的上下文信息,上述上下文信息可以与待监测服务节点的节点标识相绑定,以使得状态决策器可以通过节点标识查询到与上述节点标识相对应的上下文信息。当状态决策器识别出目标节点标识后,可以在储存的上下文信息中查询与上述目标节点标识相绑定的目标上下文信息,如果状态决策器查询到目标上下文信息,则可以判断上述目标上下文信息存在,此时状态决策器可以更新上述目标上下文信息中的状态参数和异常计数值,从而实现对目标服务节点工作状态的管理。
在一个实施方式中,更新上述目标上下文信息中的状态参数和异常计数值可以包括:将目标上下文信息中的状态参数设置为正常,并将目标上下文信息中的异常计数值设置为零。需要特别指出的是,上述将状态参数设置为正常,以及将异常计数值设置为零只是示意性的,并不是对本申请的限制,基于本申请的思想,本领域的技术人员也可以采用其它表达方式对状态参数,以及异常计数值进行设置。
在实际应用中,某一个待监测服务节点可能第一次接入状态监测系统,或者某一个待监测服务节点之前出现故障,经过恢复后重新接入状态监测系统,或者状态决策器故障,导致部分上下文信息丢失。在上述情况下,状态决策器识别出目标节点标识后,可能无法在储存的上下文信息中查询到与上述目标节点标识相绑定的目标上下文信息,状态决策器将判断上述目标上下文信息不存在,此时状态决策器可以创建与上述目标节点标识相绑定的目标上下文信息,并设置创建的上述目标上下文信息中的状态参数和异常计数值。
在一个实施方式中,设置创建的上述目标上下文信息中的状态参数和异常计数值可以包括:将目标上下文信息中的状态参数设置为正常,并将目标上下文信息中的异常计数值设置为零。同样的,上述将状态参数设置为正常,以及将异常计数值设置为零只是示意性的,并不是对本申请的限制,基于本申请的思想,本领域的技术人员也可以采用其它表达方式对状态参数,以及异常计数值进行设置。
请一并参阅图3和图4,图3为本申请实施方式二中节点状态判断方法的流程图,所述方法应用于状态决策器中,所述状态决策器中储存有目标上下文信息,所述方法可以包括以下步骤。
S201:当所述目标上下文信息中的定时检测程序启动时,生成目标节点检测信息,所述目标节点检测信息中携带有所述目标节点标识。
在本实施方式中,目标上下文信息中设置有定时检测程序,上述定时检测程序可以根据预设时间间隔,生成目标节点检测信息,其中,上述目标节点监测信息中携带有与目标上下文信息相绑定的目标节点标识,上述目标节点标识可以表征待监测的目标节点。
需要特别指出的是,在设置定时检测程序中的时间间隔时,需要考虑状态决策器获取节点状态信息的时间间隔,在实际应用中,定时检测程序中的时间间隔一般设置为大于状态决策器获取节点状态信息的时间间隔。如果定时检测程序中的时间间隔小于或者等于状态决策器获取节点状态信息的时间间隔,可能会导致上下文信息频繁更新,不能达到定时检测目标节点工作状态的目的。
例如,如果将状态决策器获取节点状态信息的时间间隔设置为5分钟,定时检测程序中的时间间隔设置为3分钟,可能会出现如下情况:状态决策器在获取到节点状态信息后,将相应的目标节点的状态参数设置为正常,异常计数值设置为零,3分钟后,状态决策器根据目标节点检测信息将上述目标节点的状态参数设置为正常,异常计数值设置为1,2分钟后,状态决策器再次获取到节点状态信息,并将上述目标节点的状态参数设置为正常,异常计数值设置为零,1分钟后,状态决策器将再次根据目标节点检测信息将上述目标节点的状态参数设置为正常,异常计数值设置为1。显然,这种频繁更新上下文信息,不仅会增加状态决策器的负载,而且会导致状态决策器对目标节点的定时检测没有意义。
S202:查询与所述目标节点标识相绑定的目标上下文信息,并识别所述目标上下文信息中的状态参数,若所述状态参数表征正常,将所述目标上下文信息中的异常计数值设置为当前值与指定正整数之和。
在本实施方式中,状态决策器可以将上述目标节点检测信息封装为目标节点检测消息对象,并根据上述目标节点标识进行hash一致算法,将上述目标节点检测消息对象放入与上述目标节点标识相对应的目标节点检测处理线程中,以使得上述目标节点检测处理线程可以根据上述目标节点标识,查询与上述目标节点标识相绑定的目标上下文信息。需要特别指出的是,上述目标节点检测处理线程与前文的目标节点处理线程是两个并行的业务线程,它们互不干涉,彼此独立运行。
当状态决策器查询到上述目标上下文信息后,可以识别上述目标上下文信息中的状态参数,如果上述状态参数表征为正常,状态决策器可以将上述目标上下文信息中的异常计数值设置为当前值与指定正整数之和。例如,目标上下文信息中的异常计数值的当前值为1,指定正整数为1,则状态决策器可以将该上下文信息中的异常计数值修改为2。
在一个实施方式中,当状态决策器识别上述目标上下文信息中的状态参数表征为正常,并将目标上下文信息中的异常计数值设置为当前值与指定正整数之和后,状态决策器还可以进一步判断上述重新设置后的异常计数值是否大于或者等于预设值。如果上述重新设置后的异常计数值大于或者等于上述预设值,状态决策器可以将上述目标上下文信息中的状态参数修改为异常,并将上述异常计数值设置为零;如果上述重新设置后的异常计数值小于上述预设值,状态决策器可以结束本次检测过程,并等待目标上下文信息中的定时检测程序开启下一次检测过程。
需要特别指出的是,由于状态决策器获取到目标节点的节点状态信息后,目标上下文信息中的异常计数值将设置为零,因此异常计数值可以表征状态决策器未能获取到目标节点的节点状态信息的次数,当异常计数值累加到一定次数(即预设值)时,状态决策器可以判断上述目标节点工作异常,并将目标上下文信息中的状态参数设置为异常。
在一个实施方式中,当状态决策器识别上述目标上下文信息中的状态参数表征为异常时,状态决策器还可以记录当前时间戳,并向控制中心发送目标节点服务异常警告,以提醒运维人员目标节点工作异常,需要对其进行维护。
在另一个实施方式中,当状态决策器识别上述目标上下文信息中的状态参数表征为异常,并记录当前时间戳后,还可以进一步判断上述当前时间戳与上次识别状态参数表征为异常时记录的时间戳之间的差值是否大于或者等于规定值,若上述差值大于或者等于规定值,则向控制中心发送目标节点服务异常警告。例如,假设状态决策器本次识别状态参数表征为异常时记录的时间值为10:05,状态决策器上一次识别状态参数表征为异常时记录的时间值为08:25,规定值设置为60分钟,显然,两次识别状态参数表征为异常的时间差为100分钟,大于规定值60分钟,则状态决策器将向控制中心发送目标节点服务异常警告。需要特别指出的是,如果两次识别状态参数表征为异常的时间差小于规定值,状态决策器可以不向控制中心发送目标节点服务异常警告,而是结束本次检测过程,并等待目标上下文信息中的定时检测程序开启下一次检测过程。
请参阅图5,本申请还提供一种状态决策器,所述状态决策器包括:
信息接收模块,用于获取节点状态信息,并识别所述节点状态信息中携带的目标节点标识;
上下文判断模块,用于判断与所述目标节点标识相绑定的目标上下文信息是否存在;
上下文执行模块,用于若所述目标上下文信息存在,更新所述目标上下文信息中的状态参数和异常计数值,以及,
若所述目标上下文信息不存在,创建与所述目标节点标识相绑定的所述目标上下文信息,并设置创建的所述目标上下文信息中的状态参数和异常计数值。
在一个实施方式中,上述更新所述目标上下文信息中的状态参数和异常计数值包括:将所述目标上下文信息中的状态参数设置为正常,并将所述目标上下文信息中的异常计数值设置为零。上述设置创建的所述目标上下文信息中的状态参数和异常计数值包括:将所述目标上下文信息中的状态参数设置为正常,并将所述目标上下文信息中的异常计数值设置为零。
在一个实施方式中,上述状态决策器还包括:
定时检测模块,用于当所述目标上下文信息中的定时检测程序启动时,生成目标节点检测信息,所述目标节点检测信息中携带有所述目标节点标识。
在一个实施方式中,上述上下文执行模块,还用于查询与所述目标节点标识相绑定的目标上下文信息,并识别所述目标上下文信息中的状态参数,若所述状态参数表征正常,将所述目标上下文信息中的异常计数值设置为当前值与指定正整数之和,以及,判断所述异常计数值是否大于或者等于预设值,若所述异常计数值大于或者等于所述预设值,将所述目标上下文信息中的状态参数设置为异常。
请参阅图6,本申请还提供一种状态决策器,所述状态决策器包括存储器和处理器,所述存储器用于存储计算机程序,当所述计算机程序被所述处理器执行时,可以实现如上述的节点状态判断方法。具体地,在硬件层面,该状态决策器可以包括处理器、内部总线和存储器。所述存储器可以包括内存以及非易失性存储器。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行。本领域普通技术人员可以理解,图6所示的结构仅为示意,其并不对上述识别装置的结构造成限定。例如,所述状态决策器还可包括比图6中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如GPU(Graphics ProcessingUnit,图像处理器),或者对外通信端口等。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等。
本实施方式中,所述的处理器可以包括中央处理器(CPU)或图形处理器(GPU),当然也可以包括其他的具有逻辑处理能力的单片机、逻辑门电路、集成电路等,或其适当组合。本实施方式所述的存储器可以是用于保存信息的记忆设备。在数字系统中,能保存二进制数据的设备可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也可以为存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也可以叫存储器等。实现的时候,该存储器也可以采用云存储器的方式实现,具体实现方式,本说明书不做限定。
需要说明的是,本说明书中的状态决策器,具体的实现方式可以参照方法实施方式的描述,在此不作一一赘述。
请一并参阅图7和图8,本申请还提供一种节点状态采集方法,所述方法应用于状态采集器中,所述方法可以包括一下步骤。
S301:获取节点的节点配置信息。
在本实施方式中,状态采集器可以获取与其连接的待监测服务节点的配置信息,上述节点配置信息可以为一个字段,例如“isSelfDevelop=true/no”,上述配置信息可以通过配置管理中心(例如Apollp)下发至待监测服务节点,或者以本地文件的形式,供状态采集器启动时加载,本申请对此不作限制。
S302:根据所述节点配置信息判断所述节点的类型,并根据与所述类型相绑定的信息获取策略,获取所述节点的节点状态信息。
在实际应用中,待监测服务节点可以为自研组件,也可以为第三方组件。在本实施方式中,状态采集器可以根据上述配置信息判断待监测服务节点的类型,例如isSelfDevelop=true,表示该待监测服务节点为自研节点;isSelfDevelop=no,表示该待监测服务节点为第三方节点。
在一个实施方式中,当待监测服务节点为自研组件时,可以在状态采集器中设置jar包,自研组件可以引用并启动上述jar包,以使得状态采集器和自研组件处于同一工作进程。如果上述工作进程可以正常运行,则表示状态采集器和自研组件同时处于正常工作状态,状态采集器可以获取上述自研组件的节点状态信息;如果上述工作进程不能正常运行,则表示状态采集器和/或自研组件处于异常工作状态,状态采集器无法获取上述自研组件的节点状态信息。
在一个实施方式中,当待监测服务节点为第三方组件时,状态采集器无法直接获取第三方组件的工作状态,状态采集器需要对第三方组件做进一步处理,以获取上述第三方组件的节点状态信息。具体的,状态采集器可以执行shell命令,例如,
#!/bin/bash
proc_name="nameSvr"
proc_id=$(ps-ef|grep$proc_name|grep-v grep|awk'{print$2}')
echo${proc_id[@]}
查看上述第三方节点是否存在进程信息,如果上述第三方节点存在相应的进程信息,状态采集器可以判断上述第三方节点工作正常,状态采集器可以获取上述第三方组件的节点状态信息;如果上述第三方节点不存在相应的进程信息,状态采集器可以判断上述第三方节点工作异常,状态采集器将停止检测上述第三方节点的工作状态。
在一个实施方式中,当状态采集器获取到待监测服务节点的节点状态信息后,状态采集器还可以向消息中间件服务器发送上述节点状态信息,并根据消息中间件服务器反馈的回执信息,判断上述节点状态信息是否发送成功,如果上述节点状态信息发送失败,状态采集器可以再次向上述消息中间件服务器发送上述节点状态信息。
在一个实施方式中,如果上述节点状态信息发送失败,状态采集器还可以进一步判断上述节点状态信息的发送次数是否小于或者等于阈值。如果上述发送次数小于或者等于阈值,状态采集器可以再次向上述消息中间件服务器发送上述节点状态信息;如果上述发送次数大于阈值,状态采集器可以丢弃上述节点状态信息,并在一定时间间隔后,重新检测与其连接的待监测服务节点的工作状态。
需要特别指出的是,当消息中间件服务器接收并储存节点状态信息后,消息中间件服务器可以根据预设时间间隔主动向状态决策器推送上述节点状态信息,也可以由状态决策器根据预设时间间隔主动向消息中间件服务器拉取上述节点状态信息,本申请对此不作限制。
在一个实施方式中,当状态采集器获取到待监测服务节点的节点状态信息后,状态采集器还可以采用特定封装格式,例如JSON(JavaScript Object Notation)格式,对上述节点状态信息进行封装,以进一步减少字符冗余,提高节点状态信息的传输效率。在另一个实施方式中,状态采集器还可以对上述节点状态信息进行加密,以提高节点状态信息的安全性,相应的,当状态决策器接收到加密的节点状态信息后,还需要对上述节点状态信息进行解密,加解密方法可以采用现有的技术,本申请对此不作限制。
在一个实施方式中,状态监测系统还可以采用令牌(Token)机制,例如JWT(JSONWeb Token)机制,对节点状态信息进行认证。状态采集器可以从状态决策器获取令牌,并将上述令牌放入节点状态信息中,以使得状态决策器在接收到上述节点状态信息之后,可以对节点状态信息进行认证。
需要特别指出的是,节点状态信息中还可以包括待监测服务节点的CPU负载、内存负载和可用带宽等信息,以使得状态决策器后续可以根据上述CPU负载、内存负载和可用带宽等信息,动态调整各个待监测服务节点的负载情况,实现整个服务节点集群的负载均衡。
本申请还提供一种状态采集器,所述状态采集器包括:
信息采集模块,用于获取节点的节点配置信息;
节点判断模块,用于根据所述节点配置信息判断所述节点的类型,并根据与所述类型相绑定的信息获取策略,获取所述节点的节点状态信息。
在一个实施方式中,上述状态采集器还包括:
信息发送模块,用于向消息中间件服务器发送所述节点状态信息,并根据所述消息中间件服务器反馈的回执信息,判断所述节点状态信息是否发送成功,若所述节点状态信息发送失败,则再次向所述消息中间件服务器发送所述节点状态信息。
在一个实施方式中,上述与所述类型相绑定的信息获取策略包括:
当所述节点为自研节点时,获取所述自研节点的节点状态信息;
当所述节点为第三方节点时,判断所述第三方节点是否存在进程信息,若所述进程信息存在,获取所述第三方节点的节点状态信息。
在一个实施方式中,上述信息发送模块,还用于判断所述节点状态信息发送次数是否小于或者等于阈值,若所述发送次数小于或者等于所述阈值,则再次向所述消息中间件服务器发送所述节点状态信息;若所述发送次数大于所述阈值,则丢弃所述节点状态信息。
本申请还提供一种状态采集器,所述状态采集器包括存储器和处理器,所述存储器用于存储计算机程序,当所述计算机程序被所述处理器执行时,可以实现如上述的节点状态采集方法。
需要说明的是,本说明书中的状态采集器,具体的实现方式可以参照方法实施方式的描述,在此不作一一赘述。
由此可见,本申请提供的技术方案,将获取待监测服务节点的工作状态划分为“状态采集”和“状态决策”两个过程,其中“状态采集”过程由状态采集器实现,“状态决策”过程由状态决策器完成,状态采集器通过基于消息中间件服务器实现的通信协议,将待监测服务节点的工作状态上报至状态决策器,状态决策器根据各个状态采集器的汇报结果,可以获取并管理所有待监测服务节点的工作状态。本申请提供的技术方案,通过在待监测服务节点中设置状态采集器的方式,无需针对待监测服务节点做过多配置,就可以将待监测服务节点接入状态监测系统,提高了状态监测系统部署的灵活性,并且状态采集器既可以监测自研组件的工作状态,还可以监测第三方组件的工作状态,扩大了状态监测系统的使用范围。同时通过使用消息中间件服务器作为信息传输的中介,并采用自定义通信协议,可以对外隐藏待监测服务节点的通信端口,进一步提高待监测服务节点和状态监测系统的安全性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种节点状态判断方法,其特征在于,所述方法应用于状态决策器中,所述方法包括:
获取节点状态信息,并识别所述节点状态信息中携带的目标节点标识;
判断与所述目标节点标识相绑定的目标上下文信息是否存在,若所述目标上下文信息存在,更新所述目标上下文信息中的状态参数和异常计数值;
若所述目标上下文信息不存在,创建与所述目标节点标识相绑定的所述目标上下文信息,并设置创建的所述目标上下文信息中的状态参数和异常计数值。
2.根据权利要求1所述的方法,其特征在于,
更新所述目标上下文信息中的状态参数和异常计数值包括:将所述目标上下文信息中的状态参数设置为正常,并将所述目标上下文信息中的异常计数值设置为零;
设置创建的所述目标上下文信息中的状态参数和异常计数值包括:将所述目标上下文信息中的状态参数设置为正常,并将所述目标上下文信息中的异常计数值设置为零。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述目标上下文信息中的定时检测程序启动时,生成目标节点检测信息,所述目标节点检测信息中携带有所述目标节点标识;
查询与所述目标节点标识相绑定的目标上下文信息,并识别所述目标上下文信息中的状态参数,若所述状态参数表征正常,将所述目标上下文信息中的异常计数值设置为当前值与指定正整数之和。
4.根据权利要求3所述的方法,其特征在于,在将所述目标上下文信息中的异常计数值设置为当前值与指定正整数之和后,所述方法还包括:
判断所述异常计数值是否大于或者等于预设值,若所述异常计数值大于或者等于所述预设值,将所述目标上下文信息中的状态参数设置为异常。
5.根据权利要求3所述的方法,其特征在于,若所述状态参数表征异常,所述方法还包括:
记录当前时间戳,并向控制中心发送目标节点服务异常警告;或者,
记录当前时间戳,并判断所述当前时间戳与上次识别所述状态参数为异常时记录的时间戳之间的差值是否大于或者等于规定值,若所述差值大于或者等于所述规定值,向控制中心发送目标节点服务异常警告。
6.根据权利要求1所述的方法,其特征在于,在接收节点状态信息之后,所述方法还包括:
判断所述节点状态信息中是否携带有令牌,若携带有所述令牌,验证所述令牌的合法性;
若没有携带所述令牌,丢弃所述节点状态信息。
7.根据权利要求1所述的方法,其特征在于,在识别所述节点状态信息中携带的目标节点标识之后,所述方法还包括:
将所述节点状态信息封装为目标节点消息对象,并将所述目标节点消息对象放入与所述目标节点标识相对应的目标节点处理线程中,以使得所述目标节点处理线程判断与所述目标节点标识相绑定的目标上下文信息是否存在。
8.一种状态决策器,其特征在于,所述状态决策器包括:
信息接收模块,用于获取节点状态信息,并识别所述节点状态信息中携带的目标节点标识;
上下文判断模块,用于判断与所述目标节点标识相绑定的目标上下文信息是否存在;
上下文执行模块,用于若所述目标上下文信息存在,更新所述目标上下文信息中的状态参数和异常计数值,以及,
若所述目标上下文信息不存在,创建与所述目标节点标识相绑定的所述目标上下文信息,并设置创建的所述目标上下文信息中的状态参数和异常计数值。
9.一种状态决策器,其特征在于,所述状态决策器包括存储器和处理器,所述存储器用于存储计算机程序,当所述计算机程序被所述处理器执行时,实现如权利要求1至7中任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910715085.4A CN110519337B (zh) | 2019-08-05 | 2019-08-05 | 一种节点状态判断、采集方法及状态决策器、状态采集器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910715085.4A CN110519337B (zh) | 2019-08-05 | 2019-08-05 | 一种节点状态判断、采集方法及状态决策器、状态采集器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110519337A CN110519337A (zh) | 2019-11-29 |
CN110519337B true CN110519337B (zh) | 2022-05-17 |
Family
ID=68624943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910715085.4A Active CN110519337B (zh) | 2019-08-05 | 2019-08-05 | 一种节点状态判断、采集方法及状态决策器、状态采集器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110519337B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111311911B (zh) * | 2020-02-24 | 2022-02-18 | 武汉中科通达高新技术股份有限公司 | 一种用于电子警察系统的数据管理方法、装置及电子设备 |
CN113315676B (zh) * | 2021-05-20 | 2022-11-04 | 北京达佳互联信息技术有限公司 | 一种断链检测的方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109586969A (zh) * | 2018-12-13 | 2019-04-05 | 平安科技(深圳)有限公司 | 内容分发网络容灾方法、装置、计算机设备及存储介质 |
CN109714239A (zh) * | 2018-12-27 | 2019-05-03 | 新华三技术有限公司 | 一种管理消息的下发方法、vnfm设备和服务器 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7324489B1 (en) * | 2003-02-18 | 2008-01-29 | Cisco Technology, Inc. | Managing network service access |
CN101998248A (zh) * | 2009-08-20 | 2011-03-30 | 华为技术有限公司 | 多播组播广播业务中上下文信息的处理方法及装置 |
CN105872118A (zh) * | 2015-11-25 | 2016-08-17 | 乐视云计算有限公司 | Dns网络中节点服务器的检测方法及设备 |
CN105516086B (zh) * | 2015-11-25 | 2019-06-07 | 广州华多网络科技有限公司 | 业务处理方法及装置 |
US10469281B2 (en) * | 2016-09-24 | 2019-11-05 | Apple Inc. | Generating suggestions for scenes and triggers by resident device |
US10849186B2 (en) * | 2017-01-09 | 2020-11-24 | Huawei Technologies Co., Ltd. | System and methods for session management |
CN109697480B (zh) * | 2017-10-23 | 2022-06-03 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及系统 |
CN107612787B (zh) * | 2017-11-06 | 2021-01-12 | 南京易捷思达软件科技有限公司 | 一种基于Openstack开源云平台的云主机故障检测方法 |
-
2019
- 2019-08-05 CN CN201910715085.4A patent/CN110519337B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109586969A (zh) * | 2018-12-13 | 2019-04-05 | 平安科技(深圳)有限公司 | 内容分发网络容灾方法、装置、计算机设备及存储介质 |
CN109714239A (zh) * | 2018-12-27 | 2019-05-03 | 新华三技术有限公司 | 一种管理消息的下发方法、vnfm设备和服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN110519337A (zh) | 2019-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107947960B (zh) | 配置信息的推送方法及系统、配置信息的接收方法及系统 | |
US11706102B2 (en) | Dynamically deployable self configuring distributed network management system | |
US10917322B2 (en) | Network traffic tracking using encapsulation protocol | |
CN109714192B (zh) | 一种监控云平台的监控方法及系统 | |
CN107465767B (zh) | 一种数据同步的方法和系统 | |
US10785255B1 (en) | Cluster configuration within a scalable malware detection system | |
US10671721B1 (en) | Timeout management services | |
US11716256B2 (en) | Intent execution method and apparatus | |
CN114124451B (zh) | 一种物联网设备数据处理方法、系统及计算机存储介质 | |
CN109960634B (zh) | 一种应用程序监控方法、装置及系统 | |
US20200287920A1 (en) | Endpoint network traffic analysis | |
CN110830283B (zh) | 故障检测方法、装置、设备和系统 | |
CN110519337B (zh) | 一种节点状态判断、采集方法及状态决策器、状态采集器 | |
KR101211207B1 (ko) | 캐시 클라우드 구조를 이용한 캐시 시스템 및 캐싱 서비스 제공 방법 | |
US20180324063A1 (en) | Cloud-based system for device monitoring and control | |
US9122546B1 (en) | Rapid processing of event notifications | |
CN116886286A (zh) | 大数据认证服务自适应方法、装置和设备 | |
US9967163B2 (en) | Message system for avoiding processing-performance decline | |
CN108400897B (zh) | 网络安全配置方法及装置 | |
CN114900449A (zh) | 一种资源信息管理方法、系统及装置 | |
US11223578B2 (en) | System and control method to direct transmission of event data to one of a plurality of reception queues | |
CN114116178A (zh) | 集群框架任务管理方法以及相关装置 | |
EP3756310B1 (en) | Method and first node for managing transmission of probe messages | |
CN110912997B (zh) | 一种三角组网Loopback接口的检查方法及装置 | |
CN114827086B (zh) | 一种探测ip发现方法、装置、设备及存储介质 |
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 |