可以使用iex来初始化一个Elixir节点:
iex --sname node1@10.99.1.50 --cookie foo
然后另一个人可以使用REPL连接此节点:
Node.connect(:"node1@10.99.1.50")
看起来连接是通过 TCP 协议完成的。然而,在 文档 中我没有找到指定使用哪个端口的参数。有人有关于这个问题的想法吗?
可以使用iex来初始化一个Elixir节点:
iex --sname node1@10.99.1.50 --cookie foo
然后另一个人可以使用REPL连接此节点:
Node.connect(:"node1@10.99.1.50")
看起来连接是通过 TCP 协议完成的。然而,在 文档 中我没有找到指定使用哪个端口的参数。有人有关于这个问题的想法吗?
连接节点由Erlang端口映射守护程序(epmd)处理,其默认在4369端口运行。根据文档:
可以指定不同的端口以允许多个epmd实例,在同一主机上共存,表示独立的节点群集。群集中的所有节点必须使用相同的epmd端口号。
实际节点打开随机(?)端口并将其与其sname
一起向本地epmd
公告。当您现在连接到'node1@10.99.1.50'
时,您的Erlang虚拟机将请求远程epmd
(默认端口为4369) ,该epmd运行在10.99.1.50
上,以获取有关'node1'
的信息。 它将回答实际端口号,您的进程将直接连接到该端口。