新しい Java Web アプリのバックエンドを設計しており、イベント バスを使用するかどうかを決定しようとしています。特にグアバEventBus
。
ほとんどのサーバー側のリクエストは同期的です。つまり、ユーザーはデータをリクエストしており、数秒以内に応答する必要があります。ただし、非同期の可能性があり、クライアント側で「ファイア アンド フォーゲット」になるリクエストもかなりの数あります。それらが最終的に処理される限り、処理に 2 秒または 2 時間かかる場合でも、クライアントはあまり気にしません。
これらの非同期リクエストについては、マップされた URL でリッスンするサーブレットがリクエストをキューに発行するように計画しています。次に、コンシューマは各リクエストをデキューし、適切なハンドラにルーティングします。これは、機能する場合と機能しEventBus
ない場合がある場所です。要求を正しいハンドラーにルーティングするためのビジネス ロジックは非常に複雑です。通常は Camel ルートが最適なソリューションです。私の使用例では、一連の「プロセッサ」(イベント ハンドラ) を同じイベント バスに接続し、最終結果が生産された。
私はすでに Apache Camel を使用して調査したこと、そして Camel がここでの仕事に適したツールであると信じていることを言いたいと思います。残念ながら、この質問の範囲外の理由により、使用しません。それで、私はラクダのようなソリューションを思いつき始めました。これが、グアバのEventBus
. しかし、それは適切な代替品ではないかもしれません。
パターンが解決する問題の分類を探していると思いEvent Bus
ます。次に、それがここでのユース ケースに一致するかどうかを判断する必要があります。