es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La configuración de Mongo no permite transacciones.

Estoy obteniendo esta excepción al agregar Transaccional a mi código Spring mongo.

Caused by: com.mongodb.MongoClientException: Transactions are not supported by the MongoDB cluster to which this client is connected

Este es mi código: @Configuration

“`@EnableTransactionManagement
@EnableMongoRepositories(basePackages = { "com.repository" })
public class MongoConfig extends AbstractMongoClientConfiguration {

@Value("${spring.data.mongodb.uri}")
private String connection;

@Value("${spring.data.mongodb.database}")
private String database;

@Autowired
MongoProperties mongoProperties;

@Bean
MongoTransactionManager transactionManager(MongoDatabaseFactory dbFactory) {
return new MongoTransactionManager(dbFactory);
}

@Override
protected String getDatabaseName() {
return "hendrix";
}

@Override
public MongoClient mongoClient() {
final ConnectionString connectionString = new ConnectionString(connection);
final MongoClientSettings mongoClientSettings = MongoClientSettings.builder()
.applyConnectionString(connectionString)
.build();
return MongoClients.create(mongoClientSettings);
}

}

“`

¿Cómo agrego réplicas a una configuración de Mongo básica a la que tengo acceso? Si el clúster está en AWS, ¿qué ajuste tendría que cambiar?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para agregar réplicas a una configuración básica de Mongo, deberá seguir estos pasos:

    1. Configurar al menos dos nodos adicionales para el conjunto de réplicas.
    2. Configure cada nodo con la misma versión de MongoDB y el mismo motor de almacenamiento que el nodo principal.
    3. Configurar la conectividad de red entre los nodos.
    4. Inicie un proceso mongod en cada nodo con la replicación habilitada, utilizando la opción --replSet para especificar el nombre del conjunto de réplicas.
    5. En el nodo principal, ejecute la función rs.initiate() para iniciar el conjunto de réplicas.
    6. Agregue cada nodo secundario al conjunto de réplicas ejecutando la función rs.add() en el nodo principal.

    Si el clúster está en AWS, es posible que deba modificar los grupos de seguridad para permitir el tráfico entre nodos, configurar roles o usuarios IAM apropiados y configurar supervisión y alerta. Además, es posible que deba considerar el uso de servicios de AWS como DocumentDB o DynamoDB en lugar de ejecutar MongoDB en instancias EC2.

Comments are closed.