Error de conexión sin fin de replicaSet con soporte de datos de resorte y MongoDB
-
14-11-2019 - |
Pregunta
Estoy trabajando en aplicaciones donde estoy usando Mongodb con réplico.
En mi réplico, tengo 2 servidores DB y 1 árbitro. Estoy creando mi objeto Mongo de la siguiente manera
List<ServerAddress> servers = new ArrayList<ServerAddress>();
servers.add( new ServerAddress( "192.168.1.42", 27017 ) );
servers.add( new ServerAddress( "192.168.1.187", 27017 ) );
servers.add( new ServerAddress( "192.168.1.189", 27017 ) ); //Arbiter
MongoOptions mongoOptions = new MongoOptions();
mongoOptions.autoConnectRetry = true;
mongo = new Mongo(servers, mongoOptions);
mongo.slaveOk();
Cuando todos los servidores están arriba, no hay problemas, pero cuando cualquiera de los servidores desciende, el sistema se inicia a través de mensajes de error interminables, como se muestra a continuación
May 17, 2011 11:24:19 AM com.mongodb.ReplicaSetStatus$Node update
SEVERE: can't update node: 192.168.1.42:27017
java.io.IOException: couldn't connect to [/192.168.1.42:27017] bc:java.net.ConnectException: Connection refused: connect
at com.mongodb.DBPort._open(DBPort.java:206)
at com.mongodb.DBPort.go(DBPort.java:94)
at com.mongodb.DBPort.go(DBPort.java:75)
at com.mongodb.DBPort.findOne(DBPort.java:129)
at com.mongodb.DBPort.runCommand(DBPort.java:138)
at com.mongodb.ReplicaSetStatus$Node.update(ReplicaSetStatus.java:149)
at com.mongodb.ReplicaSetStatus.updateAll(ReplicaSetStatus.java:314)
at com.mongodb.ReplicaSetStatus$Updater.run(ReplicaSetStatus.java:263)
¿Puedes ayudarme a resolver esto?
¿Desde que estoy usando un conjunto de réplicas, si un servidor está inactivo no se supone que debe usar el nuevo primario e ignorar la primaria anterior?
Encuentre las imágenes a continuación para verificar el estado del conjunto de réplicas
Todos los servidores UP y 192.168.1.42 es el servidor principal
192.168.1.42 está abajo (temporalmente temporal) y 192.168.1.187 es el nuevo primario (los errores ocurren ahora)
192.168.1.42 está arriba y las actuaciones como un servidor secundario (error se apaga)
Actualizado: La base de datos funciona incluso si los mensajes de error se registran. ¿Hay un mecanismo para reducir / suprimir los mensajes de error?
Solución
This is a logging issue. It is now a warning, instead of an error.
The 2.6 driver (due out later this week) will be less verbose with logging for this. This is not an error but just a warning that that node is down when the background thread checks on the status of the replicaset members. You can use the current version in master if you want to test now: http://github.com/mongodb/mongo-java-driver
http://github.com/mongodb/mongo-java-driver/commit/ee7543a4f7cc26618cf78eab2a18bd33b3e101cc