我们目前设备不多。数据流程如下:
遇到的问题是:java 程序挂掉,数据就丢失了,这里如何做高可用?
|  |      1villivateur      2022-03-16 13:59:38 +08:00 via Android 你不如去解决下为什么 Java 会挂掉。 另外物联网设备自己可以在本地做缓存 | 
|  |      2cat007      2022-03-16 14:01:04 +08:00 做高可用就不会挂掉了 | 
|  |      3HHAO2019 OP @villivateur java 用的库是这个 Eclipse Paho Java Client ,经常 mqtt 断连 。重连机制一直在调试,最近几天好点了 | 
|  |      4HHAO2019 OP @villivateur 我看挺多同行都自己研发了个通讯管理机做边缘计算,感觉那样会更稳 | 
|  |      5HHAO2019 OP @cat007 主要是 java 服务订阅一个主题,如果订阅连接断了,重连也失败了,如何做高可用?我试过 system.exit 然后触发 docker 重启。 | 
|  |      6mlhorizon      2022-03-16 15:23:05 +08:00 高可用就是不让这个程序挂掉。 物联网设备本地缓存一般只对断网情况做缓存,它是没法知道数据消费者挂掉的。 | 
|  |      7HHAO2019 OP @mlhorizon 是的 ,我可能说错了,我的意思是如何让消费者的连接断了能快速回复。或者我目前做的是不是错的方法?在物联网行业中如何保证录入数据的高可用性? | 
|  |      9paradoxs      2022-03-16 19:01:40 +08:00 呵呵,既然你的 java 程序经常要挂,那我推荐你把 Influxdb 的数据持久化。 | 
|  |      10HHAO2019 OP @paradoxs java 程序做解析,然后就直接 influxdb 持久化了。 我说错了,不是程序挂了,是订阅 emqx 的连接挂了,不好意思。我也不知道业内的逻辑是怎么样的,所以上来问问看我目前做的是不是有更好的解决方案 | 
|  |      11paradoxs      2022-03-16 19:39:44 +08:00  1 打开 emq 后台,找到插件,然后把 emqx_web_hook	EMQ X WebHook Plugin 这个打开。 vim etc/plugins/emqx_web_hook.conf , 把里面的链接换成你 java 程序监听的地址。 重启一下 emqx ,然后在 java 里面就可以监听到断链的消息。 后面再操作一下重新链接 | 
|  |      12IfEles      2022-04-07 22:58:55 +08:00  1 @HHAO2019 mqtt 断开,有几种可能,你设备端的 clientId 重复,还有可能是你的 java 程序消费没有生产的速度快,导致 mq 队列积压阻塞,然后 mqtt 会断开,你可以排查一下程序经常断开的原因 | 
|      13yzqdm      2023-12-08 13:43:41 +08:00 请教一下监控设备上下线有什么方案吗,设备掉线推送这种的 |