Erlang badrpc,nodedown 在进行 rpc:call 时出错

Posted

技术标签:

【中文标题】Erlang badrpc,nodedown 在进行 rpc:call 时出错【英文标题】:Erlang badrpc,nodedown error while making rpc:callErlang badrpc,nodedown 在进行 rpc:call 时出错 【发布时间】:2018-06-11 05:13:30 【问题描述】:

我有两个带有不同 cookie 的节点。我正在尝试拨打电话,如下所述,但我每次都收到 badrpc,nodedown。

onenode@localhost>rpc:call(othernode@localhost,erlang,system_info,[otp_release]).

我曾尝试在 google 上查找并最终通过以下链接进行尝试,但仍然“没有成功”。

以下是我尝试过的一些链接:

Link 1

Link 2

Link 3

你能帮帮我吗?

EDIT -1 :两个节点都托管在本地主机中。

【问题讨论】:

【参考方案1】:

在执行 rpc 调用到具有不同 cookie 的节点之前,您必须执行以下函数

erlang:set_cookie(other_node@localhost, other_node_cookie).

更多信息:http://erlang.org/doc/reference_manual/distributed.html

【讨论】:

【参考方案2】:

根据rpc.erl,它使用gen_server模块进行通用erlang调用,gen_server使用gen.erl模块进行调用,here使用noconnect选项作为erlang:send/3的选项。 根据 Erlang 文档:

如果目标节点必须自动连接才能进行发送,则返回 noconnect。

另一个问题是不同的cookie。根据 Erlang 文档:

当一个节点尝试连接到另一个节点时,会比较魔术 cookie。如果它们不匹配,则连接的节点拒绝连接。

因此,如果节点之间没有任何连接,则您的调用不会创建一个,并且您无法使用不同的 cookie 连接 Erlang 节点。

【讨论】:

以上是关于Erlang badrpc,nodedown 在进行 rpc:call 时出错的主要内容,如果未能解决你的问题,请参考以下文章

Rabbitmq 服务启动后停止 | Windows下启动报错Error: unable to connect to node rabbit@xxx: nodedown

RabbitMQ 出现 Nodedown 错误

[Linux]RabbitMQ - 解决Error: unable to connect to node rabbit@localhost: nodedown

RabbitMQ 集群:无法连接到节点:nodedown

Windows XP 上的 rabbitmqctl.bat:无法连接到节点 rabbit@MYPCNAME:nodedown

OpenStack错误:Error: unable to connect to node rabbit@localhost: nodedown