BAM アプリケーションを実装するためのツールとフレームワークを研究しています。基本的な要件は次のとおりです。
- ビジネス ステータス/アクティビティを取得するために、さまざまなアプリケーションとインターフェイスします。初期フィードは、JMS プロバイダー、Web サービス、FTP、および JMX です。
- 可能な限りリアルタイムに近いものになります。
- 1 日に 2000 万以上のメッセージを 2000/秒のバーストで処理する必要があります (activeMQ や WebsphereMQ などの JMS プロバイダーを介した XML のようなメッセージ)。
- KPI が違反されたときにアラートを生成する (警告およびクリティカル レベル)
他に考慮すべきことは、私たちの小さな会社には Mulesoft EE ライセンス、会社のアプリケーション スタック (Tomcat、ActiveMQ、Drools などを含む osgi バンドル) があることです。
そのため、POC を試す前に調査のみから考えていた最初のドラフト アプローチは次のようなものです。
Mule を ESB として使用してさまざまなアプリケーションと統合し、その SEDA サービスを使用してイベントを処理し、Drools エンジンにステージングして、これらのイベントに関連付けられたルールを処理します。
このプロセスがこれらのツールが使用されるように設計された方法なのか、それともこれを処理するためのより雄弁な方法があるのか はよくわかりません. また、いくつかの未解決の質問:
- イベントとステータス (警告、KPI 違反など) の集計をユーザーに表示する方法。GWT 統合? クエリを実行して表示するために、イベントをメモリ内データベースに配置する必要がありますか?
- 物理アーキテクチャに関しては、同じサーバー上に drools エンジンを搭載した 2 つのサーバー間でクラスター化された tomcat インスタンスでミュールを実行することを考えていましたか? 独自のサーバー上のデータベース (履歴ストレージ用)。
- 上記のツールに限らず、Esper、Apache Camel も検討していました
- このアプローチはやり過ぎですか?状態を管理する RDBMS で、よりシンプルで単純な webapp を使用できますか? リアルタイムとイベント数の要件により、これが妨げられると考えました。
ここでの最初の戦略を通じて私を助けてくれる任意の助けをいただければ幸いです。または、同様の要件を持つソリューションを実装したことがあり、共有したい人はいますか。ありがとうございました!