0

I have set up docker and created four containers (each having single mongodb instance installed with authetication enabled) to enable mongodb replication with arbiter. I have also expose mongodb's 27017 port to host machine so that outer application should able to connect it but I am not able to connect with my JAVA Spring Application from Eclipse.

Following is mongo uri I used:

mongodb://username:[email protected]:18088,192.168.1.102:18089,192.168.1.102:18099/?authSource=dbName;replicaSet=rs0;readPreference=secondaryPreferred;authMechanism=SCRAM-SHA-1;waitQueueMultiple=100 Exception"Timed out after 30000 ms while waiting for a server that matches com.mongodb.client.internal.MongoClientDelegate$1@739c3a21. Client view of cluster state is {type=REPLICA_SET, servers=[{address=mongo3:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongo3}, caused by {java.net.UnknownHostException: mongo3}}, {address=mongo2:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongo2}, caused by {java.net.UnknownHostException: mongo2}}, {address=mongo1:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongo1}, caused by {java.net.UnknownHostException: mongo1}}, {address=mongorb:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongorb}, caused by {java.net.UnknownHostException: mongorb}}]; nested exception is com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches com.mongodb.client.internal.MongoClientDelegate$1@739c3a21. Client view of cluster state is {type=REPLICA_SET, servers=[{address=mongo3:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongo3}, caused by {java.net.UnknownHostException: mongo3}}, {address=mongo2:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongo2}, caused by {java.net.UnknownHostException: mongo2}}, {address=mongo1:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongo1}, caused by {java.net.UnknownHostException: mongo1}}, {address=mongorb:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongorb}, caused by {java.net.UnknownHostException: mongorb}}]"

1 Answer 1

1

This bit:

{address=mongo3:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongo3}, caused by {java.net.UnknownHostException: mongo3}}

is being repeated for each of your mongo instances, and essentially it means that your mongo instances are unreachable, since mongorb, mongo1, mongo2 and mongo3 aren't being adequately mapped to the corresponding IPs.

It also appears as if you're trying to map each of the instances to a different port on 192.168.1.102, yet your code is making all requests on the default port, 27017.

I'm not familiar with Eclipse or Spring, but you should probably configure the host, IP and port for each instance, and then it should run fine.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.