一种适用于分布式系统的节点服务监控系统及实现方法与流程

文档序号:12478494阅读:1147来源:国知局
一种适用于分布式系统的节点服务监控系统及实现方法与流程

本发明涉及分布式系统和监控技术领域,特别是一种适用于分布式系统的节点服务监控系统及实现方法。



背景技术:

分布式系统实现过程中,经常需要对各个分布式节点服务进行状态监控管理,以确保系统能够实时的掌握各个节点服务的运行情况,保证服务控制器能够将请求正确的转发到各个正常的节点服务进行处理。目前通常的监控方法为:监控端定时向各个被监控端发送网络包,通过节点服务的响应情况来判断各个服务的状态信息,然后更新到数据库进行保存。这种方法可行但是存在如下弊端:

1、监控数据量大。每个定时周期内,监控端和所有被监控端之间需要至少两次数据通信才能实现状态的实时更新。

2、数据库操作频繁。没有内存缓存机制带来所有数据都必须经过数据库操作才能获取,并且需要针对每一条数据库记录进行相应的轮询判断处理。

3、监控数据信息不对称。网络通信的延迟以及数据库操作的大负载很容易引起分布式节点服务的状态更新不及时,出现信息不对称现象。



技术实现要素:

本发明解决的技术问题之一在于提出了一种适用于分布式系统的节点服务监控系统,保证了分布式节点服务状态的实时性和准确性。

本发明解决的技术问题之二在于提出了一种适用于分布式系统的节点服务监控方法,保证了分布式节点服务状态的实时性和准确性。

本发明解决上述技术问题之一的技术方案是:

所述的系统包括服务控制器模块和节点服务两大模块;

所述节点服务模块分布在各个分布式节点,服务启动时读取配置文件并定时上报节点服务信息到所述服务控制器模块;

所述服务控制器模块进一步包括通信子模块、定时器子模块、内存缓存和数据库子模块;

所述通信子模块负责与所述节点服务模块通信,接受各节点服务的信息汇报并保存到内存缓存;

所述的内存缓存是指服务控制器在系统内存中开辟了一块内存空间,用以存放各个节点服务信息的结构化数据;

所述的定时器子模块读取并过滤内存缓存中的节点服务信息,调用数据库子模块读取数据库中节点服务状态信息;然后,同步内存缓存和数据库节点服务信息;

所述的数据库子模块负责数据库操作,包括:数据库对应表中节点服务信息的写入、读取和更新。

所述配置文件包括有服务控制器所在节点的主机名和通信服务IP地址。

所述的结构化数据是指包括节点名称和节点对象的结构数据;所述的节点对象进一步包括节点名称、节点IP、节点服务注册时间、节点服务更新时间、节点服务状态更新次数。

本发明解决上述技术问题之二的技术方案是:

所述的方法包括如下步骤:

(1)节点服务启动时读取配置文件并定时上报节点服务信息到所述服务控制器模块;

(2)通信子模块接受各节点服务的信息汇报并保存在内存缓存;

(3)控制定时器子模块读取并过滤内存缓存中的节点服务信息;

(4)控制定时器子模块调用数据库子模块读取数据库中节点服务信息;

(5)控制定时器子模块同步内存缓存和数据库节点服务信息。

所述的过滤内存缓存中的节点服务信息具体包括:

依次读取内存缓存中保存的各个节点服务信息;

判断节点服务更新时间与当前时间的差值是否满足服务更新超时时间;

移除服务更新超时的节点服务。

所述定时器子模块作为服务控制器模块中启动的一个定时线程,实现节点服务信息的读取、调用、同步。

由数据库子模块负责数据库操作,具体包括:

将节点服务信息写入数据库对应表中保存;

从数据库对应表中读取节点服务信息数据;

更新数据库对应表中的节点服务信息。

所述的同步内存缓存与数据库节点服务信息是指将过滤后的节点服务进一步与数据库中的节点服务信息进行同步,具体包括:

内存缓存有,数据库没有的,需要新增和修改为节点服务为连接状态;

数据库有,内存缓存没有的,需要修改为节点服务为失去连接状态。

本发明方案的有益效果如下:

1、本发明提供一种适用于分布式系统的节点服务监控方法,可以保证对分布式系统中分布式节点服务状态的实时性和准确性监控。

2、本发明的方法具有轻量级性和通用性,可以快速的集成到已存在的分布式系统服务中;避免了采用开源监控工具或者缓存工具所带来的复杂性。

3、本发明提供的服务监控方法架构更新颖。采用了一种逆向思维监控实现方法,被监控端主动汇报状态信息到监控端,监控端只需要定时维护本地内存缓存数据和数据库的同步即可;并且在同步的过程中采用先对缓存过滤后与数据库同步的方法来提高同步效率。

附图说明

下面结合附图对本发明进一步说明:

图1为本发明的流程图。

图2为本发明的架构图。

具体实施方式

本发明提出一种逆向的思维方法,采用被监控端主动定时向监控服务端汇报节点服务状态的形式,监控服务端通过内存缓存各节点上报的服务信息,然后利用定时线程并执行先过滤内存缓存内容、后同步数据库数据的方法来实现分布式系统中节点服务监控的实时性和正确性。

请参见图1、2,为本发明实施例所提供的一种适用于分布式系统的节点服务监控方法流程图。下面分别对其各个流程具体实现进行描述。

首先节点服务模块配置文件部分如下:

[root@gcloud51108~]#cat/etc/gcloud-appdeploy-node.cfg

#gcloud日志输出配置,debug是开发模式,release是生产模式

LOG_PROPERTIES=debug

#配置应用服务控制器节点名字

CONTROLLER_HOSTNAME=gcloud5161

#RabbitMq服务端通信IP

RABBITMQ_SERVER_IP=20.251.51.61

……

节点服务模块和服务控制器模块通信过程中共同使用的节点服务信息元数据结构定义:

服务控制器模块定义节点信息管理类,采用单例模式,节点服务信息都缓存在此单例对象中:

服务控制器模块的通信子模块主要负责与各个节点的通信,并将接受到的节点信息进行注册,保存到内存缓存中,具体定义如下:

接着定义本发明最重要的服务控制器定时器子模块:

以上描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出实质性创造所获得的方案,都属于本发明保护的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1