我正在使用Cassandra 3.x和Phantom驱动程序(scala(,以及将我的Cassandra部署从一个简单的三节点集群修改为一个由两个数据中心组成的多数据中心Cassandra配置:
- 事务性-;主";数据中心,所有读取/写入都发生在该数据中心(某些分析工作完成的读取/写入除外(
- Analytics-仅用于分析目的的数据中心。分析作业应在此数据中心上运行(即读/写(
两个数据中心都配置了正确的告密和复制因子策略。
基于这篇文章("工作负载分离"部分(,我应该能够从;交易性的";数据中心,并在";Analytics";然而,数据中心,我不确定如何让它与幻影驱动程序一起工作。
如何配置驱动程序以从正确的数据中心进行读/写?
将ContactPoints
类中的hosts
设置为事务性数据中心的节点只会起作用吗?
默认情况下,Java驱动程序3.x使用所谓的DCAware负载平衡策略和TokenAware策略。数据中心可以通过使用构造器的withLocalDc
功能进行显式配置,但它可以省略,并且驱动程序将使用初始化时到达的第一个接触点的数据中心。因此,您只需将Phantom指向事务DC中的服务器,它将仅与它一起工作(直到您使用非本地一致性级别,如QUORUM/SERIAL、EACH_QUORUM等(