物联网的技术方案都有哪些?刚入行

2022-03-16 13:54:44 +08:00
 HHAO2019

我们目前设备不多。数据流程如下:

遇到的问题是:java 程序挂掉,数据就丢失了,这里如何做高可用?

2300 次点击
所在节点    物联网
13 条回复
villivateur
2022-03-16 13:59:38 +08:00
你不如去解决下为什么 Java 会挂掉。

另外物联网设备自己可以在本地做缓存
cat007
2022-03-16 14:01:04 +08:00
做高可用就不会挂掉了
HHAO2019
2022-03-16 14:11:05 +08:00
@villivateur java 用的库是这个 Eclipse Paho Java Client ,经常 mqtt 断连 。重连机制一直在调试,最近几天好点了
HHAO2019
2022-03-16 14:14:48 +08:00
@villivateur 我看挺多同行都自己研发了个通讯管理机做边缘计算,感觉那样会更稳
HHAO2019
2022-03-16 14:44:56 +08:00
@cat007 主要是 java 服务订阅一个主题,如果订阅连接断了,重连也失败了,如何做高可用?我试过 system.exit 然后触发 docker 重启。
mlhorizon
2022-03-16 15:23:05 +08:00
高可用就是不让这个程序挂掉。
物联网设备本地缓存一般只对断网情况做缓存,它是没法知道数据消费者挂掉的。
HHAO2019
2022-03-16 16:09:11 +08:00
@mlhorizon 是的 ,我可能说错了,我的意思是如何让消费者的连接断了能快速回复。或者我目前做的是不是错的方法?在物联网行业中如何保证录入数据的高可用性?
cat007
2022-03-16 18:37:36 +08:00
@HHAO2019 应该解决订阅为什么会断掉吧,如:网络不稳定、被别的客户端挤下线了
paradoxs
2022-03-16 19:01:40 +08:00
呵呵,既然你的 java 程序经常要挂,那我推荐你把 Influxdb 的数据持久化。
HHAO2019
2022-03-16 19:04:38 +08:00
@paradoxs java 程序做解析,然后就直接 influxdb 持久化了。 我说错了,不是程序挂了,是订阅 emqx 的连接挂了,不好意思。我也不知道业内的逻辑是怎么样的,所以上来问问看我目前做的是不是有更好的解决方案
paradoxs
2022-03-16 19:39:44 +08:00
打开 emq 后台,找到插件,然后把 emqx_web_hook EMQ X WebHook Plugin 这个打开。

vim etc/plugins/emqx_web_hook.conf , 把里面的链接换成你 java 程序监听的地址。

重启一下 emqx ,然后在 java 里面就可以监听到断链的消息。

后面再操作一下重新链接
IfEles
2022-04-07 22:58:55 +08:00
@HHAO2019 mqtt 断开,有几种可能,你设备端的 clientId 重复,还有可能是你的 java 程序消费没有生产的速度快,导致 mq 队列积压阻塞,然后 mqtt 会断开,你可以排查一下程序经常断开的原因
yzqdm
350 天前
请教一下监控设备上下线有什么方案吗,设备掉线推送这种的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/840738

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX