比如有很多设备,要检测在线设备数,设备通过 mqtt 或者 5 分钟发一次心跳,有些设备突然断电等情况可能不会发送离线消息。 现在有什么好的开源设备活跃库吗
1
xcstream 2020-04-16 16:13:59 +08:00
后台接受到心跳,直接往时序数据库里写就完事了
|
2
excxapp OP @xcstream 时序数据库写入但是需要告警机制,比如超过 5 分钟离线发送消息检测。
我时序用的是 influxfb 。 如果设备少的话还好,如果设备多,要经常 select 这种吗? 现在 github 里面不知道有没有针对这种保活的开源软件。 |
3
shaopu 2020-04-16 16:59:53 +08:00
可以参考阿里和小米是怎么弄的~
|
4
mango88 2020-04-16 17:01:23 +08:00
MQTT 不是有遗嘱消息的支持吗
|
5
excxapp OP |
6
HHBilly 2020-04-16 18:07:11 +08:00
@excxapp 在建立连接的时候设置 keepalive 心跳时间就行 突然断开后会如果在心跳时间内没重新连上 就会自动发送遗嘱消息
|
7
mango88 2020-04-16 18:41:41 +08:00
|
9
iRiven 2020-04-16 19:52:59 +08:00
判断设备是否出现异常离线直接查看最后一次更新数据的时间,不要去维护多余的状态。
|
10
Oktfolio 2020-04-16 19:57:58 +08:00
最后上报时间
|
11
xcstream 2020-04-16 23:34:55 +08:00
用 redis
只统计数量的话可以 incr #key# key 就是类似 yyyy-MM-dd hh:( mm - mm%5) 统计每个设备可以 hset #key# #deviceid# |
12
thomaspaine 2020-04-17 02:54:26 +08:00
你也没说场景
开源服务 edgex,里面也有健康监测,你可以关注下 另外从硬件上面来说,你可以加装超级电容或者纽扣电池,如果是用这种设备供电就发异常信息,然后关机。超级电容可以撑 5 秒吧至少。就是需要修改设备程序了。 |
13
zexinwu84 2020-04-17 09:09:20 +08:00 via Android
规则引擎
|
15
excxapp OP 需求:设备在线 /离线 /活跃度(交互次数等)状态监控,设备异常状态告警
|
16
lzyliangzheyu 2020-04-17 10:03:23 +08:00
遗嘱消息类似于诸葛亮给刘备的锦囊妙计,服务端一段时间收不到消息之后就会打开这个锦囊(遗嘱消息)
|
17
lzyliangzheyu 2020-04-17 10:04:51 +08:00
遗嘱消息是刚建立连接客户端就会发给服务端的,但是服务端只是把他收着,等到设备失联了才把遗嘱消息生效
|
18
excxapp OP @lzyliangzheyu 有些设备不一定易是 mqtt 连接的,有可能是通过队列连接的第三方
|
19
huruwo 2020-04-17 10:36:05 +08:00
坏消息是没有
好消息是大家有这个需求,你可以开始做一点微小的贡献给开源社区了 |