【问题标题】:Couchbase get from replicaCouchbase 从副本中获取
【发布时间】:2016-12-06 11:52:31
【问题描述】:

我使用 couchbase 4.0.1 和 Java SDK。

这是我的代码:

bucket.async()
            .get(key)
            .onErrorResumeNext(throwable -> {
                if (throwable instanceof TimeoutException) {
                    return getBucket().async().getFromReplica(key, ReplicaMode.ALL);
                }
                return Observable.error(throwable);
            })
            .map(doc -> doc.content())
            .toBlocking()
            .singleOrDefault(null);

如果我得到 TimeoutException - 我去副本,但上周,由于服务器问题,我们从我们的一台服务器得到 OutOfMemory 异常。当然,我们没有从副本中获取文档,我们自己也遇到了一些例外情况。

我想知道我是否应该在任何异常中去副本?

谢谢,

伊多

【问题讨论】:

    标签: couchbase couchbase-java-api


    【解决方案1】:

    总是访问副本对某些类别的错误没有帮助,例如DocumentDoesNotExistException 当然。

    对于其他可能表明集群范围问题的人,例如 CouchbaseOutOfMemoryException,转到副本是一种选择但是它可能会给集群带来更大的压力并使问题变得更糟。

    最好还是退出,稍等片刻,然后重试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      • 2014-07-08
      • 1970-01-01
      相关资源
      最近更新 更多