如何通過網絡連接連接兩臺不同機器的兩個Erlang/Elixir節點?如何通過本地網絡連接兩個Elixir節點?
47
A
回答
58
您必須爲兩個節點命名節點並使用相同的cookie。
在機器1:
iex --name [email protected] --cookie a_cookie_string
在機器2:
iex --name [email protected] --cookie a_cookie_string
現在兩臺機器可以進行通信。爲了測試它,你可以做這樣的事情,在MACHINE1:
iex([email protected])1> Node.connect :"[email protected]"
true
iex([email protected])2> print_node_name = fn -> IO.puts Node.self end
#Function<erl_eval.20.80484245>
iex([email protected])3> Node.spawn(:"[email protected]", print_node_name)
[email protected]
#PID<7789.49.0>
域名machine1.com
和machine2.com
可以與機器的IP地址被改變了。
1
如果您嘗試通過代碼連接節點: 您需要將正在運行的代碼轉換爲分佈式節點。要做到這一點運行Node.start(:fullNameOfServer)
。
例如:如果你的IP是192.168.0.1,你可以有一個完整的節點名稱,如:"[email protected]"
一旦你把你的節點到分佈式節點,設置Cookie: Node.set_cookie :cookie_name
最後,您需要與遠程節點建立連接。 (您還需要遠程節點上的Node.start和Node.set_cookie) 爲此,您需要遠程節點的名稱。讓我們假設遠程節點的名稱是[email protected](假設此節點是同一本地網絡中的另一臺計算機)。執行此操作的代碼看起來像Node.connect :"[email protected]"
您現在可以運行Node.list以查看[email protected]
上可用的[email protected]
,反之亦然。
總結以上幾點,你的代碼應該看起來像
在富機器
Node.start :"[email protected]" #this is the IP of the machine on which you run the code
Node.set_cookie :cookie_name
Node.connect "[email protected]"
上的條形碼機
Node.start :"[email protected]"
Node.set_cookie :cookie_name
相關問題
- 1. SQL Express通過本地網絡連接
- 2. 如何連接elixir中的兩個docker容器的節點?
- 3. 如何通過OMNeT ++中的WLAN接口連接兩個節點?
- 4. JavaFX:如何通過線路連接兩個節點?
- 5. 如何從連接到本地網絡
- 6. GridGain網絡連接:是否可以通過SSH轉發節點?
- 7. 如何Git通過本地網絡?
- 8. 如何建立一個好的節點/連接網絡| Java
- 9. 如何連接兩個erlang節點?
- 10. 如何通過網絡管道正確關閉網絡連接?
- 11. 使用Adobe Cirrus通過本地網絡連接Flash播放器
- 12. 通過iOS設備調試連接到本地網絡
- 13. 無法通過本地wifi網絡連接到xampp服務器
- 14. 模擬通過WiFi網絡連接的兩個Android設備?
- 15. 兩個iPhone可以通過無線網絡連接嗎?
- 16. 如何通過本地網絡直接共享USB 3.0硬盤
- 17. JavaFx通過拖放連接兩個子節點與一條線
- 18. 如何通過命令行選擇多個網絡連接?
- 19. 通過防火牆實現點對點網絡連接
- 20. 如何在圖上繪製連接的網絡節點?
- 21. NSMutableURLRequest無法連接到本地網絡
- 22. Kubernetes網絡連接本地/容器
- 23. Wamp,連接本地網絡用戶
- 24. 通過Cocoa連接到WIFI網絡
- 25. 通過網絡等待連接
- 26. 通過網絡連接鼠標光標
- 27. 通過網絡連接到SimPro API
- 28. Xcode 9 Apple TV4通過網絡連接
- 29. 通過網絡連接到PostgreSQL
- 30. dbf通過網絡緩慢連接
酷,這個作品! :)我已經嘗試這種方法,但使用域而不是IP地址。 非常感謝 – ChaosSteffen
順便說一句:只要域名部分不同,節點名稱可以在'@'符號前相同(名稱在網絡中必須是唯一的,所以如果您的機器使用的IP地址不是這個是獨特的部分)。例如:'node @ 192.168.0.2'和'node @ 192.168.0.3'也在工作。 (剛纔提到可能會簡化與機器/節點名稱相關的代碼。) – asaaki