我正在使用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);
}
});
答案 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