4

我正在 Elixir 中处理一些分布式代码,但是,我必须继续传递 --name 来为我的节点分配一个名称。无论如何,默认情况下会这样做吗?我想在我的 .elixirrc 文件中设置一些内容,以便每个服务器始终具有相同的节点名称。

4

3 回答 3

6

简短的回答:没有。

长答案:您可以动态地为节点命名,因此如果您发现自己在执行许多设置任务(设置 cookie、命名节点等),您可以拥有一个脚本来帮助您启动它。为此,您将需要 Elixir v0.10.1(当前为 master):

# boot.exs
:net_kernel.start([:foobar, :shortnames])

然后启动它:

$ mix run boot.exs

可以在此处找到 net_kernel 的文档

于 2013-08-02T18:45:01.723 回答
2
Node.start(:"foobar", :shortnames)

或者如果你想使用 longname

Node.start(:"foobar@172.17.0.1")

假设 IP 地址为 172.17.0.1。这必须是您要在其上创建节点的机器的 IP 地址。

您只需运行即可访问此节点Node.self

于 2017-09-13T16:06:34.697 回答
1

我也遇到了这个。确保节点在开发过程中始终具有名称的一种简单方法是将其添加到.iex.exs

if Node.self() == :nonode@nohost, do: Node.start(:dev, :shortnames)
于 2020-02-04T14:42:54.790 回答