物联网大数据量频繁对MongoDB查询问题
2016-07-26 04:55
295 查看
闲聊
晚上失眠,把之前使用MongoDB时碰到的问题以及处理方法写下来,我是菜鸟,希望大家提出宝贵的意见。
环境
centos7+MongoDB3.2
问题描述
经过一段时间的使用发现MongoDB各方面都还算稳定,每天所有传感器通过socket采集过来的数据量大概有10w+,很快存放的集合数据量过于
庞大,而数据处理时的需求需要按升序处理并且过滤掉已经处理的数据,这样导致类似sql数据库的全表扫描和排序,严重占用了服务器cpu的资源。
之前的流程示例图
![](https://img-blog.csdn.net/20160726044232631)
解决方法
方案一:开始的设想是采用redis等缓存数据库来存放未处理的数据,但是基于缓存数据库的搭建需要时间并且服务器当机等意外可能导致数据丢失,而服务器性能被影响,需要短时间内解决,暂时放弃。
方案二:发现MongoDB在某些场合下也可以当缓存数据库来使用,于是直接在进入集合前,先放入MongoDB的临时集合存放,数据处理完毕后再移入集合。这样比较简单的解决了问题。
方案二示例图
![](https://img-blog.csdn.net/20160726045406293)
未来方案设想:为了缩短中间存入操作产生的通讯成本(ps:soa架构牺牲了一些的通讯成本)后期设想通过MQ消息队列实现socket采集完数据直接推送至数据处理模块,欢迎大家留言讨论,后期还会继续更新实践。
明天还要上班,冲2个小时电先,晚安。
^.^
晚上失眠,把之前使用MongoDB时碰到的问题以及处理方法写下来,我是菜鸟,希望大家提出宝贵的意见。
环境
centos7+MongoDB3.2
问题描述
经过一段时间的使用发现MongoDB各方面都还算稳定,每天所有传感器通过socket采集过来的数据量大概有10w+,很快存放的集合数据量过于
庞大,而数据处理时的需求需要按升序处理并且过滤掉已经处理的数据,这样导致类似sql数据库的全表扫描和排序,严重占用了服务器cpu的资源。
之前的流程示例图
解决方法
方案一:开始的设想是采用redis等缓存数据库来存放未处理的数据,但是基于缓存数据库的搭建需要时间并且服务器当机等意外可能导致数据丢失,而服务器性能被影响,需要短时间内解决,暂时放弃。
方案二:发现MongoDB在某些场合下也可以当缓存数据库来使用,于是直接在进入集合前,先放入MongoDB的临时集合存放,数据处理完毕后再移入集合。这样比较简单的解决了问题。
方案二示例图
未来方案设想:为了缩短中间存入操作产生的通讯成本(ps:soa架构牺牲了一些的通讯成本)后期设想通过MQ消息队列实现socket采集完数据直接推送至数据处理模块,欢迎大家留言讨论,后期还会继续更新实践。
明天还要上班,冲2个小时电先,晚安。
^.^
相关文章推荐
- 物联网实训总结——简易的智能农场
- 物联网网关使用中国移动物联卡
- 在物联网中的应用3G4G移动通信
- iotop
- 全球首款工业物联网芯片渝“芯”一号在渝发布
- 物联网入口之一Android蓝牙4.0
- hdu 4609 3-idiots
- 5千米传输距离,Semtech LoRa扩频调制技术SX1276+MCU超远距离无线通信解决方案
- HDU 4609 3-idiots FFT+容斥
- 【FFT】HDU4609-3 idiots
- Microsoft Azure IoT Hub应用 – 第二部分:连接传感器以及 IoT 车辆
- 行百里者半九十,华为开发者大赛各参赛团队渐入佳境
- 打印机智能化大势所趋,推动办公室物联网建设
- 声明与鸣谢——《朱老师物联网大讲堂》
- HDU4609——3-idiots(FFT求卷积,留着以后学)
- 奇趣示波器应用之一——通过插线板识别用电器
- NB-IoT标准确定,物联网将腾飞
- 物联网加密
- 浅谈工业级物联网项目架构设计及实施
- 浅谈用户体验在工业智能化DTU设计中的重要性