【问题标题】:Sharding with spring mongo使用 spring mongo 进行分片
【发布时间】:2016-02-19 04:02:07
【问题描述】:

我正在使用 mongoDB 通过 Spring Web 应用程序存储和查询近 5000 万条记录(没有固定模式的大型 Json 文件)。简单的基于 K-V 对的查找查询会在几秒钟内运行。我正在寻找将搜索时间缩短到

由于所存储文件的性质,索引对我不起作用。我正在寻找替代方案并遇到了分片。但是,我没有找到很好的教程来解释如何为我现有的 spring-mongo 应用程序设置分片。

有人可以为我指出一个很好的解释吗? 也欢迎任何其他优化搜索时间的建议!

编辑

根据评论,我将现有的 Mongo 数据库转换为具有 1 个配置服务器、1 个查询服务器和 2 个分片的分片数据库。以前我的(spring-boot)application.properties 文件看起来像这样:

...
spring.data.mongodb.database=pam
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.repositories.enabled=true
spring.data.mongodb.uri=mongodb://localhost:27017/pam
...

现在如何修改以适应分片数据库,同名?

【问题讨论】:

  • 仅供参考。没有“为 spring 设置分片”之类的东西,但只有“设置分片”。这纯粹是关于数据库配置,您的应用程序(除了设置中的分片键选择之外)并没有真正受到影响,并且如果它连接到单个服务器或分片集群,它也不会在意。所以这里根本不涉及编程。选择一个片键对你想要的访问模式有效是另一回事。
  • 关于设置分片,看手册"Sharded Cluster Tutorials"
  • 你在主机/帖子属性中提供了什么?
  • 您可以在更改后发布您的 application.properties 吗?我遇到了完全相同的问题。

标签: spring mongodb sharding spring-mongo


【解决方案1】:

如果您仔细阅读文档https://docs.mongodb.com/manual/sharding/,您会同意分片的事实对于系统的其余部分是并且应该是透明的。那就是最初你的系统可以只是单个数据库,然后是完整的分片

  • mongos路由器
  • 配置服务器
  • 分片(即副本)

即分片是部署问题,而不是设计。 MongoDB 界面保持不变。

【讨论】:

    猜你喜欢
    • 2018-11-15
    • 2019-10-14
    • 2019-02-25
    • 2020-06-21
    • 2015-10-20
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    相关资源
    最近更新 更多