erlang分布式编程模型

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可以密码保护服务。

posted @ 2015-08-07 10:20  wywdahai  阅读(783)  评论(0编辑  收藏  举报