[英]Beans for multiple Cassandra Clusters with RESTful Spring MVC
How do we connect to multiple Cassandra Clusters using Beans and how do we configure the Controller to use a specific cluster for an operation ? 我们如何使用Bean连接到多个Cassandra集群,以及如何配置Controller以将特定集群用于操作? Do we keep these connections live ?
我们是否保持这些连接有效?
I have this CassandraOperations code: 我有这个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());
}
}
Currently, your only option is configuring multiple CassandraTemplate
instances that use multiple Session
s. 当前,您唯一的选择是配置使用多个
Session
的多个CassandraTemplate
实例。 A Cassandra Session
(and Cluster
) and a CassandraTemplate
have a strong 1:1 relation. Cassandra
Session
(和Cluster
)和CassandraTemplate
具有很强的1:1关系。
This will change will Spring Data Cassandra 2.0 as we're going to add a SessionFactory
interface that is pluggable regarding its implementation so you can define own routing. 这将改变Spring Data Cassandra 2.0,因为我们将添加一个
SessionFactory
接口,该接口的实现可插入,因此您可以定义自己的路由。 Additionally, we will add an AbstractRoutingSessionFactory
that is similar to AbstractRoutingDataSource
. 此外,我们将增加一个
AbstractRoutingSessionFactory
类似于AbstractRoutingDataSource
。 See https://jira.spring.io/browse/DATACASS-330 for further details and leave your thoughts in there. 有关更多详细信息,请参见https://jira.spring.io/browse/DATACASS-330 ,并将您的想法保留在那里。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.