【发布时间】:2018-12-27 02:54:31
【问题描述】:
我们使用多数据中心 (DC) cassandra 集群。在写入集群期间,我只希望 LOCAL DC 在其节点上执行写入,因为我们已经仅根据启动写入的源将写入请求路由到所需的 DC。因此,我只希望 LOCAL DC 处理写入,而不希望其他 DC 在其节点上执行写入。但后来由于跨 DC 节点之间的复制,我希望写入的数据能够跨 DC 复制。当我首先将写入限制为仅一个 DC 时,是否可以跨 DC 进行复制?如果我在写入操作期间未打开与位于不同 DC 中的远程主机的连接,那么以后是否可以在 DC 之间进行数据复制。为什么我肯定需要所有 DC 中的数据副本,因为在从集群读取数据期间,我们希望从读取请求所在的任何 DC 读取数据,而不一定是 LOCAL。
有没有人可以解决这个问题?
【问题讨论】:
-
写后会立即读吗?您关闭 dcs 之间的连接多长时间?
-
@Laxmikant:根据我写的情况,目前还没有这样的要求。第二个问题我不明白。你能详细说明一下吗?谢谢
-
当您说您希望本地 dc 执行写入时,我假设您将使用写入 CL 作为 LOCAL_ONE 或 LOCAL_QUORAM ..我对吗?现在,如果您还使用 LOCAL 读取一致性级别,那么在读取数据时,如果未复制数据,您可能会获得陈旧的数据。您计划达到何种读写一致性级别?你每个直流电的射频是多少?这两个参数将决定一致性。
-
@Laxmikant:我不确定在我的案例中应用哪个一致性级别,我只是希望我的计划能够很好地执行。你知道哪个 CL 适合描述部分中的上述标准吗?
-
这个问题没有单一的答案,它取决于用例,但一般来说,大于复制因子 (N) 的一致性级别 (R+W) 将为您提供一致的结果
标签: apache datastax cassandra-3.0