连接副本集时偶尔出现mongomeoutexception



在连接到副本集时,我在AWS上遇到偶尔的com.mongodb.MongoTimeoutException错误。我正在使用从rs.status()输出的域名连接,例如,mongo1.productionmongo2.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);

如果您试图通过输入…

从终端运行mongo
mongod

…您将(可能)得到以下错误:

*********************************************************************
 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手册

相关内容

  • 没有找到相关文章

最新更新