2

BAM アプリケーションを実装するためのツールとフレームワークを研究しています。基本的な要件は次のとおりです。

  1. ビジネス ステータス/アクティビティを取得するために、さまざまなアプリケーションとインターフェイスします。初期フィードは、JMS プロバイダー、Web サービス、FTP、および JMX です。
  2. 可能な限りリアルタイムに近いものになります。
  3. 1 日に 2000 万以上のメッセージを 2000/秒のバーストで処理する必要があります (activeMQ や WebsphereMQ などの JMS プロバイダーを介した XML のようなメッセージ)。
  4. KPI が違反されたときにアラートを生成する (警告およびクリティカル レベル)

他に考慮すべきことは、私たちの小さな会社には Mulesoft EE ライセンス、会社のアプリケーション スタック (Tomcat、ActiveMQ、Drools などを含む osgi バンドル) があることです。

そのため、POC を試す前に調査のみから考えていた最初のドラフト アプローチは次のようなものです。

Mule を ESB として使用してさまざまなアプリケーションと統合し、その SEDA サービスを使用してイベントを処理し、Drools エンジンにステージングして、これらのイベントに関連付けられたルールを処理します。

このプロセスがこれらのツールが使用されるように設計された方法なのか、それともこれを処理するためのより雄弁な方法があるのか​​ はよくわかりません. また、いくつかの未解決の質問:

  • イベントとステータス (警告、KPI 違反など) の集計をユーザーに表示する方法。GWT 統合? クエリを実行して表示するために、イベントをメモリ内データベースに配置する必要がありますか?
  • 物理アーキテクチャに関しては、同じサーバー上に drools エンジンを搭載した 2 つのサーバー間でクラスター化された tomcat インスタンスでミュールを実行することを考えていましたか? 独自のサーバー上のデータベース (履歴ストレージ用)。
  • 上記のツールに限らず、Esper、Apache Camel も検討していました
  • このアプローチはやり過ぎですか?状態を管理する RDBMS で、よりシンプルで単純な webapp を使用できますか? リアルタイムとイベント数の要件により、これが妨げられると考えました。

ここでの最初の戦略を通じて私を助けてくれる任意の助けをいただければ幸いです。または、同様の要件を持つソリューションを実装したことがあり、共有したい人はいますか。ありがとうございました!

4

1 に答える 1

0

イベント データの保存に NoSQL データベースの使用を検討することをお勧めします。

  1. たくさんのデータ
  2. 1 秒あたりのイベント書き込みに必要な速度
  3. KPI はアプリ データ モデルに基づいているため、KPI 定義に固有​​のイベント データのさまざまな属性をキャプチャするための柔軟なモデルが必要です。

このルートを選択した場合は、Mongo DB のようなドキュメント指向のデータ ストアを使用することをお勧めします。

  1. 定義された KPI の値を計算するには、効率的な読み取りが必要です。
  2. イベントデータをキャプチャするために、主に階層的な非常に豊富なデータ表現が必要です。
  3. lucene などのセカンダリ インデックス作成メカニズムを使用して、DB によって提供されるすぐに使用できる読み取りパフォーマンスを向上させることができます。これらのインデックスは、アプリのデータ モデルに基づいて定義された KPI に固有のものにすることができます。

はい、MQ のような非同期イベント処理メカニズムが必要です。

私は、IBM Websphere BAM サーバーがそのイベント データの XML 表現を使用し、それらを DB2 のようなリレーショナル DB に格納することを見てきました。しかし、NoSQLの方が良い選択だと思います。

于 2012-03-23T03:31:19.410 に答える