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

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

如果是物联网,那么这又是硬件问题了,怎么妥善收集数据成了面试点
rabbbit
2022-04-06 14:06:08 +08:00
物联网设备一般都用啥协议?
coolair
2022-04-06 14:08:02 +08:00
@sss15 兄弟说的很好啊,搞不好我这么说就过了,那 api service 如何接受高并发大量小数据呢?
Uyuhz
2022-04-06 14:08:40 +08:00
@rabbbit mqtt ,自定义协议(比如 jt808 ),protobuf 之类的
ThirdFlame
2022-04-06 14:08:50 +08:00
不是用 mqtt 么
Uyuhz
2022-04-06 14:10:37 +08:00
这里还有个问题就是会不会涉及到集群,集群下怎么给某一台设备发消息(我面试老是被问)...
fe619742721
2022-04-06 14:11:00 +08:00
@coolair 纯前端来猜一下,一个想法大概率不对,上报请求只需要打到 nginx 产生日志就可以了,api-service 可以慢慢去捞日志读,这种场景下物联网上报请求我猜都不需要成功返回
sss15
2022-04-06 14:19:37 +08:00
@fe619742721 上报请求只需要打到 nginx 产生日志就可以了。 妙啊,实在是妙
masterclock
2022-04-06 14:29:00 +08:00
MQTT 、CoAP 、HTTP ,大量设备的,只见过这三种在用的
leeyuzhe
2022-04-06 14:31:57 +08:00
mqtt ,然后塞到 kafka ,下面微服务应用处理数据,最后再上个时序数据库保存结果,全部都支持分布式
hhxiaolei
2022-04-06 19:22:59 +08:00
可以用 nodejs 放入阿里云函数计算
leipengcheng
2022-04-07 09:22:34 +08:00
我之前用的就是 mqtt

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

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

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

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

© 2021 V2EX