2台の異なるマシンのErlang/Elixirノードをネットワーク接続で2つ接続するにはどうしたらいいですか?ローカルネットワーク経由で2つのElixirノードを接続する方法はありますか?
47
A
答えて
58
ノードに名前を付け、両方のノードで同じCookieを使用する必要があります。機械1において
:
iex --name [email protected] --cookie a_cookie_string
機2において:
iex --name [email protected] --cookie a_cookie_string
すぐ2台のマシンが通信することができます。それをテストするには、あなたがこのような何かを行うことができ、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)
を実行します。
例:、最後に Node.set_cookie :cookie_name
:あなたのIPが192.168.0.1であれば、あなたは分散ノードにあなたのノードの電源を入れたら、あなたはクッキーを設定:"[email protected]"
のような完全なノード名を持つことができますリモートノードとの接続を確立する必要があります。 (リモートノードのNode.startとNode.set_cookieも必要です) これを行うには、リモートノードの名前が必要です。リモートノードの名前が[email protected]であると仮定します(このノードは同じローカルネットワーク上の別のコンピュータであると仮定します)。これを行うコードは、Node.connect :"[email protected]"
のようになります。ノード番号リストを実行して[email protected]
を[email protected]
で利用できるようになりました。その逆も同様です。
上記の点をまとめると、あなたのコードは、Fooのマシンで
ようになるはずです
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. 2つのサーバーをノードWebソケット経由で接続する
- 2. SQL Expressローカルネットワーク経由で接続
- 3. 2つのオブジェクトをイオン経由で接続する方法
- 4. GKSessionをBluetooth経由で接続する方法はありますか?
- 5. Javascript経由でTCPソケットに接続する方法はありますか?
- 6. 2つのイーサネットMACチップを直接接続できますか(PHY経由ではありません)?
- 7. JavaFX:2つのノードを1行で接続する方法は?
- 8. ノードnetソケット経由でRuby TCPサーバーを接続する方法は?
- 9. iPhoneは2つのiphoneの間でローカルネットワーク経由でデータを送信します
- 10. 2つのドッカーコンテナのノードをエリキシルに接続する方法は?
- 11. JavaScriptでSFTP経由でサーバーへの接続を作成する方法はありますか?
- 12. 2つのMS SQLデータベースをリンク/接続する方法はありますか?
- 13. インターネット経由で2つのモバイルデバイス(iPhone)間でソケットを接続できますか?
- 14. 1つのイーサネットポート経由で2つのイーサネットネットワークに接続するには?
- 15. NSTask経由でFTP接続をチェックする方法は?
- 16. JMX経由でFlinkをリモートに接続する方法は?
- 17. QBS経由でPostgreSQL Cライブラリを接続する方法は?
- 18. Unixソケット経由でPhpMyAdminをローカルホストに接続する方法は?
- 19. ネットワーク経由で接続されたクライアントにメッセージを送信する簡単な方法はありますか?
- 20. Goでsshトンネル経由でredisに接続する方法は?
- 21. SSL経由でPHP経由でAmazon MySQL RDSインスタンスに接続する方法
- 22. C#アプリケーション経由でMicrosoft Project Serverに接続する方法はありますか?
- 23. .netアプリケーション経由でDocumentumに接続する方法は?
- 24. プロキシ経由でIRCに接続する方法は?
- 25. Salesfroce-Vimeo oauth経由で接続する方法は?
- 26. ウェブサイト経由でローカルデータベースに接続する方法は?
- 27. SSH経由でMySQL Dockerコンテナに接続する方法は?
- 28. ロードバランサ経由でSSLに接続するTomcatに接続する方法
- 29. クライアントとサーバーがローカルネットワーク経由で接続されていません
クールな、これは動作します! :)私は既にこの方法を試していますが、IPアドレスの代わりにドメインを使用しています。 ありがとうたくさん – ChaosSteffen
BTW:ドメイン名の部分が異なる限り、ノード名は '@ '記号の前で同じにすることができます(名前はネットワーク内で一意でなければなりません。ユニークな部分です)。例: 'node @ 192.168.0.2'と' node @ 192.168.0.3'も動作しています。 (マシン/ノード名に関連するコードを単純化するためにちょうど言及されています)。 – asaaki