小编Ste*_*nie的帖子

MongoDB:在应用服务器上共同定位 mongos 进程

我想问一个关于本文档中描述的最佳实践的问题:

http://info.mongodb.com/rs/mongodb/images/MongoDB-Performance-Best-Practices.pdf

使用多个查询路由器。使用分布在多个服务器上的多个 mongos 进程。一个常见的部署是将 mongos 进程共置在应用程序服务器上,这允许应用程序和 mongos 进程之间进行本地通信。 mongos 进程的适当数量将取决于应用程序和部署的性质。

只是关于我们部署的一点背景知识。我们有很多应用服务器节点。他们每个人都使用无状态 RESTful WS 运行一个基于 JVM 的进程。正如这个最佳实践所建议的那样,每个应用程序服务器节点都运行自己的mongos进程,这意味着 JVM 进程的数量总是等于进程的数量mongos

所有mongos进程都连接到 3 个配置服务器和几个 mongo 分片(每个分片内都有副本集)。即使我们使用的是分片部署,我们并没有真正对我们的集合进行分片。事实上,我们有大量的数据库,它们在创建期间分布在所有分片上(这是我们目前分片的主要用例)。

由于最佳实践还表明“适当数量的 mongos 进程将取决于应用程序和部署的性质”,因此我开始怀疑我们的使用mongos是否真的合适,或者如果我们拥有多个专用mongos节点并让我们的应用服务器无需在mongos本地运行即可连接到它们。

对于决定多少个mongos实例与应用服务器实例数量或 MongoDB 集群的大小相关的最佳方法,您有什么看法?

最近,我们开始研究无状态 Web 服务的集群管理,我指的是 Docker、Apache Mesos 和 Kubernetes 等工具。如果我们使用 Docker,那么通常不鼓励在容器内运行多个进程的做法。考虑到这一事实,确保应用服务器容器和mongos容器始终位于同一物理节点上并具有相同数量的进程变得非常困难。这让我怀疑这个最佳实践是否仍然适用于我刚刚描述的集群架构。如果没有,您能否建议mongos在此架构中定位和部署流程的更好方法是什么?

mongodb best-practices deployment sharding docker

12
推荐指数
2
解决办法
6911
查看次数

如何更新嵌入文档数组中的单个字段?

我想更新嵌入文档数组中的一个字段。

我的示例文件是:

db.students.insert(
    {
        first_name:'AA',
        last_name:'BB',
        cours_reussis:[{intitule:'PAI',note:0,name_school:'EPFC'}]
    }
)
Run Code Online (Sandbox Code Playgroud)

我想将 的值更改name_school为“ENSA”而不是“EPFC”。

mongodb

10
推荐指数
2
解决办法
4万
查看次数

MongoDB 显示重复键为空?

MongoDB 3.6 版

执行此操作时,我收到了重复的密钥消息。实际问题是什么?

mongos> db.setup.findAndModify({
... query : {"_id" : ObjectId("5b3c7abbea95705803084cad")},
... update : {$set : { "test" : "xxxx" }},
... upsert : true
... })
2018-07-06T10:13:22.749+0000 E QUERY    [thread1] Error: findAndModifyFailed failed: {
    "ok" : 0,
    "errmsg" : "E11000 duplicate key error collection: testdb.setup index: name dup key: { : null }",
    "code" : 11000,
    "codeName" : "DuplicateKey",
    "$clusterTime" : {
        "clusterTime" : Timestamp(1530872002, 603),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    },
    "operationTime" …
Run Code Online (Sandbox Code Playgroud)

mongodb

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

mongodb ×3

best-practices ×1

deployment ×1

docker ×1

sharding ×1