2016-03-15 82 views
0

我正在開發使用鳳凰框架,有2個節點的應用程序。應用程序需要每10分鐘運行N個計劃任務。每個任務都有自己的上下文。我需要連接節點,以便我可以平衡兩個節點之間的計劃任務。什麼是實施這個好方法?藥劑/鳳凰節點集羣計劃任務

回答

0

我相信答案this question可能是你在找什麼。

TL; DR開始每個節點與一個cookie iex --cookie,然後從內IEX運行Node.connnect連接到其他節點。我相信你可以開始通過iex -S mix

各鳳凰應用順便說一句,甚至可以通過這個程序,你不能在節點之間共享的過程。這是有意的 - 節點之間的共享過程是危險的,脆弱的並且會妨礙縮放。

+0

你說的「共享進程」是什麼意思?透明地連接節點之間的過程,互相發送消息等等。 http://erlang.org/doc/reference_manual/distributed.html –

+0

我指的是在他的問題用一個短語,他(@ ed1t)。這取決於他「共享」的含義。我假設他意味着能夠從兩個節點訪問相同的進程 - 這當然是不可能的。 –

1

在一個節點上的方法,可以在任何其它節點上,只要該網絡環境設置正確(允許在正確的範圍內的端口的主機之間的連接,等等)將消息發送到一個進程。 Erlang的位置透明保證確保了這一點。

結帳這篇文章的詳細信息:http://tjheeta.github.io/2014/12/05/elixir-inter-node-communication/

另外,二郎端口映射器守護進程(EPMD)(http://erlang.org/doc/man/epmd.html)處理的通信,並且可以被配置成使用在一定範圍內的端口,等等:在

iex --erl "-kernel inet_dist_listen_min 9001 inet_dist_listen_max 9001" ... 

此外,請參閱9.8和9.9:http://erlang.org/faq/problems.html