心跳机制

一句话定义

心跳机制是设备按固定间隔向服务器发送在线信号,服务器据此判断设备是否在线、是否需要告警。

它解决什么问题

食堂里有几十台设备分布在各个窗口,管理员不可能一台台去看。心跳机制让设备主动报到:每隔一段时间发一个很小的数据包告诉服务器「我还在」。

服务器维护一张设备状态表,超过设定时间没收到心跳,就把这台设备标成离线并触发告警。这样网线被拔、设备断电、网络故障,都能在几分钟内被发现,而不是等到饭点排长队才有人报修。

心跳间隔怎么定

间隔太短:每台设备频繁发小包,网络和服务器的负担都被放大,几十台设备时问题不大,几百台时会明显。

间隔太长:设备真离线了也要等很久才发现,影响响应速度。

常见取值是 30 秒到 5 分钟。经验规则:

食堂高峰场景(设备多、不能停)—— 取 30 秒到 1 分钟,快速发现;

一般门禁点位 —— 取 1–3 分钟;

偏远低功耗点位 —— 可以放宽到 5 分钟以上,省流量。

另外,断网期间设备不会一直傻等,通常会自动缩短重连间隔(比如从 5 分钟缩短到 10 秒),尽快恢复连接。

告警阈值怎么设

不是一次心跳没收到就告警,要设一个容错次数,避免网络瞬时抖动造成误报。

常见做法:连续漏 3 次心跳才判离线。如果心跳间隔是 1 分钟,那就是连续 3 分钟收不到才告警。

更细的做法是分两级:

预警 —— 漏 2 次,先记录,不打扰人;

告警 —— 漏 3 次以上,推送微信/短信给运维。

恢复时也要做「恢复通知」,否则运维不知道问题已经解决了。

心跳能判断什么、不能判断什么

故障类型心跳能否发现说明
设备断电能心跳中断
网线被拔、网络故障能心跳中断
设备死机能心跳中断
读卡模块坏了不能心跳正常,但刷不了卡
屏幕坏了不能心跳正常,但看不见
语音不响不能心跳正常

所以心跳只是通讯层面的存活检测,不能替代现场巡查和业务层面的监控(比如「今天这台设备一笔消费都没有」这种异常判断)。

国万设备怎么用

国万消费机与门禁终端均支持心跳上报,管理平台可查看每台设备的在线状态、最后心跳时间、软件版本。

在此基础上还可叠加业务层告警:某台设备超过设定时长没有任何消费记录、连续出现多次读卡失败、脱网记账 条数异常增长 —— 这些都能作为运维信号,比单纯的心跳更有价值。