Reputation: 297
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
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