我正在尝试向我的Couchbase服务器发送几百个(确切地说是448个)小文档(每个20 KB),该服务器已使用couchbase AMI进行设置。我在Node.JS中使用了以下代码
<?php
namespace lib\Api;
class Password{
private $password;
private $salt;
private $hash;
public function __construct($password,$salt = ""){
$this->password = $password;
$this->salt = $salt;
$this->hash = $this->generateHash($this->password);
}
public function generateHash($password){
return hash('sha256',$password.$this->salt);
}
public function get(){
return $this->hash;
}
public function equals($password){
if($this->hash == $this->generateHash($password){
return true;
}
return false;
}
}
它成功发送了大约50个文档然后给我一个超时错误:
var couchbase = require('couchbase');
var cluster = new couchbase.Cluster('couchbase://54.xx.xxx.xxx:8091');
var bucket = cluster.openBucket('myBucket', 'password', function(err) {
if(err){
console.log("Can't open bucket");
throw err;
}
else {
console.log("Successfully opened bucket");
}
});
function addToDatabase(data) {
var key = some key;
bucket.upsert(key, data, function(err, result) {
if (err) {
return console.log(err);
}
console.log(result);
});
}
我正在使用couchnode的最新版本(2.1.2)。
我增加了存储桶连接的超时(bucket.operationTimeout = 500 * 1000)。在此更改之后,它成功发送所有文档,但它不是解决方案,因为我不知道operationTimeout的最佳值是什么。 任何建议将不胜感激。
答案 0 :(得分:1)
听起来我觉得你的资源受限于你的客户端,比如文件描述符(MacOS已知的东西不够),RAM,套接字等等。我打赌如果您要启动另一个AWS实例,您可以立即看到相同的代码加载您的数据,并获得您正在寻找的访问时间。
答案 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