次のシナリオを想定しています。
ユーザーから入力を受け取り、5〜25分(入力に応じて)かかるアルゴリズムを介して入力を処理し、異なる結果を提供するWebアプリケーション。つまり、ユーザーがUIの背後で結果を待つことはなく、計算が完了するとメールで通知されます。
私は高レベルのアーキテクチャを設計しようとしており、スケーラブルなソフトウェア、コンテナ、マイクロサービスの世界で初めてです。
これは私がこれまでに持ってきた大まかな基本設計です:
上:
これが私の質問です。
このアーキテクチャ/デザインはまったく意味がありますか?それはやり過ぎではありませんか、逆に言えば、それは単純すぎるかもしれませんか?
私の最大の疑問は、キューマネージャーアプリがまったく必要か、またはコンテナーがメッセージを直接サブスクライブできるようにする必要があるかです。その場合、優先順位付けはどのように機能しますか?
コメントは1つだけ-個人的にはキューマネージャーサービスを保持します。
might「ワーカー」コンテナがアルゴリズムタスクを実行するためにメッセージ自体をサブスクライブすることは可能ですが、いくつかの機能を実装することは非効率的/困難/不可能です(IMHOは遅かれ早かれそれを行います) 「必要」)コードを「ワーカー」コンテキストで実行することから:
専用の集中キューマネージャーを使用すると、上記の項目を実装するためのIMHOがはるかに簡単になります。