我正在 Elixir 中处理一些分布式代码,但是,我必须继续传递 --name 来为我的节点分配一个名称。无论如何,默认情况下会这样做吗?我想在我的 .elixirrc 文件中设置一些内容,以便每个服务器始终具有相同的节点名称。
问问题
1631 次
3 回答
6
简短的回答:没有。
长答案:您可以动态地为节点命名,因此如果您发现自己在执行许多设置任务(设置 cookie、命名节点等),您可以拥有一个脚本来帮助您启动它。为此,您将需要 Elixir v0.10.1(当前为 master):
# boot.exs
:net_kernel.start([:foobar, :shortnames])
然后启动它:
$ mix run boot.exs
于 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 回答