erlang分布式编程模型
erlang分布式編程有兩種模型
一、分布式erlang
運(yùn)行在可信的網(wǎng)絡(luò)環(huán)境中
1、rpc提供的遠(yuǎn)程過(guò)程調(diào)用
rpc:call(Node,Mode,Fun,Args) ->Result|{badrpc,Reason}
2、global里的函數(shù)可以用來(lái)在分布式系統(tǒng)里注冊(cè)名稱和加鎖,以及維護(hù)一個(gè)全連接網(wǎng)絡(luò)
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就會(huì)開(kāi)啟監(jiān)視,Flag是false就會(huì)關(guān)閉監(jiān)視。如果開(kāi)啟了監(jiān)視,那么當(dāng)
Node加入或離開(kāi)Erlang互連節(jié)點(diǎn)組時(shí),執(zhí)行這個(gè)內(nèi)置函數(shù)的進(jìn)程就會(huì)收到{nodeup, Node}
或{nodedown, Node}的消息。
nodes() ->[Node]
node() ->Node
它會(huì)返回本地節(jié)點(diǎn)的名稱。如果節(jié)點(diǎn)不是分布式的則會(huì)返回nonode@nohost。
node(Arg) ->Node
它會(huì)返回Arg所在的節(jié)點(diǎn)。Arg可以是PID、引用或者端口。如果本地節(jié)點(diǎn)不是分布式的,
則會(huì)返回nonode@nohost。
is_alive() ->bool()
如果本地節(jié)點(diǎn)是活動(dòng)的,并且可以成為分布式系統(tǒng)的一部分,就返回true,否則返回false。
{RegName,Node} ! Msg
send可以用來(lái)向一組分布式Erlang節(jié)點(diǎn)里的某個(gè)本地注冊(cè)進(jìn)程發(fā)送消息
二、基于套接字的分布式模型
通過(guò)創(chuàng)建兩個(gè)代理進(jìn)程,一個(gè)客戶端,一個(gè)服務(wù)器端,將erlang的消息轉(zhuǎn)換為tcp包數(shù)據(jù),通過(guò)tcp協(xié)議收發(fā)消息,tcp可以密碼保護(hù)服務(wù)。
轉(zhuǎn)載于:https://www.cnblogs.com/yanwei-wang/p/4710000.html
總結(jié)
以上是生活随笔為你收集整理的erlang分布式编程模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 怎么在泰山进行徒步旅行?
- 下一篇: HDU1061-Rightmost Di