物联网的技术方案都有哪些?刚入行 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
HHAO2019
V2EX    物联网

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

  •  
  •   HHAO2019 2022-03-16 13:54:44 +08:00 2913 次点击
    这是一个创建于 1393 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    • 1 硬件设备使用 485 线连接通讯设备(DTU),使用 4G 网络传输数据
    • 2 通讯设备吧数据传输到 EMQX
    • 3 Java 程序订阅 EMQX 主题,接受 16 进制数据,并做解析 /告警校验等,录入 Influxdb

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

    第 1 条附言    2022-03-18 14:28:17 +08:00
    仔细看了一下 emqx 的文档,使用规则引擎把数据通过 http 请求接口的形式解决了 java 客户端订阅总是断开的问题。
    13 条回复    2023-12-08 13:43:41 +08:00
    villivateur
        1
    villivateur  
       2022-03-16 13:59:38 +08:00 via Android
    你不如去解决下为什么 Java 会挂掉。

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

    后面再操作一下重新链接
    IfEles
        12
    IfEles  
       2022-04-07 22:58:55 +08:00   1
    @HHAO2019 mqtt 断开,有几种可能,你设备端的 clientId 重复,还有可能是你的 java 程序消费没有生产的速度快,导致 mq 队列积压阻塞,然后 mqtt 会断开,你可以排查一下程序经常断开的原因
    yzqdm
        13
    yzqdm  
       2023-12-08 13:4341 +08:00
    请教一下监控设备上下线有什么方案吗,设备掉线推送这种的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5859 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 02:14 PVG 10:14 LAX 18:14 JFK 21:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86