2012-07-18 7 views
5

TLDR:TCPサーバに自動的に再接続するための再利用可能なコードが存在することがあります。TCPホストに自動的に再接続する


私は、サーバーアプリケーションを書いている - halそれを呼び出す - その中でxbmc - また、他のサーバーにいくつかのTCP接続をオープンしています。私はもともと、xbmcが失敗したときにxbmc erlangプロセスが停止し、そのスーパーバイザによって再起動されるように書きました。

明らかに、これはerlangで永続的なTCP接続を行う良い方法ではありません。まず第一に、実際には機能しません。xbmcが失敗した場合、プロセスは速やかに再起動し、スーパーバイザはhalプログラム全体をシャットダウンします。第二に、私は明らかにこれのために上司を使用することになっていません:Erlang Supervisor Strategy For Restarting Connections to Downed Hosts(私はそれを読んで、このリンクされた質問は "監督はこれを解決するのですか?"と答えるだけで、私の質問と重複しません)

私はこれは合理的に一般的なユースケースのように思えます.TCP接続をできるだけ接続された状態に保ちます。これを達成するために使用するOTPや他のライブラリコードがありますか?

答えて

3

いいえ、これはOTPにはありません。

私はこれを自分で書いた回数を考えれば、まともな接続管理ライブラリが書かれていることは間違いありません。特に、接続の試行と結果の履歴を考慮して、エンドポイント・アドレス(ホスト名とポート)を指定し、ホスト名ルックアップから返された複数のアドレスを使用して、複数の宛先を持つエンドポイントに対して高速フェイルオーバーを実行できます。

+0

ありがとうございました。次のオープンソースプロジェクトでは、この接続マネージャーを提案しています:D –

+0

これが起こると、私は今それを書いています。もしリリースされたら、私の答えを更新します。 – archaelus

関連する問題