Mongo m = new MongoClient(new ServerAddress(server , port), creds, MongoClientOptions.builder().connectTimeout(2000).socketTimeout(2000).serverSelectionTimeout(10000).socketKeepAlive(true).build());
我想测试connectionTimeOut
到独立服务器。每次我为客户端或停止服务器定义错误的端口时,它都会在选择服务器步骤&给出serverSelectionTimeOut
。如何在开发环境中测试connectionTimeOut
阈值?
答案 0 :(得分:0)
您需要确保要连接到现有服务器(主机名和端口),因为连接是在服务器选择过程之后建立的。如果服务器选择失败,它将不会进入连接设置步骤。
如果没有始终可用于测试的Mongo服务器,请尝试在本地计算机上即时部署embedded Mongo server。您可以编写一个单元测试,以在测试开始时自动启动嵌入式Mongo(如here所示)。 另外,您可以使用MongoUnit进行测试,但是我本人没有经验。
一旦拥有合适的服务器,就可以通过将超时值设置为1毫秒来强制进行connectionTimeout。您可以通过代码完成
MongoClientOptions.builder().connectTimeout(1)
或通过向您的数据库URL添加设置
mongodb://localhost:27017/your_database?connectTimeoutMS=1