MongoDB - сервер не выбран с асинхронным драйвером java и набором реплик - PullRequest
0 голосов
/ 18 января 2019

У меня раздражающая проблема с подключением асинхронного драйвера java к набору реплик, размещенному в Mongodb Atlas.

Я использую приведенный ниже код для подключения к серверу через Mongo DB Java Async API 3.8.2 и 3.9.1.

Я могу соединиться точно такой же строкой соединения с драйвером синхронизации.

private static String str = "mongodb+srv://RWUser:****@foo-cluster-s813m.mongodb.net/?retryWrites=true&streamType=netty";

public static void main(String... args) throws InterruptedException {
    CountDownLatch latch = new CountDownLatch(1);

    MongoClient mongoClient = MongoClients.create(str);
    MongoDatabase database = mongoClient.getDatabase("mydb");
    database.createCollection("coll", (result, t) -> latch.countDown());
    latch.await();
}

Вот просмотр логов:

INFO: Cluster created with settings {hosts=[foo-cluster-shard-00-00-s813m.mongodb.net:27017, foo-cluster-shard-00-01-s813m.mongodb.net:27017, foo-cluster-shard-00-02-s813m.mongodb.net:27017], mode=MULTIPLE, requiredClusterType=REPLICA_SET, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500, requiredReplicaSetName='foo-cluster-shard-0'}
janv. 18, 2019 11:31:37 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Adding discovered server foo-cluster-shard-00-00-s813m.mongodb.net:27017 to client view of cluster
janv. 18, 2019 11:31:37 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Adding discovered server foo-cluster-shard-00-01-s813m.mongodb.net:27017 to client view of cluster
janv. 18, 2019 11:31:37 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Adding discovered server foo-cluster-shard-00-02-s813m.mongodb.net:27017 to client view of cluster
janv. 18, 2019 11:31:37 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: No server chosen by com.mongodb.async.client.ClientSessionHelper$1@2794eab6 from cluster description ClusterDescription{type=REPLICA_SET, connectionMode=MULTIPLE, serverDescriptions=[ServerDescription{address=foo-cluster-shard-00-00-s813m.mongodb.net:27017, type=UNKNOWN, state=CONNECTING}, ServerDescription{address=foo-cluster-shard-00-01-s813m.mongodb.net:27017, type=UNKNOWN, state=CONNECTING}, ServerDescription{address=foo-cluster-shard-00-02-s813m.mongodb.net:27017, type=UNKNOWN, state=CONNECTING}]}. Waiting for 30000 ms before timing out

Насколько я понимаю, соединение установлено, кластер обнаружен, но первичный клиент не выбран со стороны клиента.

Есть ли дополнительные свойства для настройки? На стороне нетто возможно? Netty Stream Factory используется для обработки SSL.

...