CouchbaseError:超出操作的客户端超时

时间:2015-03-31 22:48:30

标签: node.js timeout couchbase

我正在使用NodeJS SDK运行couchbase服务器3.0.1。我已经设置了一个带有两个桶的服务器,没有文件。我通过以下方式打开了一个连接:

var dbCluster = new couchbase.Cluster([my_host]); var db = dbCluster.openBucket( [my_bucket_name]);

当我尝试执行'db.upsert'时,我收到以下错误:

Error: CouchbaseError: Client-Side timeout exceeded for operation. Inspect network conditions or increase the timeout

现在最奇怪的部分是文档仍然被添加。因此命令执行成功,但仍然返回错误。此外,调用执行速度非常快,绝对不需要2.5秒(默认操作超时)。

在此之后:Couchbase times out after few seconds我尝试通过以下方式增加超时:

db.operationTimeout = 5000;

这不起作用。调用再次成功执行,但即使指定的超时未通过,也会返回超时错误(调用非常快,比5秒快得多)。

我能找到的唯一其他支持就是在这个Google网上论坛中,但似乎已经死了:https://groups.google.com/forum/#!topic/couchbase/scrTb94Mj3w

我正在运行OSX Yosemite 10.10.2。任何帮助都会非常感激,因为我不知道接下来要去哪里看。

谢谢,

以下是供参考的代码:

var couchbase = require('couchbase');

var dbCluster = new couchbase.Cluster("mylocalhostname");
var db = dbCluster.openBucket( "mybucketname", function(err){
    // no errors here
    if(err){
        console.log("Can't open bucket");
        throw err;
    }
    else {
        console.log("Successfully opened bucket");
    }
});

db.operationTimeout = 5000;

db.upsert("docname", someJSON, function(err, result){

    if(err){
        // get an error here, even though the call successfully executes
        return console.log("Error: " + err);
    }
});

2 个答案:

答案 0 :(得分:0)

结果证明问题出在集群连接中。根据文档,我将我的连接指定为:

"couchbase://my.domain.com", where "my.domain.com" pointed to 127.0.0.7.

删除“couchbase://”解决了我的问题。所以通过连接:

"my.domain.com"

解决了这个问题。有趣的是,通过以下方式连接:

"couchbase://127.0.0.7"

也有效。不确定它们是如何相关的,以及它如何仍然能够更新文档,但这解决了它。如果有人想出一个更令人满意的答案,就不会将其标记为已被接受。

答案 1 :(得分:0)

我在AWS上遇到了与CouchBase相同的问题。我通过向任何人开放以下端口来解决它:

22 tcp 0.0.0.0/0 4369 tcp 0.0.0.0/0 4984 tcp 0.0.0.0/0 8080 tcp 0.0.0.0/0 8088 tcp 0.0.0.0/0 8091 tcp 0.0.0.0/0 8092 tcp 0.0.0.0/0 11209 tcp 0.0.0.0/0 11210 tcp 0.0.0.0/0 11211 tcp 0.0.0.0/0 11214 tcp 0.0.0.0/0 11215 tcp 0.0.0.0/0 18091 tcp 0.0.0.0/0 18092 tcp 0.0.0.0/0

有关详细信息,请参阅:http://docs.couchbase.com/couchbase-manual-2.5/cb-install/#network-ports