是否可以更改正在运行的Elixir节点的名称

时间:2016-10-21 10:41:27

标签: erlang elixir distributed

我想动态更改波束实例的节点名称。

用例位于VM的集群中我希望启动过程能够查找ip信息,然后从中选择一个名称。

node()
# => :nonode@nohost

# Lookup ip and change name

node()
# => :myapp@x.x.x.x

1 个答案:

答案 0 :(得分:3)

是的,您可以在Erlang中使用net_kernel:start/1或在Elixir中使用Node.start/{1,2,3}

1> node().
nonode@nohost
2> net_kernel:start(['myapp@1.2.3.4']).
{ok,<0.60.0>}
(myapp@1.2.3.4)3> node().
'myapp@1.2.3.4'
iex(1)> Node.self
:nonode@nohost
iex(2)> Node.start :"myapp@1.2.3.4"
{:ok, #PID<0.83.0>}
iex(myapp@1.2.3.4)3> Node.self
:"myapp@1.2.3.4"