erlang分布式编程有两种模型
一、分布式erlang
运行在可信的网络环境中
1、rpc提供的远程过程调用
rpc:call(Node,Mode,Fun,Args) ->Result|{badrpc,Reason}
2、global里的函数可以用来在分布式系统里注册名称和加锁,以及维护一个全连接网络
spawn(Node,Fun) -> Pid
spawn(Node,Mode,Fun,Args) ->Pid
spawn_link(Node,Fun) -> Pid
spawn_link(Node,Mode,Fun,Args) ->Pid
disconnect_node(Node) ->bool()|ignored
monitor_node(Node,Flag) ->true
如果Flag是true就会开启监视,Flag是false就会关闭监视。如果开启了监视,那么当
Node加入或离开Erlang互连节点组时,执行这个内置函数的进程就会收到{nodeup, Node}
或{nodedown, Node}的消息。
nodes() ->[Node]
node() ->Node
它会返回本地节点的名称。如果节点不是分布式的则会返回nonode@nohost。
node(Arg) ->Node
它会返回Arg所在的节点。Arg可以是PID、引用或者端口。如果本地节点不是分布式的,
则会返回nonode@nohost。
is_alive() ->bool()
如果本地节点是活动的,并且可以成为分布式系统的一部分,就返回true,否则返回false。
{RegName,Node} ! Msg
send可以用来向一组分布式Erlang节点里的某个本地注册进程发送消息
二、基于套接字的分布式模型
通过创建两个代理进程,一个客户端,一个服务器端,将erlang的消息转换为tcp包数据,通过tcp协议收发消息,tcp可以密码保护服务。