草庐IT

主从分片

全部标签

sql-server - 为什么要对 MongoDB 使用分片?

我们开始在工作中使用MongoDB。到目前为止一切顺利,但我被要求评估MongoDB是否可以同时进行副本集和分片。搜索了一段时间后,我发现可以,但除非真的有必要,否则应该避免分片。我读过somewhere使用MongoDB你真的需要有很多文档(比如数十亿)才能开始考虑分片,但是我无法理解这一点,因为那些“统计数据”中没有提到平均文档的组织和大小。我们现在的标准是RAM应该大于完成请求所需的内存负载。这让我想到了那些问题:MongoDB和SQLServer知道请求的RAM中使用了什么的指令是什么?在MongoDB中使用分片的关键要求是什么?当有人解释他们为什么将Sharding与Mong

mongodb - 如何在 Mongo 中按 user_id 将数据拆分到每个分片?

我有3个碎片除了自动分片,我能否专门定义shard1仅包含user_id=1的数据,shard2user_id=2和shard3user_id=3的数据? 最佳答案 您可以采用手动拆分和分片路线并关闭平衡器,但更具可扩展性的解决方案可能是尝试新的shardtagging2.2中的功能克里斯蒂娜的example旨在展示如何控制集合分布,但您可以根据自己的目的对其进行调整,比如为两个集合中的特定用户范围标记block,以确保它们在特定分片上的位置。您仍然需要以某种方式自行管理,但至少从block管理和迁移的角度来看,它减轻了您的负担。

mongodb - mongodb 中的自定义范围分片键

我有一个配置了3个分片的mongodb,每个分片有3个副本,这些副本位于3个物理服务器上。我正在尝试获取每个分片上特定日期范围的数据;即我想要一个分片上最近3天的数据,第二个分片上最近6天到3天的数据,第三个分片上的所有其他数据。是否可以像那样手动定义分片键范围?提前致谢。 最佳答案 您可以使用标签感知分片。http://docs.mongodb.org/manual/core/tag-aware-sharding/这将允许您向分片添加标签,然后定义标签的范围。 关于mongodb-mo

mongodb - 分片的 Mongo 数据库可以在 Windows 和 Linux 之间拆分(mongos 和 mongod)吗?

作为概念验证类项目,我设置了一个分片MongoDB,只有两个分片和三个运行mongos实例的服务器。所有这些都在它们自己的Windows服务器上,但我想尝试在Linux系统上运行集群,因为我看到一些奇怪的行为,我认为可能与以下事实有关系统都在企业ESX服务器上的VM上运行。另外,我只是好奇。在阅读尽可能多的文档后,我发现将查询分派(dispatch)到适当分片的“mongos”实例是轻量级的,通常可以在应用程序服务器或具有mongod实例的系统上运行(documentation).我的问题是,是否可以配置MongoDB,使mongos实例在Windows服务器上运行,而mongod实例

mongodb - Mongodb 嵌套分片键

我有一个关于Mongo分片键的问题。我的文档结构如下:{"payload":{"id":"364e1f2c-6d4c-45fb-af19-841149286d67","name":"John",},"source":"myApp","version":"1.0","additionalInfo":{"time":"2012-04-18T17:32:11+03:00"}}我希望我的分片键为:payload.name和additionalInfo.time。以下命令因语法错误而失败:db.runCommand({shardcollection:"collection.table",key:

mongodb - 多个分片键是否有助于提高 mongodb 的性能?

由于分片数据库使用分片键来拆分块和路由查询,所以我认为更多的分片键可能有助于使更多的查询更有针对性我试过像这样指定多个键db.runCommand({shardcollection:"test.users",key:{_id:1,email:1,address:1}但我不知道它是否有效以及这样做的缺点是什么 最佳答案 这里要明确一点,你只能有一个分片键。所以你不能有多个分片键。但是,您建议使用compoundindex作为片键。这是可以做到的,但有一些限制。例如_id、email和address的组合必须是唯一的。choosinga

mongodb - Cassandra 中的无主模型与 MongoDB 中的主从模型?

我知道在Mongo中我们可以有一个主控器和多个从属器,其中主控器将用于写入操作,从属器将用于读取操作。假设M1、M2、M3是节点,M1为主但是我看Cassandra据说是master-less模型。每个节点都被称为主节点。我没看懂是什么意思?假设M1、M2、M3是节点,M1是master,M2、M3是Mongo中的slave我相信写总是去M1,读总是去M2,M3假设C1、C2、C3是Cassandra中的节点在这里,我相信写入和读取请求可以到达任何节点。这就是为什么它被称为master-less模型。 最佳答案 你是对的,Cassa

主从redis部署(docker)

首先,我准备了两台linux,一台准备当作master,ip是192.168.241.128,另一台是当作slave,ip是192.168.241.129。1.安装redisdockerpullredis2.下载对应版本的redis.conf可以从github上下载。新建配置环境目录和持久化数据目录。mkdir-p/home/redis/datamkdir-p/home/redis/confmkdir-p/home/redis/log修改配置redis.conf:logfile"/log/redis.log"dir/data将redis.conf放到mkdir-p/home/redis/con

MongoDB 将分片添加到现有集群 - 会发生什么?

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion我试图确保我了解将新碎片(副本集)添加到现有碎片集群时会发生什么。当我添加这些新成员并且它看到有一个新的分片成员可用时,Mongo然后开始重新安排block以便它可以利用新成员,对吗?发生这种情况时,您会受到什么样的影响?一如既往,我会假设您希望在开始看到不利的性能数字时立即尝试添加这些成员(如果其他调整选项没有帮助)。只是想更好地了解在集群已经存在的情况下添加分片时会发生什么。谢谢,小号

Vue 3 中用组合式函数和 Shared Worker 实现后台分片上传(带哈希计算)

01.背景最近项目需求里有个文件上传功能,而客户需求里的文件基本上是比较大的,基本上得有1GiB以上的大小,而上传大文件尤其是读大文件,可能会造成卡UI或者说点不动的问题。而用后台的Worker去实现是一个比较不错的解决办法。02.原理讲解02.01.SharedWorkerSharedWorker的好处是可以从几个浏览上下文中访问,例如几个窗口、iframe或其他worker。这样我们可以保证全局的页面上传任务都在我们的控制之下,甚至可以防止重复提交等功能。02.02.组合式函数组合式函数的好处是在Vue3是可以在任何*.vue文件中使用,并且是响应式方法,可以侦听pinia内token等的