监控服务MongoDB模式设计
我在世界各地部署了1000多台流媒体音频设备。所有这些设备目前大约每15分钟向工厂监控服务报到一次。我正在使用自己的监控服务,并将使用mongo存储状态更新 问题: 更好的设计方案是什么: 1) 一个名为监控服务MongoDB模式设计,mongodb,Mongodb,我在世界各地部署了1000多台流媒体音频设备。所有这些设备目前大约每15分钟向工厂监控服务报到一次。我正在使用自己的监控服务,并将使用mongo存储状态更新 问题: 更好的设计方案是什么: 1) 一个名为device\u的大型集合更新了。其中,所有状态更新文档将包括一个设备序列号键 2) 1000多个集合,每个集合都以设备序列号命名,即:65FE9,设备状态更新存储在它们自己的集合中。如果按照这条路线,我会将集合限制在大约2000个状态更新文档 两者都需要在日期键处创建索引 从性能角度看,哪一个
device\u的大型集合更新了。其中,所有状态更新文档将包括一个设备序列号
键
2) 1000多个集合,每个集合都以设备序列号命名,即:65FE9
,设备状态更新存储在它们自己的集合中。如果按照这条路线,我会将集合限制在大约2000个状态更新文档
两者都需要在日期键处创建索引
从性能角度看,哪一个更好?或者有没有关于首选方法的想法
谢谢 我肯定会选择一个大规模的收藏,因为所有的文档都是同一类型的
一般来说,将MongoDB中的集合视为一组同构文档。此外,只有一个集合可以更容易地横向扩展(即,使用碎片),例如使用序列号作为碎片键。谢谢您的回答!我主要是用他们报告的关于网络连接的信息和他们可能遇到的任何缓冲问题来绘制各个状态更新。除了MongoDB,你有没有看过Graphite框架()?Is是一个很好的开源解决方案,用于收集和绘制性能数据。