2014-01-17 25 views
0

在erlang otp中進行gen_server:call()時,必須發送要調用的節點的名稱。與gen_server相關的Erlang可伸縮性問題:調用()

可以說我有這樣的用例:

我有兩個節點:「節點1」和「節點2」運行。我可以使用這些節點來相互調用gen_server:call()。

現在我們可以說我增加了2個節點:'node3'和'node4'並互相ping通,這樣所有節點都可以看到並使gen_server:互相調用。

erlang專家如何處理這樣的新節點的動態添加,以便他們知道進入gen_server調用的新節點名稱,還是需要事先知道所有節點的名稱,以便他們在像sys.config這樣的地方硬編碼?

回答

0

你可以使用: erlang:nodes() 得到節點列表的「現在」視圖

此外,您還可以使用: net_kernel:monitor_nodes(true)爲節點都被通知去(通過平/崩潰的/ etc)

要查看您的模塊在該節點上運行,你可以調用gen_server以某種平回調

那,或者您可以使用RPC模塊調用二郎:在國外whereis(名稱)節點。