功能开发——实时监控远程设备资源消耗

首先来一张事后对业务总结的流程图:

 

大致业务介绍:

Web前端需要监控远程设备的资源消耗信息(CPU、内存、磁盘IO、网络IO),实现流程步骤如下:

1)TCP通知远程设备上报信息(CPU、内存、磁盘IO、网络IO)(前提是已经和远程设备进行了一个tcp长连接,有人会问为什么不直接使用tcp通道直接传输需要的信息,我的回答是目前公司TCP这个模块没有嵌入传输业务数据,功能单一化为指令传输)

2)远程设备收到通知后定时上报信息

3)API服务收到远程设备http上报的监控数据信息后,发布消息到Redis的订阅频道

4)TMS Web管理后台订阅Redis监控数据传输频道,收到订阅消息后,通过WebSocket通知前端页面展示对应监控数据

 

实践过程中遇到的问题:

1)如何终止远程设备上报,处理方案如下所述:

前端WebSocket建立连接后会定时发送一个ping消息,TMS Web管理后台收到ping消息后会在Redis中存储一个具有一定过期时间的key,API服务会在远程设备http上报监控数据时检查该key是否存在,如果不存在就响应远程设备停止上报。

2)前端页面离开当前标签页时如何关闭WebSocket,处理方案如下所述:

通过一个标识定时去轮序判断当前标签页是否需要WebSocket,如果不是,则关闭websocket,并且清除定时器

前端代码如下:

closeInterval=setInterval(function(){
			if($("#monitor").text()!='monitor'){
				if(websocket!=null){
					websocket.close();
				}
				clearInterval(pingInterval)
			}
		},1000);

 

后端业务逻辑代码后续补上......

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值