浅谈心跳检测机制

心跳检测是为了监视进程、服务等是否在线运行的一种方式,由客户端定时发送简单的信息给服务器端告诉它我还在而已。这里简单介绍几种实现方式。

1、利用系统命令检测进程是否在线

windows和linux上的命令不太一样。 windows上是tasklist,linux上是ps。这种方式简单,被监测的程序不需要做任何改动,只要服务端定时扫描即可。

缺点:只能在同一个机器上,不能判断程序是否假死状态。

2、利用共享内存方式

被监测程序定时修改相应的共享内存的数据(可以用时间戳),服务器端读取内存比对时间就行。

缺点:只能在同一个机器上。

3、利用socket套接字实现。(推荐)

这种方式是最常用的方式。被监测程序每隔几分钟发送一个固定信息给服务端,服务端收到后回复一个固定信息如果服务端几分钟内没有收到信息则断开。

缺点:被监测程序需要修改(对原来没有心跳检测机制的不友好),需要开通一个网络端口用于交互。 

优点:跨平台、跨机器。

4、利用已有第三方实现。

       1)利用redis的订阅发布,被监测程序定时发布,服务端订阅即可。

       2)利用数据库(redis也可以采用这种方法)。被监测程修改某个表的某个字段,服务端读取字段即可。

       如果已经有这些方式,这种实现也不错。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值