我在连接到副本集时偶尔会遇到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);
答案 0 :(得分:0)
如果您尝试通过键入...
从终端运行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 manual。