V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
coolair
V2EX  ›  问与答

面试问题求教:如何处理海量物联网设备数据(并发上报),如何处理与海量物联网设备通信?

  •  
  •   coolair · 2022-04-06 11:13:09 +08:00 · 1450 次点击
    这是一个创建于 961 天前的主题,其中的信息可能已经有所发展或是发生改变。
    13 条回复    2022-04-07 09:22:34 +08:00
    sss15
        1
    sss15  
       2022-04-06 13:55:53 +08:00   ❤️ 1
    海量物联网设备数据上报后是否需要计算,还是说只需记录。 讲道理真实环境中物联网数据上报后应该要计算的,数据的计算交给 flink 非常合适。
    首先做一个 api service ,只做一个事情就是接收数据上报,然后丢入 kafka 中,flink 消费 kafka 中的数据,按流式数据进行处理,可选的操作有开一个 24 小时的窗,求最大值最小值平均值,对异常数据进行报警,将原始数据 sink 到 es 中,将汇总数据 sink 到数据库中。
    kafka 和 flink 天生就是分布式,吞吐量没问题,所以现在整个系统的瓶颈可能就是,你的 api service 怎么接收海量的数据,能扛得住高并发。这个部分我也不是很熟悉,能优化的地方就是 kafka 的连接池,让所有的消息投递都能复用同一个连接池中的链接,不用频繁开启和关闭链接。 http 本身如何优化就暂时不清楚了
    murmur
        2
    murmur  
       2022-04-06 13:57:28 +08:00
    意义不明,你是架设物理层还是数据处理呢,如果是 2g 的东西,本身他可以联网,就是一般并发的东西了,最多是实时数据库

    如果是物联网,那么这又是硬件问题了,怎么妥善收集数据成了面试点
    rabbbit
        3
    rabbbit  
       2022-04-06 14:06:08 +08:00
    物联网设备一般都用啥协议?
    coolair
        4
    coolair  
    OP
       2022-04-06 14:08:02 +08:00
    @sss15 兄弟说的很好啊,搞不好我这么说就过了,那 api service 如何接受高并发大量小数据呢?
    Uyuhz
        5
    Uyuhz  
       2022-04-06 14:08:40 +08:00
    @rabbbit mqtt ,自定义协议(比如 jt808 ),protobuf 之类的
    ThirdFlame
        6
    ThirdFlame  
       2022-04-06 14:08:50 +08:00
    不是用 mqtt 么
    Uyuhz
        7
    Uyuhz  
       2022-04-06 14:10:37 +08:00
    这里还有个问题就是会不会涉及到集群,集群下怎么给某一台设备发消息(我面试老是被问)...
    fe619742721
        8
    fe619742721  
       2022-04-06 14:11:00 +08:00
    @coolair 纯前端来猜一下,一个想法大概率不对,上报请求只需要打到 nginx 产生日志就可以了,api-service 可以慢慢去捞日志读,这种场景下物联网上报请求我猜都不需要成功返回
    sss15
        9
    sss15  
       2022-04-06 14:19:37 +08:00
    @fe619742721 上报请求只需要打到 nginx 产生日志就可以了。 妙啊,实在是妙
    masterclock
        10
    masterclock  
       2022-04-06 14:29:00 +08:00
    MQTT 、CoAP 、HTTP ,大量设备的,只见过这三种在用的
    leeyuzhe
        11
    leeyuzhe  
       2022-04-06 14:31:57 +08:00
    mqtt ,然后塞到 kafka ,下面微服务应用处理数据,最后再上个时序数据库保存结果,全部都支持分布式
    hhxiaolei
        12
    hhxiaolei  
       2022-04-06 19:22:59 +08:00 via Android
    可以用 nodejs 放入阿里云函数计算
    leipengcheng
        13
    leipengcheng  
       2022-04-07 09:22:34 +08:00
    我之前用的就是 mqtt
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2703 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 83ms · UTC 02:05 · PVG 10:05 · LAX 18:05 · JFK 21:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.