管理多个 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 会话的主要内容,如果未能解决你的问题,请参考以下文章

用于 Cassandra 的 Spark2 会话,sql 查询

Cassandra内建的工具nodetool - 监控篇

管理多个选项卡的 webapp 会话数据/控制器流

管理多个选项卡的 webapp 会话数据/控制器流

如何在多个 apache 服务器上管理单个 PHP5 会话?

cassandra高级操作之JMX操作