Erlang语言中与分布式编程有关的几个重要函数语法如下:
1.{pname,nodename}!Message
完成不同Erlang节点间的音讯发送,其间pname是长途节点进程的注册名,nodename是长途节点名。
2.spawn(nodename,modulename,fun,[arg1,arg2..])
完成在长途节点上发动一个进程,与spawn/3相比仅仅多了个节点名……
3.rpc:call(nodename,modulename,fun,[arg1,arg2..])
完成长途调用的函数,它是Erlang标准库中的模块rpc中的函数,其参数与2中相同。
4.node()
返回本地节点称号
Erlang节点的发动方法:
1.在同一主机上发动多个Erlang节点指令行格局如下:
erl -sname nodename
运用短称号的方式发动一个称号为nodename的节点,其节点称号为发动后Erlang指令提示符所示,比如Erlang指令提示符为:
(ndb@USER-20170714FN)2>
则其节点称号为:ndb@USER-20170714FN。
2.在能够相互通信的主机上别离发动Erlang节点指令行格局如下:
erl -name nodename -setcookie abc
与1大致相同,区别是运用参数设置了节点的cookie,假如要完成节点间的通信,就需要多个节点的cookie的值完全相同。而1中在同一主机中,会主动设置为相同的cookie,所以没有进行显式的设置。
以下举一简略实例:
因为没有DNS支持,所以在发动节点时运用节点名@IP的方式,如“[email protected]”,上面的窗口是Win7下发动的Erlang节点,而下面的窗口是虚拟机中Fedora26中的Erlang节点,其间句子1在Win7中的Erlang节点上长途发动了进程,以运转remotes/0函数,在cde节点上经过i()指令能够查看到正在运转的进程。