
比如有很多设备,要检测在线设备数,设备通过 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 坏消息是没有 好消息是大家有这个需求,你可以开始做一点微小的贡献给开源社区了 |