我一直在研究實現BAM應用程序的工具和框架。基本要求是:需要幫助爲業務活動監視(BAM)應用程序設計POC
- 接口不同 應用程序以獲取業務 狀態/活動。初始提要 將是JMS提供者,Webservices,FTP, 和JMX。
- 儘可能接近實時。
- 需要每天處理2000多萬條消息,並以2000 /秒的突發速率(通過JMS提供程序(如activeMQ或WebsphereMQ)以XML格式傳遞消息)。
- 生成警報時,關鍵績效指標被突破(警告和嚴重級別)
其他需要考慮的事情是我們的小公司有Mulesoft EE許可證,公司應用程序堆棧(OSGi包和Tomcat,ActiveMQ的,囈等..)
所以,我從研究獨自思考之前,我嘗試POC初步做法草案是一樣的東西:
使用騾子作爲ESB與各種應用程序集成,然後利用其SEDA服務來處理和將事件分配給Drools引擎以處理規則assoc與這些事件有關。
我不太確定這個過程是否是這些工具被設計使用的方式,或者是否有更好的更有說服力的方式來處理這個問題。還有一些其他未解決的問題:
- 如何向用戶顯示事件和狀態(警告,kpi違規等)的聚合。 GWT整合?應該將這些事件放入內存數據庫中進行查詢和顯示?
- 就物理架構而言,我正考慮在兩臺服務器上使用drools引擎在同一臺服務器上運行羣集tomcat實例中的mule?數據庫(用於歷史存儲)在其自己的服務器上。
- 我不僅限於上述工具,我還在尋找Esper,Apache Camel
- 這種方法是否過分矯枉過正? RDBMS管理狀態可以使用更簡單的直接webapp嗎?我認爲實時和事件需求的數量會阻止這種情況發生。
任何幫助將不勝感激,以幫助我通過這裏的初始策略,或者是任何人已經實現了一個類似的需求,並希望分享的解決方案。謝謝!
由於數據量大,我會考慮實時聚合以避免存儲所有輸入事件。爲您的需求提供持久存儲將非常昂貴,並且內存存儲空間有限。 – 2011-05-10 12:01:35