0

我正在使用 Cassandra 3.9 。我有一些疑问,例如我目前有 2 台物理机,并希望以最佳方式存储数据:-

1)在两台机器上以分布式顺序进行。
2)在一台机器上存储完整数据并将整个副本复制到另一台机器上的另一种方式。(第一优先)

现在,如果我创建 2 个 DC,每个 DC 有 3 个节点,即在我设置的情况下,1 台机器将有 3 个本地节点,同样还有第二台机器。那么如何让这 2 个独立的 DC1 和 DC2 相互通信呢?

我也尝试使用 CCM 进行集群设置,但它停止并出现错误“CCM 警告下载 3.9.0 失败,因为在字符串格式化期间并非所有参数都转换了。”

当我收到错误时,我正在使用此查询:- ccm create --version 3.9.0 --nodes 3 --start test

4

1 回答 1

0

cassandra 如何分发数据检查这个答案。

2) The other way to store complete data on 1 machine and replicate the entire copy onto the other machine. (first preference)

您在 cassandra.yaml 文件中的配置决定了数据的放置位置。数据复制取决于您的键空间定义 -

CREATE KEYSPACE ums_db WITH replication = {'class': 'NetworkTopologyStrategy', 'DC1': '2', 'DC2': '2'} ;

对于此模式定义,cassandra 将复制两个不同节点中的每一行。如本答案所述,Cassandra 将按顺时针方向选择节点 。

现在要让它与两个数据中心一起工作,在你的情况下是两台不同的机器,你需要指定适当的告密者。参考这个页面,这解释了一个属性文件snitch和 cassandra-topology.properties,它定义了数据中心的配置。两个 DC 将充当一个 cassandra 服务器。每个节点都可以扮演协调者的角色,由服务器决定。

于 2017-01-19T11:29:14.057 回答