Stream wso2/ws02 CEP、ESPER或其他什么?

Stream wso2/ws02 CEP、ESPER或其他什么?,stream,wso2,complex-event-processing,esper,Stream,Wso2,Complex Event Processing,Esper,我有一个用例,其中系统事务在一段时间内发生/完成,并且有多个“构建”步骤。流程中的每个步骤都会生成一个或多个事件(每个事务最多22个事件)。事务中的所有事件都具有共享和唯一(uuid)关联ID 例如事务X:将具有EventA、EventB、EventC的构建块。。。并且都用唯一的相关标识符标记 这里的最终目标是从持久化RDBMS中的所有单独事件和查询合并视图(大量联接)切换到:能够仅持久化包含事务记录的1个事务记录,该事务记录将合并事务中每个步骤的属性 到目前为止,我的研究使我开始阅读Esper

我有一个用例,其中系统事务在一段时间内发生/完成,并且有多个“构建”步骤。流程中的每个步骤都会生成一个或多个事件(每个事务最多22个事件)。事务中的所有事件都具有共享和唯一(uuid)关联ID

例如事务X:将具有EventA、EventB、EventC的构建块。。。并且都用唯一的相关标识符标记

这里的最终目标是从持久化RDBMS中的所有单独事件和查询合并视图(大量联接)切换到:能够仅持久化包含事务记录的1个事务记录,该事务记录将合并事务中每个步骤的属性

到目前为止,我的研究使我开始阅读Esper(此处为Java堆栈)和WSo2/WS02 CEP。在我的例子中,每个事件都被提交/排队到JMS中,我想知道像WS02/WSo2 CEP这样的解决方案是否可以用于合并JMS事件/消息(流),并基于相关ID(和最大时间限制30分钟)生成一个合并记录,并将其发送到JMS中,最终保存在DB中

由于我仍处于研究模式,我想知道我是否走上了解决方案的正确道路

有人使用WS02/WSo2 CEP实现了这样的目标,或者说是过度杀戮?其他建议

谢谢
-您可以通过将WSO2 CEP集成到JMS来发送和接收事件,并通过使用Siddhi模式查询[1]来合并来自同一事务的事件,从而使用WSO2 CEP

30分钟是一个合理的时间段,建议使用一些测试数据集测试场景,因为服务器中必须有足够的内存,CEP才能处理这些状态。这在很大程度上取决于事件发生率

总之,在企业部署中,这不是一个过度的杀戮


[1] 我建议你试试。对于基于多事件的系统来说,收集某些特定信息的模式是最好的方式

例如:

select * from TemperatureEvent
match_recognize (
measures A as temp1, B as temp2, C as temp3, D as temp4
pattern (A B C D)
define
A as A.temperature > 100,
B as (A.temperature < B.value),
C as (B.temperature < C.value),
D as (C.temperature < D.value) and D.value >
(A.value * 1.5))
从TemperatureEvent中选择*
相配(
测量A为temp1,B为temp2,C为temp3,D为temp4
模式(A B C D)
定义
当温度>100时,
B为(A.温度
(A.价值*1.5)
这里,我们有4个事件和5个涉及这些事件的条件。例子取自