首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MongoDB中的数据库分片?

MongoDB中的数据库分片?
EN

Stack Overflow用户
提问于 2016-12-05 04:39:40
回答 2查看 375关注 0票数 1

目前,我正在探讨如何在Mongo中进行数据库分块。

我的用例是,我的web应用程序中有许多产品,如电子产品/婴儿用品/书籍/衣服等。假设我想将不同的产品存储在不同的DB上(在不同的机器上),以便在需要的情况下分配负载并进行扩展。

我的问题是Mongo有责任根据产品类型将产品存储在正确的DB中,而我的webserver java代码会完全不知道这一点吗?Mongo支持这一点吗?

还是由webserver java代码根据产品类型连接到正确的DB来存储产品呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-05 05:05:20

是的,MongoDB支持您描述的内容。MongoDB中的切分是MongoDB允许扩展/水平缩放的方式。它需要一个切分键,它是用来决定切分集合中的文档碎片(在您的情况下是产品)将被分割到哪个文档碎片上的。听起来你想用产品类型作为你的切分键。MongoDB负责根据碎片键将文档定向到碎片。参考链接的网页,您的web服务器将连接并发送查询到mongos查询路由器实例,这些实例将根据碎片键将查询适当地路由到碎片。

但切分键的选择不应掉以轻心。如果选择得不好,几乎所有的查询最终都会变成一个碎片。了解碎片的关键因素(如基数、频率和变化率)如何影响碎片性能这里

票数 0
EN

Stack Overflow用户

发布于 2016-12-05 05:27:45

您的Java应用程序连接到mongos,不管运行多少mongodmongos都代表整个DB!mongos处理到正确mongod服务器的连接并运行查询。因此,基本上,您的Java应用程序将MongoDB看作一个单独的黑匣子。

P.s:您可以运行多个mongos,在您的local DNS provider中为它们分配一个域名,它将负责mongos的负载平衡。在这个场景中,java应用程序的行为也是一样的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40967206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档