一个程序开发问题请教各位 V 友大佬,每秒 10 万条数据需要存储,怎样选择技术方案

247 天前
 morota

物联网传感器发送的数据,走 tcp 或者 mqtt ,每秒大概有 10 万条,每条数据大概 20 个字节大小(5 个 int 值) 现在的问题是:服务端如何保存这些数据。

1, 用什么数据库,如何高频插入 2, 服务器选什么样的配置,来配合数据插入。CPU ,内存,硬盘需要多大。

请各位大佬不吝指教

12299 次点击
所在节点    数据库
122 条回复
asmoker
247 天前
ck
kenneth104
247 天前
非程序员
加缓冲层,1 层不够再来 1 层
FanError
247 天前
先扔到消息队列里,再慢慢消费。
rockxsj
247 天前
1 、日志服务器收到之后先落地本地文件
2 、fluentbit watch 本地文件然后发送到 kafka
3 、写个程序从 kafka 消费写入到最终数据库 starrocks
hxzhouh1
247 天前
好像有个国产消息队列 TDengine , 专门应对这种物联网场景的
morota
247 天前
@FanError 消息队列的话,内存是不是需要配置很大的内存,否则会爆?
morota
247 天前
@rockxsj 消息队列的话,内存是不是需要配置很大的内存,否则会爆?
saintatgod
247 天前
1. 使用时序数据库或者 nosql ,或者 pgsql 这样的数据库,使用队列异步去消费这些数据,插入时候可以批量插入,最好在插入前对数据库进行好分区,然后按照分区读写。
2. 服务器的话需要 16 核的 CPU , 内存按照 32-64 来搞,硬盘的话,你这个量级如果没有估算错,至少 1T ,另外就是带宽搞大一点。
基本上就这样。
E520
247 天前
@morota 这也要看你的消费处理速度,消费的快,那堆积内存就不大, 你可以算一下 1 秒 10 万条数据,占多少内存,去计算就行了
morota
247 天前
@saintatgod 感谢大佬,算了一下带宽至少需要 10M ,对吗?
rockxsj
247 天前
@morota #7 kafka 是顺序写入硬盘的,不需要内存很大,硬盘大写就行了
tool2dx
247 天前
搜了一下,一般正规一点的 E5 服务器( 24 核心+24G 内存),mysql 每秒能支持到 117 万的请求。

当然他测试客户端没那么多,你是物联网,tcp 来源比较碎片化,性能可能要打折。

感觉优先走分布式,一个机房宽带顶不住啊。
tool2dx
247 天前
@morota “感谢大佬,算了一下带宽至少需要 10M ,对吗?”

肯定不是按照字节来算。你要根据终端数量的 tcp ip 封包切割来算。哪怕只是 20 字节,频繁握手对于带宽的压力也不小。
vkillwucy
247 天前
kafka + flink + starrocks 大数据套件搞起来
KOMA1NIUJUNSHENG
247 天前
搞不懂和大数据有什么关系,这种物联网硬件数据明显用时序数据库啊
bthulu
247 天前
那就是每秒 50 万个 int, 共 2MB. 就是每秒 2MB, 直接写文件, 一条一行. 这样是个设备就能满足要求.
几十块收个几年前的斐讯盒子, 刷机, 把自己的程序放上去就行了.
standchan
247 天前
clickhouse ,不要求实时的话,都放在消息队列里面慢慢消费
songyoucai
247 天前
做过物联网的来回答一下。 首先你的边缘网关,就需要处理这些数据。并不是所有的数据都需要入库的,比如传感器每 5s 上报一次。有一些频率甚至更低。 想想你物联网网关,如果是走的 5g 来上报数据,流量卡吃得消吗

假设你已经是边缘网关清洗过的数据,现在设备几万台,,每秒就是有 10 万条数据. .这时候需要用到时序数据库,消息队列是给物联网后续的指令去消费的。


重点: 边缘网关做数据清洗和心跳,定期上报异常数据和转发指令。这样如果是平常的数据,可以每十分钟发送一次数据包到服务器。异常数据(超过指定阈值。比如温度过高,报警信息)和指令回复可立即上报。

时序数据库存储 来做数据存储,消息队列来消费数据。 进行告警时段统计等信息。
Curtion
247 天前
时序数据库直接存问题也不大吧
ggabc
247 天前
缓冲一下分批量写入就行

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

https://ex.noerr.eu.org/t/1093560

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

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

© 2021 V2EX