【问题标题】:some questions about couchbase's replicas detail关于 couchbase 的副本详细信息的一些问题
【发布时间】:2014-07-10 22:37:37
【问题描述】:

这里有几个关于couchbase中replica功能的问题,希望能得到解答。首先,我想谈谈我对沙发床的理解;如果我的集群中有 10 个节点,并且我将每个存储桶中的副本数设置为 3( 实际上我发现最大值是 3 ,我找不到任何其他方法使它大于 3),那么,这是否意味着桶中的每个数据只能复制到 其他三个节点(我猜这三个节点应该是随机选择的,但可以手动选择)总共10个节点;此外,如果 10 个节点中的一些节点出现停机, 会不会造成数据丢失?

我的问题总结如下;

1、couchbase中replica数的最大值是3,对还是错?如果错了,怎么会大于3。

2,我猜这三个节点应该是随机选择的,但是可以手动选择吗

3,如果我的理解是正确的,当我们发现一些节点处于停机状态时,它会丢失数据。在这种情况下我们如何避免损失

【问题讨论】:

    标签: replication couchbase bucket


    【解决方案1】:

    couchbase中replica数的最大值是3,对还是错?如果错了,怎么会大于3。

    您最多可以拥有 3 个副本,我们在生产环境中运行 1 个副本,但这一切都取决于您的集群有多大以及对性能的影响。您拥有的副本越多,节点间的通信和传输就会越多。

    当您有 3 个副本时,这意味着每个节点都将其数据复制到其他 3 个节点,这意味着您可以处理集群中的 3 个节点故障。这可能会发生,但不太可能发生,更有可能发生的是机器死机,然后 Couchbase 可以自动故障转移并提升保存在其他节点中的副本以服务请求/更新。

    Couchbase 的系统很不错,因为这意味着您可以通过故障转移节点和自动重新平衡来扩大和缩小规模。

    我猜这三个节点应该是随机选择的,但是我可以手动选择吗?

    你对哪些节点副本没有发言权,实际上我认为 Couchbase 的所有分片和副本过程都脱离了开发人员的手中是一件好事,这都是一个自动过程。

    如果我的理解是正确的,当我们发现某些节点处于停机状态时,它会丢失数据。在这种情况下,我们如何避免数据丢失?

    正如我之前所说,如果一个节点出现故障,则会提升一个副本,如果有 3 个备份,您需要 3 个节点出现故障才能注意到发生了什么事。在生产环境中,您应该已经为每个单独的节点设置了一个警告系统,无论是 New Relic、Nagios 等,都会报告服务器是否死机。如果出现灾难性问题并且您丢失了 4 个以上的节点,那么是的,您将丢失数据。

    请记住,Couchbase 中的自动故障转移不是即时的,但仍然非常快。如果您需要整个集群的停机时间,例如需要重新启动的服务器维护或其他事情,那么可以将节点故障转移,将其从集群中删除,对其执行操作和任务,然后将其添加回集群并重新平衡。根据需要为尽可能多的节点再次执行这些停止,当我忘记设置需要重新启动系统的特定 Linux 内容时,我个人已经这样做了。

    总体而言,为了避免数据丢失,请监控您的服务器,对集群中的数据进行(每天/每小时)备份,并为您的工作速度配备合适的机器。

    希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-01
      • 2012-03-19
      • 1970-01-01
      • 2013-10-10
      • 1970-01-01
      • 2020-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多