我一直在研究实现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