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可以密碼保護服務。
轉載于:https://www.cnblogs.com/yanwei-wang/p/4710000.html
總結
以上是生活随笔為你收集整理的erlang分布式编程模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么在泰山进行徒步旅行?
- 下一篇: 怎么在泰山上寻找野生动物?