MongoDB on Cloud - Jmeter连接不工作



我正在尝试连接到正在运行mongodb实例的云服务器。当我试图从Jmeter连接时,我得到以下异常。

com.mongodb。monsocketopenexception:异常打开套接字(SocketChannelStream.java:63) ~[mongodb -java-driver-3.9.1.jar:?]][mongodb.internal.connection. internalstreamconnection .open(InternalStreamConnection.java:126)]$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) ~[mongodb -java-driver-3.9.1.jar:?]]在java.lang.Thread.run(Thread.java:831) ~[?:?]]产生原因:java.net.SocketTimeoutException:连接超时在sun.nio.ch. socketchannelimpl . finishtimeconnect (SocketChannelImpl.java:1143) ~[?:?]]在sun.nio.ch.SocketChannelImpl.blockingConnect(SocketChannelImpl.java:1181) ~[?:?]]在sun. io.ch. socketadapter .connect(socketadapter .java:97) ~[?][mongodb.internal.connection. socketstreamhelper .initialize(SocketStreamHelper.java:64)]]SocketChannelStream.java:72 ~[mongo-java-driver-3.9.1.jar:?]](SocketChannelStream.java:60) ~[mongodb -java-driver-3.9.1.jar:?]…3

我能够使用VPN和SSL公共证书连接到云服务器,但不能通过JMeter。有人能帮帮忙吗?

我尝试使用JMeter连接脚本进行连接:


import com.mongodb.*
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoClient;
import com.mongodb.MongoClientSettings;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import java.util.Arrays;
try {
MongoClientSettings settings = MongoClientSettings.builder()
.applyToClusterSettings {builder -> 
builder.hosts(Arrays.asList(new ServerAddress(vars.get("mongoHost"),vars.get("mongoPort").toInteger())))}
.build();

MongoClient mongoClient = MongoClients.create(settings);

MongoDatabase database = mongoClient.getDatabase(vars.get("databaseName"));
MongoCollection<Document> collection = database.getCollection(vars.get("collectionName"));

vars.putObject("collection", collection);

return "Connected to " + vars.get("collectionName");
}
catch (Exception e) {
SampleResult.setSuccessful(false);
SampleResult.setResponseCode("500");
SampleResult.setResponseMessage("Exception: " + e);
}

所有的字段名都已验证,但我不确定是否必须在连接url中输入ssl验证详细信息。

我认为您需要至少添加下一行到您的脚本,以便MongoClientSettings将尝试创建SSL连接:

.applyToSslSettings(builder -> builder.enabled(true))

需要将证书放入Java密钥存储库中,并且需要配置JMeter以通过特殊的系统属性使用密钥存储库。

更多信息:MongoDB驱动教程>连接MongoDB>TLS/SSL

最新更新