ドッカーを使用してマイクロサービスプロジェクトを構築しています。ドッキングステーションのマイクロサービス - アーキテクチャ
私のマイクロサービスの1つは、さまざまな数のソースからデータを取得するリスナーです。
私が達成しようとしているのは、ソースからデータを動的に取得し始める機能と停止する機能です。例えば
この図において、Iは3ドッカーズに接続された3つのソースを有しています。
新しいソースが利用可能なときに別のドッカーインスタンスを作成する必要があるため、問題が発生します。この例では、ソース#4が利用可能になり、データを取得する必要があります(新しいソースが利用可能になった時点を知っています)が、自動的に(ソース4の情報を聞いて)聞き取ります。
1)リスナーサービスを実行している多数のドッカーのドッキングプールを作成し、新しいソースが利用可能になるたびに(rabbitmqを使用していますが、関連する)を使用可能なドッカーに送信してデータを取得します。
このソリューションでは、私はちょっとした理由で動作しているドッカー画像のメモリ消費を少し恐れていますが、それは非常に複雑な解決策ではありません。
2)新しいソースは、このソリューションでは異なる環境変数を使用して新しいドッカ()
を作成し利用できるようになっているときはいつでも、私は、ドッキングウィンドウの作成に問題があります。 この時点で私はこれを達成しましたが、ドッカーを起動しているサービス(マネージャーと呼ぶことができます)は、同じサーバー上でコマンドを実行している通常のnodejsアプリケーションです - ドッキングステーションのコンテナ内にも必要です。
ここでの問題は、メインドッカーからsock接続を作成して新しいDockerを作成できないということです。
私の解決策の両方が実りあり、本当に私の問題の提案を感謝しているとは思えません。
あなたの答えをありがとう、私は私の問題を明確にしようとします。私のソースは動的に更新(追加と削除)されているので、動的にスケールするリスナーが必要です。それは 'Kubernetes'を使って可能ですか?もしあなたが私のサーバー上でオープンシフト環境を持っているのであれば、それについての参考になります。 – Yogevnn
こんにちは、答えで私の2番目のリンクをたどると、スケーリングのために次のようなコマンドが表示されます: 'kubectl scale deployment nginx-デプロイメント--replicas 10' –
ありがとう!私はちょうどそれをチェックし、それは良いアイデアのように見えます。それについてのちょっとした質問ですが、別のDockerからこのコマンドを実行できますか? RabbitMQを聞くdockerManagerがあり、新しいソースが利用可能な場合、dockerManagerはこのコマンドを使用してポッドを拡大/縮小します。もう1つの質問ですが、ポッドを作成するときに環境変数を使用できますか? (ところで、私はnodejsを使用しています) – Yogevnn