首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Erlang EPMD使用非默认EPMD端口连接到其他主机

Erlang EPMD使用非默认EPMD端口连接到其他主机
EN

Stack Overflow用户
提问于 2016-10-22 14:36:22
回答 1查看 568关注 0票数 1

假设有2台主机的IP分别为192.168.1.11和192.168.1.12。

如果我用默认的EPMD端口4369启动两个Erlang分布式节点(例如: abc@192.168.1.11和def@192.168.1.12),在net_adm:ping/1之后,它们可以正常连接。

但是如果我用非默认的EPMD端口启动其中一个,例如12345,而用默认的EPMD端口启动另一个,它们就不能-通过net_adm:ping/1。

在这种情况下我应该怎么做?

EN

回答 1

Stack Overflow用户

发布于 2016-10-22 17:38:06

Erlang使用EPMD端口查找其他节点,因此所有服务器都必须能够在此端口上相互通信。在Erlang集群中,所有节点都连接到网格中的所有其他节点。Erlang epmd (erlang端口映射器守护进程)将使用两个端口,一个用于发现其他erlang节点(默认端口4369),动态范围用于实际通信。

对于侦听,群集中的所有节点必须使用相同的EPMD端口号。

还要注意,Epmd会跟踪哪个Erlang节点正在使用本地计算机上的哪些端口。如果希望将Erlang用于Erlang节点间通信的端口范围限制为9100-9105,可以将以下行添加到设置内核变量'inet_dist_listen_min‘和'inet_dist_listen_max'.的app.config中

示例:

代码语言:javascript
复制
{ kernel, [
              {inet_dist_listen_min, 9100},
              {inet_dist_listen_max, 9105}
             ]},

请确保您设置的范围为集群中的所有节点提供了足够的端口。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40189097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档