客户端超时couchbase节点js

时间:2015-10-26 00:09:21

标签: node.js amazon-web-services couchbase

我正在尝试向我的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的最佳值是什么。 任何建议将不胜感激。

2 个答案:

答案 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