管理多个 Cassandra 会话
Posted
技术标签:
【中文标题】管理多个 Cassandra 会话【英文标题】:Managing Multiple Cassandra Sessions 【发布时间】:2016-03-23 07:44:07 【问题描述】:我有多个 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。
欢迎指点
谢谢
【问题讨论】:
【参考方案1】:通过为每个集群管理器创建单独的类找到了一种方法。
@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);
【讨论】:
您能否分享一下这两个模板是如何被使用的,或者在幕后它们是如何被 Spring 自动使用的,而 Spring 负责处理具有两个不同键空间的两个会话?我面临一个问题,我需要连接到两个不同的键空间。以上是关于管理多个 Cassandra 会话的主要内容,如果未能解决你的问题,请参考以下文章