Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 来自节点的Riak连接_Node.js_Ejabberd_Riak_Riak Js - Fatal编程技术网

Node.js 来自节点的Riak连接

Node.js 来自节点的Riak连接,node.js,ejabberd,riak,riak-js,Node.js,Ejabberd,Riak,Riak Js,这可能不是一个bug,而是我理解上的一个缺口,但把它放在这里,因为我至今还没有找到解决的办法。如果你能提供你的意见,我将不胜感激 我正试图通过两个选项连接到我的Riak集群(托管在AWS上),其中包含3个节点—1)使用ejabberd服务器,2)使用节点服务器 var async = require('async'); var assert = require('assert'); var logger = require('winston'); var Riak = require('bash

这可能不是一个bug,而是我理解上的一个缺口,但把它放在这里,因为我至今还没有找到解决的办法。如果你能提供你的意见,我将不胜感激

我正试图通过两个选项连接到我的Riak集群(托管在AWS上),其中包含3个节点—1)使用ejabberd服务器,2)使用节点服务器

var async = require('async');
var assert = require('assert');
var logger = require('winston');
var Riak = require('basho-riak-client');

logger.remove(logger.transports.Console);
logger.add(logger.transports.Console, {
level : 'debug',
colorize : true,
timestamp : true
});

var nodes = [
'ip-xx-xx-xx-xx:8087',
'ip-xx-xx-xx-xx:8087',
'ip-xx-xx-xx-xx:8087'
];

var client = new Riak.Client(nodes, function (err, c) {
logger.info('Now inside Riak.Client');

// NB: at this point the client is fully initialized, and
// 'client' and 'c' are the same object
});

client.ping(function (err, rslt) {
logger.info('Now entered client.ping');
if (err) {
logger.info('There is an error encountered in client.ping');
throw new Error(err);
} else {
// On success, ping returns true
logger.info('client.ping has resulted in success!');
assert(rslt === true);
}
});
在我将主机名和端口放入ejabberd配置后,从ejabberd服务器连接成功,但是当我使用简单的节点服务器(下面的代码)时,我得到“错误:没有可执行命令的Rianodes。”错误。我是否遗漏了一些东西,请-我可以确认3个节点确实运行了Riak?请注意,如果我不在节点上执行客户端ping,服务器不会抛出任何错误,因此这可能与ping的处理方式有关。如果其中一个节点关闭,则同一个服务器(不带ping)会发出一个EConnReclused错误。很明显,连接正在通过,但不是ping

道歉,如果我错过了一些基本的东西在这里。。。甚至Riak节点的防火墙设置也已设置为所有入站,因此ejabberd服务器没有访问权限,但节点服务器没有访问权限

var async = require('async');
var assert = require('assert');
var logger = require('winston');
var Riak = require('basho-riak-client');

logger.remove(logger.transports.Console);
logger.add(logger.transports.Console, {
level : 'debug',
colorize : true,
timestamp : true
});

var nodes = [
'ip-xx-xx-xx-xx:8087',
'ip-xx-xx-xx-xx:8087',
'ip-xx-xx-xx-xx:8087'
];

var client = new Riak.Client(nodes, function (err, c) {
logger.info('Now inside Riak.Client');

// NB: at this point the client is fully initialized, and
// 'client' and 'c' are the same object
});

client.ping(function (err, rslt) {
logger.info('Now entered client.ping');
if (err) {
logger.info('There is an error encountered in client.ping');
throw new Error(err);
} else {
// On success, ping returns true
logger.info('client.ping has resulted in success!');
assert(rslt === true);
}
});

请看:谢谢卢克。。。这很有效。。。谢谢请看:谢谢卢克。。。这很有效。。。谢谢