ethrbunny Asked: 2014-11-10 05:09:52 +0800 CST2014-11-10 05:09:52 +0800 CST 2014-11-10 05:09:52 +0800 CST Cassandra:了解复制因子 772 假设情况: 设置一个有 N 个节点的 cassandra 集群。 创建一个键空间并设置replication_factor为 1 并使用SimpleStrategy. 添加一些数据。 删除 1 个节点。 这是否意味着现在丢失了 1/N 的数据? cassandra 2 个回答 Voted Best Answer alxgomz 2014-11-10T07:11:04+08:002014-11-10T07:11:04+08:00 对于读取请求,是的,这就是它的意思。1 的复制因子通常是您不希望使用 cassandra 的(除非您有一个节点)。 更高的复制因子会给你更好的弹性,但决定行可用性的主要参数实际上是一致性级别(这是特定于查询的)。 对于写入请求,ANY 一致性级别将使集群类型成为一种请求,即使该行的选定目标丢失(因为它会尝试使用提示切换来稍后提交写入)。 bltcrew 2015-01-30T09:30:50+08:002015-01-30T09:30:50+08:00 您没有告诉我们如何删除节点,如果您使用 nodetool 命令,则节点上的数据将在删除之前发送到其他节点。所以你会保留你的数据。 请参阅http://wiki.apache.org/cassandra/Operations#Removing_nodes_entirely 如果您的节点崩溃: 对于读取请求,您的数据会丢失 对于写请求: 对于像网络故障这样的短问题,您的集群(每个请求的协调器)将使用 HintedHandoff 功能处理该节点的数据,直到它重新出现 对于更长或永久的问题,您需要重新组织集群以再次以正确的方式确保 1/N,请参阅http://wiki.apache.org/cassandra/Operations#For_versions_1.2.0_and_above
对于读取请求,是的,这就是它的意思。1 的复制因子通常是您不希望使用 cassandra 的(除非您有一个节点)。
更高的复制因子会给你更好的弹性,但决定行可用性的主要参数实际上是一致性级别(这是特定于查询的)。
对于写入请求,ANY 一致性级别将使集群类型成为一种请求,即使该行的选定目标丢失(因为它会尝试使用提示切换来稍后提交写入)。
您没有告诉我们如何删除节点,如果您使用 nodetool 命令,则节点上的数据将在删除之前发送到其他节点。所以你会保留你的数据。
请参阅http://wiki.apache.org/cassandra/Operations#Removing_nodes_entirely
如果您的节点崩溃: