【问题标题】:Mongoose IM change node name issueMongoose IM 更改节点名称问题
【发布时间】:2016-06-27 10:26:13
【问题描述】:

我正在尝试将 mongooseim 的节点名称更改为我的本地 IP,例如 10.0.0.21。我更改了 MongooseIM/rel/vars.config 中的配置。>

{node_name,"mongooseim@10.0.0.21"}

有什么需要改变的吗?

更改节点名称时出现以下错误

=信息报告==== 2016 年 3 月 11 日::17:11:05 === 不能设置短节点名! 请检查您的配置 escript:异常错误:右侧值不匹配 {错误, {{关掉, {failed_to_start_child,net_kernel, {'EXIT',nodistribution}}}, {孩子,未定义,net_sup_dynamic, {erl_distribution,start_link, [['mongooseim_maint_6589@10.0.XXX.XXX', 简称]]}, 永久,1000,主管, [erl_distribution]}}}

【问题讨论】:

    标签: erlang mongoose-im escript


    【解决方案1】:

    根据您所写的内容,我假设您在构建时更改节点名称并依赖构建机制来生成正确的配置文件。没关系。

    鉴于此,您还必须修改rel/files/vm.args - 找到该行:

    -sname {{node_name}}
    

    并将其更改为:

    -name {{node_name}}
    

    现在解释一下。 -name 用于将 Erlang 节点作为分布式节点运行。这需要设置 DNS 服务器。 -sname 也启用分布式模式,但只使用 /etc/hosts 条目即可 - 但是节点名称不能包含点:host@localdomain 可以,但 host@my.fictional.domain 不是。后者是你的情况,只是你使用数字而不是单词。

    请注意,使用-name 的节点不能与使用-sname 的节点使用分布式Erlang 通信。


    对于生产多节点集群,您可能会考虑生成一次服务器版本,获取生成的配置文件,根据您的需要调整它们并根据预期的节点数量进行复制。然后,每次部署新节点时,您都​​使用相同的生成版本(这样可以节省构建时间),但添加为相关节点定制的配置文件。

    【讨论】:

    • 您好,我正在尝试在 AWS 中设置多节点 Mongooseim 集群。使用 dpkg -i mongooseim- 安装了 mongooseim,Ran "mongooseimctl start 它运行良好。将 -sname 更新为 mongooseim@[hostname] 以形成集群,但之后无法正常运行。收到此错误“RPC 连接失败到节点 'node1@': nodedown" 所有需要的端口都是打开的。知道我缺少什么,任何帮助将不胜感激。
    • @user1453927 bash 中的普通ping $other_host 在您的主机之间工作吗?如果 ping 有效,那么 Erlang shell 中的 net_adm:ping('mongooseim@[other_host]') 是否有效?另外,检查两个节点是否返回相同的erlang:get_cookie()。在您所处的情况下,重要的是要确定主机之间的网络是否出现故障,或者只是分布式 Erlang 连接没有通过。
    猜你喜欢
    • 2019-12-03
    • 2011-07-04
    • 1970-01-01
    • 2011-05-09
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多