我正在和Cassandra 3.9合作。我有一些疑问,比如我现在有2台物理机器,并希望以最佳方式存储数据: -
1)两台机器上的分布式订单 2)另一种在一台机器上存储完整数据并将整个副本复制到另一台机器上的方法。 (首选)
现在如果我创建具有3个节点的2个DC,即在我的设置1机器将具有3个本地节点和同样第二个机器。那么我将如何制作这两个独立的DC1& DC2相互通信?
此外,我尝试使用CCM进行群集设置,但它因错误而停止" CCM警告下载3.9.0失败,因为在字符串格式化过程中并未转换所有参数。"
当我收到错误时,我正在使用此查询: - ccm create --version 3.9.0 --nodes 3 --start test
答案 0 :(得分:0)
cassandra如何分发数据检查this回答。
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将复制两个不同节点中的每一行。如this回答中所述,Cassandra将按顺时针方向选择节点。
现在要使它与两个数据中心一起工作,在你的情况下,两台不同的机器,你需要指定正确的告密。冷藏this页面,这解释了属性文件snitch和cassandra-topology.properties,它定义了数据中心配置。这两个DC将表现为一个cassandra服务器。每个节点都可以担任协调员的角色,该服务器决定。