7

最後の「トポロジ パターン」の例で説明した「NSQ リアルタイム分散メッセージング プラットフォーム」をDockerで複製することは可能ですか? dockerfile またはイメージの例を持っている人はいますか?

4

1 に答える 1

2

いくつかのバックグラウンド タスクが完了するのを待っている間に、これを試してみましょう。

@Luca G. Soave が言及した分散メッセージング プラットフォームは、次の場所で確認できます。 ソース: www.nsq.io/deployment/topology_patterns.html

私は、この質問の根底に致命的な問題があると考えています。それは、Docker コンテナーとは何かについての誤解です。

説明のために、Docker コンテナーは仮想マシンの単なる別の名前であると仮定しましょう。「仮想マシンで分散システムを構築できるか?」という疑問 構成、抽象化、および調整の問題にすぎないため、完全には適合しません。

上の図は、連絡先/責任 (ノード) の各ポイントが Docker コンテナーまたは仮想マシン内に自己完結している状態で再作成できます。すなわち:

  • 各 API/nsqd ノードは独自のコンテナー内にあります
  • 各 nsq_to_file ノードは独自のコンテナにあります
  • 各 nsqlookupd ノードは独自のコンテナー内にあります

Docker イメージのセットアップ方法に応じて、これの分散 (マルチホスト) バージョンをさまざまな方法で実装できます。いくつかのアイデアは次のとおりです。

  • コンテナーの内部ポートを同じホスト ポートにマッピングし、ホスト IP として自分自身をブロードキャストするようにノードを構成します。これにより、他のノードがそれらに接続しようとすると、コンテナーにマップされたポートでホストの外部 IP にラッチされます。したがって、コンテナに直接接続します。

  • consulなどのサービス検出パッケージを使用して nsqlookupd を置き換え、メタデータを追加します。dockerこれは、それぞれが内部的に同じポート (ポート 9090 など) にバインドする多数のコンテナーを実行しているが、ホスト上のプロセスがランダムな外部ポート マッピングを管理できるようにする場合に役立ちます。

これは Docker に関連しているため、ホスト間で関連するコンテナーに情報をブロードキャストすることが最近いくつか開発されています。これは、nsqlookupd コンテナーに関する情報を使用して api/nsqd コンテナーをシードする 1 つの方法です。

私はMaestroNGを使用して小規模な展開に成功しましたが、大規模な Docker 展開には優れたソリューションではありません。

于 2014-07-30T16:25:28.363 に答える