im2kul
im2kul

Reputation: 297

Managing Multiple Cassandra Sessions

I have multiple Cassandra clusters. Each cluster has specific set of contact points. Each cluster has separate set of tables/CF.

In my C* client I am supposed to query both clusters. I am using spring-boot version of the Cassandra. I am trying to use CassandraOperations to do the queries. How do I go about doing this?

@Bean
public CassandraOperations cassandraTemplate(Session sessionA) throws Exception {
     return new CassandraTemplate(sessionA);
}

@Bean
public CassandraMappingContext mappingContext() {
    return new BasicCassandraMappingContext();
}

@Bean
public CassandraConverter converter() {
    return new MappingCassandraConverter(mappingContext());
}

Above is a example whereby I setup cassandraoperations using sessionA, how about doing the same for sessionB?

At any given time base don the query, it can go to either sessionA or sessionB.

Any pointers are appreciated

Thanks

Upvotes: 0

Views: 1045

Answers (1)

im2kul
im2kul

Reputation: 297

Found a way to do this by creating separate classes for each cluster manager.

@Component
@Primary
public class CassandraTemplateA extends CassandraTemplate{

    @Autowired
    public CassandraTemplateA(CassandraConverter converter) {
        super(sessionA, converter);
    }
}

@Component
@Primary
public class CassandraTemplateB extends CassandraTemplate{

    @Autowired
    public CassandraTemplateB(CassandraConverter converter) {
        super(sessionB, converter);
    }
}

Upvotes: 0

Related Questions