1

Mongrel2 をいじり始めたばかりです。Mongrel2 ハンドラ send_spec と recv_spec を localhost 以外のアドレス (ネットワーク上の 2 番目のマシンなど) に向けるまで、すべてのチュートリアルはうまくいきました。

これらのエラーが発生し始めました:

errno: Resource temporarily unavailable) Failed to bind send socket trying again for: tcp://xxx.xxx.xxx.xxx:49901

私の質問は、2 つのノード A と B があり、A が Mongrel2 サーバーで、B が A のハンドラーの 1 つの「ワーカー」である場合、A の .conf ファイルの send_spec と recv_spec にはどのアドレスが入るでしょうか?

これが素朴な質問でしたら申し訳ありませんが、私はとても混乱しています。

4

1 に答える 1

0

NodeA ( Mongrel2 サーバー)のPUSH ( send_spec) およびSUB ( recv_spec) ポートはバインディング ソケットなので、使用する必要があります。アドレスに を使用すると、任意のインターフェイスからの接続を受信できます。tcp://*:<port>*

ハンドラ コードは、特定のアドレスが必要な場所です。私は docker コンテナーを使用して Python ハンドラーを実行しているため、Mongrel2 Server を実行しているコンテナーには常に特定の IP アドレスを使用する必要がありますtcp://172.16.1.?:<port>

これらすべてがtrue の場合:

  • Docker コンテナは相互に通信できます
  • 正しい IP とポートを使用している
  • PUSH および SUB 仕様は、すべてのインターフェイスから受信しています

ハンドラーは接続できるはずです。

于 2015-05-29T17:52:08.483 に答える