【发布时间】:2015-02-06 11:28:54
【问题描述】:
在查看 MongoDB 文档时,我发现了两个不同的术语 mongod 和 mongos。
在启动服务器时,我使用./mongod --dbpath <path to mongodb> 并运行./mongo 来连接服务器。
有人可以澄清这两个术语之间的区别吗?
【问题讨论】:
标签: mongodb
在查看 MongoDB 文档时,我发现了两个不同的术语 mongod 和 mongos。
在启动服务器时,我使用./mongod --dbpath <path to mongodb> 并运行./mongo 来连接服务器。
有人可以澄清这两个术语之间的区别吗?
【问题讨论】:
标签: mongodb
mongod 是守护进程,mongo 是客户端,mongos 是“MongoDB Shard Utility”。看看man mongos:
mongos for "MongoDB Shard" 是 MongoDB 分片配置的路由服务,它处理来自应用层的查询,并确定此数据在 分片集群,以完成这些操作。从应用程序的角度来看,mongos 实例的行为与任何其他 MongoDB 实例相同。
【讨论】:
MongoDB包中的核心组件有:mongod——核心数据库进程; mongos - 分片集群的控制器和查询路由器;和 mongo 交互式 MongoDB Shell。
【讨论】:
Mongos = MongoDB Shard Utility,分片集群的控制器和查询路由器。分片将数据集划分为离散的部分。
Mongod = MongoDB 系统的主要守护进程。它处理数据请求,管理数据访问,并执行后台管理操作。
这个关于mongo复制和分片的解释真的帮助我理解了它:https://dba.stackexchange.com/a/53705/106925
【讨论】:
在shard集群中,mongod作为shard数据进程和存储shard元数据进程。 mongos 作为路由进程来操作客户端请求。
【讨论】: