尝试创建复制的分片群集时连接mongos时出错

时间:2014-07-10 19:41:12

标签: mongodb amazon-web-services load-balancing sharding replicaset

我试图在mongodb中创建一个复制的分片群集。最初我创建了两个分片,每个分片中都有一个副本集,其中包含三个成员。并且所有分片和复制集都在一台机器上运行。我跟着

http://docs.mongodb.org/manual/tutorial/convert-replica-set-to-replicated-shard-cluster/

部署这个结构并且运行良好。

但是,当我在AWS实例中为业务应用程序运行我的mongodb并且我将node.js服务器与数据库连接时,我想在多个aws实例中对数据库进行负载均衡,以便即使在一个实例变得不健康或不可用的情况下,数据库也能正常工作,即使一个实例变得不健康或不可用,我也能够从其他实例中运行的replicaset访问数据库。

取决于我之前提出的问题中不同用户的建议

http://stackoverflow.com/questions/24671205/mongodb-load-balancing-in-multiple-aws-instances

我试图在分片中划分数据库,每个分片都有一个副本集,其中有3个或更多成员在不同的aws实例中运行。 为了创建这个结构,我首先尝试在本地部署它。

我有两个复制品首次出现& secondset

第一集有三个成员192.168.1.10:27018(Primary),192.168.1.11.27018(中学)& 192.168.1.9:27018(arbiter)

第二集有三个成员192.168.1.6:27019(Primary),192.168.1.9:27019(Secondary)&& 192.169.1.11:27019(arbiter)

创建我写的第一套副本

mongod --dbpath /replica-data --port 27018 --replSet firstset --oplogSize 10

在192.168.1.10,192.168.1.11& 192.168.1.9

然后启动我写的副本集

mongo --port 27018

在192.168.1.10然后,

use admin

db.runCommand({
 "replSetInitiate": {
    "_id": "firstset",
    "members": [{
         "_id": 1,
         "host": "192.168.1.10:27018",
         "priority": 10
         }, {
         "_id": 2,
         "host": "192.168.1.11:27018",
         "priority": 2
         }, {
         "_id": 3,
         "host": "192.168.1.9:27018",
         "priority": 1,
         "arbiterOnly": true
         }]
         }
    });

我创建了第二套副本的方式与此类似,并且有效。

然后我尝试在三台独立的机器中创建三个configsvrs,这样即使一台机器关闭,其他的configsvrs也会运行。 configsvs将运行于192.168.1.10:27020,192.168.1.11:27020& 192.168.1.6:27020

所以我写了

mongod --configsvr --dbpath /shard-data -port 27020

在192.168.1.10,192.168.1.11& 192.168.1.6。

然后我尝试在27017端口运行192.168.1.10中的mongos,其中三个运行configdb。所以,我已经写过了

mongos --configdb 192.168.1.10:27020,192.168.1.11:27020,192.168.1.6:27020 --port 27017 --chunkSize 1

然后我要在mongos中添加碎片,并在27017端口运行mongos,我写道: -

mongo --port 27017

但它正在显示

errno:111 conncetion refused.

但之前我在一台机器上进行测试时效果很好。

请帮助我,为什么我会收到此错误以及如何解决此问题。

我还有另一种困惑。我在192.168.1.10中运行mongos然后我将我的node.js服务器与那些mongos连接,但是如果那台机器关闭我会遇到问题。那么我是否还需要在其他机器上运行mongos,以便至少运行一个mongos来随时与数据库建立连接?如果我要创建多个mongos同时运行单独的机器,那么我如何连接node.js服务器中的任何一个mongos来访问数据库?

0 个答案:

没有答案