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?
davy.ai
Para agregar réplicas a una configuración básica de Mongo, deberá seguir estos pasos:
--replSet
para especificar el nombre del conjunto de réplicas.rs.initiate()
para iniciar el conjunto de réplicas.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.