【问题标题】:Cassandra cluster works with 2 nodes?Cassandra 集群与 2 个节点一起工作?
【发布时间】:2018-07-19 09:17:23
【问题描述】:

我有 2 个复制因子 = 1 的节点,这意味着每个节点将有 1 组数据副本。

根据上面的描述,当我使用 murmur3partitioner 时,

  1. 节点之间是否共享数据?比如节点 1 中 50% 的数据和节点 2 中 50% 的数据?
  2. 当我读取节点 1 的请求时,它是否会在内部与节点 2 连接以保持一致性?

我的目的是制作一个副本,两个节点应该独立地处理请求,而不需要相互通信。

【问题讨论】:

    标签: cassandra cassandra-node-driver


    【解决方案1】:

    首先,请尽量在每个帖子中只问一个问题。

    我有 2 个复制因子 = 1 的节点,这意味着每个节点将有 1 组数据副本。

    不正确。 RF=1 表示您的整个集群将拥有 1 个数据副本。

    数据会在节点之间共享吗?比如节点 1 中 50% 的数据和节点 2 中 50% 的数据?

    这就是它将尝试做的事情。请注意,它可能并不准确。可能是 49/51-ish。

    当我读取到节点 1 的请求时,它会在内部与节点 2 连接以保持一致性吗?

    如果 RF=1,则不会。根据您的分区键的哈希令牌值,它将仅定向到包含数据的节点。

    例如,RF=2 有 2 个节点,这取决于为您的操作设置的一致性级别。在 ONE 处读取将始终只读取一个副本。在 QUORUM 处读取将始终从具有 2 个节点的 2 个副本中读取(毕竟 2 的 QUORUM 等于 2)。全部读取将需要所有副本的响应,如果它们不同意,则启动读取修复。

    需要注意,但您不能强制驱动程序连接到特定的 Cassandra 节点。您可以提供一个端点,但它会通过 gossip 找到另一个端点,并根据需要使用它。

    【讨论】:

    • 感谢您提供清晰的信息。如果有 2 个节点的 RF=2 在任何情况下两个节点都互相交谈以获取数据请求?或者它只会从一个节点返回数据而不联系另一个节点?
    • @Sathish 同样,这取决于您查询的一致性级别。如果您将驱动程序设置为 ONE 查询,它只会与一个节点对话以验证副本。任何高于此的值,它都会尝试在多个节点上验证副本。
    猜你喜欢
    • 2016-08-14
    • 2017-10-27
    • 2020-07-11
    • 2017-06-03
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多