erlang:send不使用像 epmd 那样的单一端口。Erlang 使用 EPMD 端口来查找其他节点,因此所有服务器必须能够在该端口上相互通信。在 Erlang 集群中,所有节点都连接到网格中的所有其他节点。Erlang epmd 将使用两个端口,一个用于发现其他 erlang 节点(默认端口 4369),一个用于实际通信的动态范围。
集群中的所有节点必须使用相同的 epmd 端口号进行侦听。
另请注意,Epmd 会跟踪哪个 Erlang 节点正在使用本地计算机上的哪些端口。如果您想将 Erlang 用于 Erlang 节点间通信的端口范围限制为 9100-9105,您可以将以下行添加到 app.config 中,设置内核变量“ inet_dist_listen_min ”和“ inet_dist_listen_max ”。
例子:
{ kernel, [
{inet_dist_listen_min, 9100},
{inet_dist_listen_max, 9105}
]},
Run Code Online (Sandbox Code Playgroud)
或者当使用内核变量' inet_dist_listen_min '和' inet_dist_listen_max '启动erlang节点时。
例子:
erl -sname foo -kernel inet_dist_listen_min 9100 inet_dist_listen_max 9105
Run Code Online (Sandbox Code Playgroud)
确保您设置的范围为集群中的所有节点提供足够的端口。
| 归档时间: |
|
| 查看次数: |
800 次 |
| 最近记录: |