【问题标题】:How to connect to two different clusters?如何连接到两个不同的集群?
【发布时间】:2020-03-21 00:12:27
【问题描述】:

是否可以使用 spring-boot 2.1.x(带有 spring-data-cassandra 2.*)连接到两个不同的集群?

如果可能,我如何将存储库(或模板,或 CRUDRepository)绑定到其中一个集群?

我可以对两个集群使用相同的模板(并可能从中创建两个 bean)吗? 假设我想将数据存储在具有短 TTL 的“热”集群中以及具有较长 TTL 的“冷”集群中(虚构示例,因此不要批评实际用例;))

【问题讨论】:

    标签: spring-boot spring-data-cassandra


    【解决方案1】:

    看看AbstractRoutingSessionFactory。您可以使用这个基类来构建您自己的Session 路由器,例如ThreadLocal 存储。棘手的一点是要知道何时在会话之间切换。

    您还可以通过实现自己的 SessionFactory 来概括该概念,该 SessionFactory 由断路器或 Session 呼叫路由到的设置控制。这一切都是透明地发生的。只需确保配置您自己的 CassandraTemplate bean 以获取 SessionFactory,因为 Spring Boot 默认为单个 Session

    存储库在 CassandraTemplate bean 之上工作。

    【讨论】:

    • 在我看来,如果我创建两个集群,来自 CassandraDataAutoConfiguration 的自动配置会抱怨不止一个集群 bean ...
    猜你喜欢
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 2022-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 2021-04-16
    相关资源
    最近更新 更多