管理多个Cassandra会话

时间:2015-12-17 00:03:52

标签: datastax datastax-enterprise cql3 datastax-java-driver spring-data-cassandra

我有多个Cassandra集群。每个群集都有特定的联系点集。每个群集都有单独的表/ CF。

在我的C *客户端中,我应该查询两个集群。我正在使用Cassandra的spring-boot版本。我正在尝试使用CassandraOperations来执行查询。我该怎么做呢?

@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());
}

上面是一个例子,我使用sessionA设置cassandraoperations,如何为sessionB做同样的事情?

在任何给定的时间基地都不要查询,它可以转到sessionA或sessionB。

赞赏任何指针

由于

1 个答案:

答案 0 :(得分:0)

通过为每个集群管理器创建单独的类来找到一种方法。

@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);
    }
}