管理多个Cassandra会话



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

在我的C*客户端中,我应该查询这两个集群。我使用的是弹簧启动版的卡桑德拉。我正在尝试使用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也这样做怎么样?

在查询的任何给定时间,它可以转到会话A或会话B。

任何指针都值得赞赏

感谢

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

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

最新更新