erlang節點互聯

2021-08-10 00:11:56 字數 633 閱讀 7575

erlang節點的連通是傳遞性的,即a節點連通b節點,若b節點之前已經連通c節點,那a也會連通c;節點間的通訊其實就是tcp連線,所以能少則少,erlang有提供 -connect_all false 啟動引數,這樣a連通b時就不會跟著連通c

假設有三組節點,唯一**節點c;雲節點組y1,y2…yn;普通節點組n1,n2…nn;

雲節點組跟普通節點組都跟c連通,怎麼讓雲節點組跟普通節點組在需要通訊時連通?

所有節點在跟c連通後,由c收集所有節點的cookie,並把cookie告知雲節點組,雲節點呼叫erlang:set_cookie(node, cookie),這時雲節點跟普通節點並沒有連通,但需用通訊時就會自動連通;

說白了就是n1向y1傳送某個命令=用tcp傳送一條資料,在驗證時n1發現這個y1的cookie跟自己存的y1的cookie一致,所以就允許通訊,所以就連通了,否則則拒絕

這裡搞了測試的**,十分簡陋,也無注釋

發現兩節點間互聯並不一定得cookie相同,比如節點a,b,a設定b的cookie為test,b也設定a的cookie為test,這時也是可以連通的

最後歡迎大神指點

erlang節點程式設計

erlang節點內程式設計 erlang節點內程式設計的基本工具可說是人所共知了 用send和receive來實現通訊 用鏈結 link 和監視器 monitor 來構造健壯的 在單個程序失敗時也不會崩潰的應用程式。正如前文所說,鏈結 link 和監視器 monitor 是編寫具有高容錯性的erla...

erlang 服務節點名稱

erlang程式設計的 kvs 例子中,區域網 遠端呼叫的節點名稱。erl name gandalf setcookie abc.如果機器沒有該計算機名稱,那麼 節點名稱會是 gandalf localhost.localdomain 這個名字需要改一下。修改方法 1.hostname mike.c...

erlang節點通訊小測試

1.目標 開啟兩個節點使得a節點操作b節點的程序 2.步驟與 1 開啟兩個節點 erl setcookie abcedef sname test1 erl setcookie abcedef sname test2 2 使節點連通 net adm ping test2 pc201406231106 ...