【发布时间】:2019-10-31 07:19:10
【问题描述】:
我正在尝试使用 spring data cassandra 连接到 2 个不同的 cassandra 集群。但它总是只使用第一个 cassandra 集群配置。第二个没有影响。知道我在做什么错吗?这是我正在使用的配置:
第一个 cassandra 集群配置:
@Configuration
@EnableCassandraRepositories(
basePackageClasses = SourceRepository.class
)
public class SourceCassandraConfig extends AbstractCassandraConfiguration {
@Override
public String getContactPoints() {
return "localhost";
}
@Override
public int getPort() {
return "9051";
}
@Override
protected String getKeyspaceName() {
return "source_keyspace";
}
}
第二个 cassandra 集群配置:
@Configuration
@EnableCassandraRepositories(
basePackageClasses = TargetRepository.class,
cassandraTemplateRef = "targetCassandraTemplate"
)
public class TargetCassandraConfig extends AbstractCassandraConfiguration {
@Override
public String getContactPoints() {
return "localhost";
}
@Override
public int getPort() {
return "9052";
}
@Override
protected String getKeyspaceName() {
return "target_keyspace";
}
@Override
@Bean("targetSession")
public CassandraSessionFactoryBean session() throws ClassNotFoundException {
final CassandraSessionFactoryBean session = super.session();
session.setKeyspaceName(getKeyspaceName());
session.setCluster(cluster().getObject());
return session;
}
@Override
public CassandraCqlClusterFactoryBean cluster() {
CassandraCqlClusterFactoryBean cluster = super.cluster();
cluster.setContactPoints(contactPoints);
cluster.setPort(port);
return cluster;
}
@Bean("targetCassandraTemplate")
public CassandraAdminOperations cassandraTemplate(
@Qualifier("targetSession") final CassandraSessionFactoryBean session) throws Exception {
return new CassandraAdminTemplate(session.getObject(), cassandraConverter());
}
}
我总是看到只有第一个集群节点被添加
com.datastax.driver.core.Cluster : New Cassandra host localhost/127.0.0.1:9051 added
我做错了什么?
【问题讨论】:
标签: cassandra spring-data spring-data-cassandra