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 に答える