【发布时间】:2015-04-24 17:08:46
【问题描述】:
目前我运行一个 mongodb 副本集,这个 db 增长太快。 我的集合是一个名为 Reading 的带有 metering_point_id、timestamp、power 和 energy,其中 metering_point_id 是智能电表的 id。
智能电表每秒都会向 mongodb 发送一条新记录。智能电表的数量也在增长。
我需要一个可扩展的 mongodb 基础架构。 我认为使用 mongodb 分片是可能的。 我的理想场景可能是这样的。
- shard1 metering_point_id 从 1 到 100
- subshard2013 时间戳从 2013 年开始到 2013 年结束
- subshard2014 时间戳从 2014 年开始到 2014 年结束
- ...等等
- shard2 metering_point_id 从 101 到 200
- subshard2013 时间戳从 2013 年开始到 2013 年结束
- subshard2014 时间戳从 2014 年开始到 2014 年结束
- ...等等
- ...等等
像这样:https://www.lucidchart.com/invitations/accept/1533835d-05ce-4d5d-b719-fe94b4f84db6
这可以用 mongodb 吗?这个子分片的东西?
非常感谢。
【问题讨论】:
-
你说的是几台机器?
-
是的,每个分片是一个具有 3 个服务器的副本集
-
我认为你只能使用一个键,文档说:“分片键上的索引不能是多键索引。”
-
我不明白。为什么不直接添加一个分片,让平衡器完成剩下的工作?
-
我认为复合分片键是解决方案。 docs.mongodb.org/manual/tutorial/choose-a-shard-key/…