在连接到副本集时,我在AWS上遇到偶尔的com.mongodb.MongoTimeoutException
错误。我正在使用从rs.status()
输出的域名连接,例如,mongo1.production
和mongo2.production
,但我仍然得到超时。
我的代码如下:
MongoClientOptions options = new MongoClientOptions.Builder()
.writeConcern(WriteConcern.ACKNOWLEDGED)
.readPreference(ReadPreference.primaryPreferred())
.connectTimeout(30000)
.socketTimeout(60000)
.connectionsPerHost(50)
.threadsAllowedToBlockForConnectionMultiplier(10)
.build();
List<ServerAddress> seeds = new ArrayList<ServerAddress>();
seeds.add(new ServerAddress("mongo1.production:27017"));
seeds.add(new ServerAddress("mongo2.production:27017"));
MongoClient client = new MongoClient(seeds, null, options);
如果您试图通过输入…
从终端运行mongomongod
…您将(可能)得到以下错误:
*********************************************************************
ERROR: dbpath (/data/db) does not exist.
Create this directory or give existing directory in --dbpath.
See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************
你所要做的就是像这样创建mongo正在查找的目录/路径(/data/db):
sudo mkdir -p /data/db/
然后:
sudo chown `id -u` /data/db
或者,正如错误消息中提到的,您可以像这样在——dbpath中给出一个现有目录:
mongod --dbpath /srv/mongodb/
查看MongoDB手册