0

我有多个 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 设置 cassandra 操作的示例,如何为 sessionB 做同样的事情?

在任何给定的时间基础上,查询都可以转到 sessionA 或 sessionB。

任何指针表示赞赏

谢谢

4

1 回答 1

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);
    }
}
于 2015-12-18T16:34:33.567 回答