【发布时间】:2015-10-20 20:16:03
【问题描述】:
我们有一个需求,一天需要处理大约 5MM 条消息,并根据一定的业务规则,为异步接收的消息生成一个唯一标识符。
用例:-
系统收到消息 A、消息 B、消息 C 和消息 D(所有消息类型的标准 xml 格式)。
业务规则:- 如果消息 A 包含标签 <tag1> 并且标签的值与消息 B、C 或 D 的 <tag2>、<tag3>、<tag4> 的值匹配;分配为第一次匹配分配的标识符。如果没有匹配,则生成新的标识符并分配给消息 A。
类似的规则适用于消息 B、C 或 D。
我们曾考虑使用 Drools Engine 实现来支持上述用例,但不确定它是否能处理如此大量的数据并近乎实时地处理。
有没有人使用 Drools Engine 处理大量数据,如果有,请您分享一下相同的问题或统计数据。
【问题讨论】:
-
您是否需要在会话中保留所有 A、B、C 和 D 消息?或者这些消息是否以某种批处理操作到达,并且在标记后不再需要?
-
每条消息有多大?
-
由您提供相关数据。 A、B、C 或 D 中的一个有多大?每条消息在被分配标识符后的“生命周期”是什么?如果没有匹配怎么办?