2015-10-20 57 views
0

我们有一个要求,我们需要在一天内处理大约5毫米的消息,并根据特定的业务规则为异步接收的消息生成唯一的标识符。用于大量数据的流水号

使用实例: -

系统接收到的消息A,消息B,消息C和消息d(对于所有消息类型的标准XML格式)。

业务规则: - 如果消息A中包含标签<tag1>和标签的值对的任一的<tag2>值,<tag3>匹配,消息B,C或d的<tag4>;分配分配给第一次匹配的标识符。如果没有匹配,则生成新的标识并分配给消息A. 熟悉的规则适用于消息B,C或D.

我们认为使用Drools Engine实现来支持上述用例,但不确定它是否可以工作海量数据和近实时处理。

有没有人使用Drools引擎来处理大量的数据,如果是这样,你可以请大家分享一下问题或统计数据。

+0

你需要把所有的A,B,C和d消息在会话?或者这些消息是否以某种批处理方式到达,并在标记后不再需要? –

+0

1 MM多少钱? – laune

+0

每封邮件有多大? – Thomas

回答

0

对于简单的规则,只检查4条件你的描述Drools将执行足够快。只要确保你只编译rools一次,而不是每个规则执行。按照上面描述的简单规则,您应该可以看到性能按大约每分钟100多万次的热状态进行规则调用。

看看这些基准,以获得更好的想法: https://github.com/winklerm/phreak-examples/tree/master/benchmark