微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Phantom 驱动程序实现多数据中心 Cassandra

如何解决使用 Phantom 驱动程序实现多数据中心 Cassandra

我正在使用 Cassandra 3.x 和 Phantom 驱动程序 (scala), 并将我的 Cassandra 部署从简单的三节点集群修改为包含两个数据中心的多数据中心 Cassandra 部署:

  1. 事务性 - “主要”数据中心,所有读/写都发生在其中(某些分析作业完成的读/写除外)。
  2. 分析 - 仅用于分析目的的数据中心。分析作业应在此数据中心上运行(即读/写)。

两个数据中心都配置了适当的告密者和复制因子策略。

根据 this article(“工作负载分离”部分),我应该能够从“事务”数据中心读取/写入,并在“分析”数据中心上运行分析作业,但是,我我不知道如何让它与幻影驱动程序一起工作。

如何将驱动程序配置为从正确的数据中心读取/写入?

hosts 类中的 ContactPoints 设置为来自事务数据中心的节点是否只会起到作用?

解决方法

默认情况下,Java 驱动程序 3.x 使用所谓的 DCAware load balancing policy 结合 TokenAware 策略。可以使用builder的withLocalDc函数显式配置数据中心,但可以省略它,驱动程序将使用初始化时到达的第一个接触点的数据中心。因此,您可以仅将 Phantom 指向事务 DC 中的服务器,并且它只能使用它(直到您使用非本地一致性级别,例如 QUORUM/SERIAL、EACH_QUORUM 等)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。