Beansを使用して複数のCassandra Clustersに接続するにはどうすればいいでしょうか。これらの接続を生き生きとしていますか?Rustful Spring MVCを使用した複数のCassandraクラスタ用Beans
私はこのCassandraOperationsコードを持っている:
@Configuration
@PropertySource(value = { "classpath:META-INF/cassandra.properties" })
@EnableCassandraRepositories(basePackages = { "com.rg" })
public class CassandraConfig {
@Autowired
private Environment environment;
private static final Logger LOGGER = LoggerFactory.getLogger(CassandraConfig.class);
@Bean
public CassandraClusterFactoryBean cluster() {
CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean();
cluster.setContactPoints(environment.getProperty("cassandra.contactpoints"));
cluster.setPort(Integer.parseInt(environment.getProperty("cassandra.port")));
return cluster;
}
@Bean
public CassandraMappingContext mappingContext() {
return new BasicCassandraMappingContext();
}
@Bean
public CassandraConverter converter() {
return new MappingCassandraConverter(mappingContext());
}
@Bean
public CassandraSessionFactoryBean session() throws Exception {
CassandraSessionFactoryBean session = new CassandraSessionFactoryBean();
session.setCluster(cluster().getObject());
session.setKeyspaceName(environment.getProperty("cassandra.keyspace"));
session.setConverter(converter());
session.setSchemaAction(SchemaAction.NONE);
return session;
}
@Bean
public CassandraOperations cassandraTemplate() throws Exception {
return new CassandraTemplate(session().getObject());
}
}
次のシナリオのオプションは何ですか? 1つのクラスタに2つのキースペースがあり、別のクラスタに1つのキースペースがあります。 すべきこと: 1.)各クラスタと、クラスタ内のそれぞれのキースペースに接続するために異なるセッションを使用する3つの異なるテンプレートBeanに必要な接続を与える2つのBeanを作成します。 2.)3つの異なるBeanスタック(クラスタ接続、セッションBean)を作成します。 – arshellium
3. CassandraTemplateを使用してBeanスタックを作成します。 Cassandraリポジトリを使用するかどうかに応じて、別の '@EnableCassandraRepositories(cassandraTemplateRef = ...)'アノテーションのコンフィグレーションに応じて別々のリポジトリインタフェースを3つ作成してテンプレートリファレンスを作成する必要があります。 – mp911de