簡體   English   中英

啟動遠程Erlang節點

[英]Starting remote Erlang nodes

我想在Erlang中編寫一個主從應用程序。 我正在考慮從架構中需要的以下內容:

  • 當主設備停止時,從設備不應該死,而是在主設備停機時嘗試重新連接

  • 如果遠程節點沒有自動連接或者它們已經關閉(可能是OTP中的管理員行為),則master應自動啟動遠程節點

是否存在面向OTP的行為? 我知道我可以使用slave:start_link()啟動遠程節點slave:start_link()並且我可以使用erlang:monitor()監視節點erlang:monitor() ,但我不知道如何將它包含在gen_server行為中。

我同意有關使用erlang:monitor_node和使用分布式應用程序的意見。

您不能只使用從模塊來實現這一點,它清楚地指出“當主設備終止時,由主設備啟動的所有從設備節點將自動終止”。

目前還沒有OTP行為。 監督樹是分層的; 看起來你正在尋找一個在應用程序邏輯方面存在層次結構的東西,但是產生是在點對點的基礎上完成的(或根據你的觀點來個別基礎)。

如果您要使用多個Erlang VM,那么您應該仔細考慮運行的數量,因為大量的Erlang VM可能會因操作系統交換OS進程而導致性能問題。 最佳性能的經驗法則是每個CPU核心只有一個OS進程(即一個Erlang VM)。

如果您對研究其他實現感興趣,Basho的riak_core框架可以很好地利用分布式分布式應用程序。

riak_core_node_watcher.erl中包含大部分有趣的節點觀察代碼。

搜索,你會發現有很多關於框架的討論和演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM