在mongos下获得碎片

时间:2014-04-14 11:47:53

标签: mongodb sharding

我对mongos实例有一个MongoConnection。 Mongos内部连接到三个分片。是否有任何方法可以使用它来获得每个分片的单独连接或至少获取分片上的信息以便我可以创建新的连接?

我查看了MongoConnection课程,但没有找到与mongos有关的任何内容。 http://api.mongodb.org/ruby/1.3.1/Mongo/Connection.html

Mongo 2.2版和MongoDriver 1.3.1以及语言ruby

例如: Mongos是localhost:27107 其中有碎片214.187.112.113:27107,209.117.116.103:27107 114.117.162.123:27107

现在我的MongoConnection变量与localhost:27107有连接有没有办法从这个连接我可以创建到各个分片的连接@ 214.187.11.113等

1 个答案:

答案 0 :(得分:2)

MongoDB集群附带3种类型的组件 - 1.)配置服务器(mongod在这里运行) 2.)查询路由器(mongos在这里运行) 3.)分片服务器(mongod在这里运行)

Mongos是MomgoDB提供的分片服务。 Mongo分片服务器通过mongos注册到配置服务器。

ex- sh.addShard( "mongo-shard-1:27017" )
sh.addShard( "mongo-shard-2:27017" )

将来当任何请求(读/写)来到mongos时,它首先从配置服务器获取分片信息,然后客户端通过将其专用于适当的分片服务器来提供该请求。

我不确定你为什么要直接连接到分片服务器(mongos在群集设置中透明地提供它)。

由于每个分片服务器也运行mongod,因此您可以直接连接到它,但它将作为一个独立的MongoDB实例,并且不会成为群集的一部分。

如果您想控制分片,可以按照以下步骤进行操作。 https://www.linode.com/docs/databases/mongodb/build-database-clusters-with-mongodb