【问题标题】:Managing Multiple Cassandra Sessions管理多个 Cassandra 会话
【发布时间】: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。

欢迎指点

谢谢

【问题讨论】:

    标签: datastax datastax-enterprise cql3 datastax-java-driver spring-data-cassandra


    【解决方案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 负责处理具有两个不同键空间的两个会话?我面临一个问题,我需要连接到两个不同的键空间。
    猜你喜欢
    • 1970-01-01
    • 2016-01-03
    • 2021-08-05
    • 1970-01-01
    • 2017-01-24
    • 2022-01-03
    • 1970-01-01
    • 2021-02-24
    • 2011-04-03
    相关资源
    最近更新 更多