我想使用 ServiceMix / ActiveMQ / Camel 集群并行处理数据。看来我可以通过首先拆分数据,然后通过多个 JMS 消息和代理的 ActiveMQ 网络分发它来实现这一点。
困难的部分是我最终需要汇总所有节点的所有结果。我目前不确定如何做到这一点。所有结果最终都必须在一个节点上结束。
所以整体流程如下所示: (1) 检索数据。(2) 将其拆分为可管理的块。(3) 通过 ActiveMQ 集群将数据块发布到分布式 JMS 队列中。(4) 在所有节点上处理数据。
现在我不知道如何处理的部分:
(5) 聚合来自所有节点的处理数据 (6) 最后处理步骤与聚合结果。
> [Process data (node 1)] >
[Retrieve DATA] >>>[vm://]>>> [SPLIT] >>>[activemq://]>>> [Process data (node 2)] >>>[activemq://]>>> [AGGREGATE] >>>[vm://]>>> [FINALIZE DATA]
> [Process data (node 3)] >
鉴于 ActiveMQ 代理网络可以愉快地分发所有内容,我该如何实现呢?仅在一个节点上部署最终聚合路由?不喜欢它,因为那会产生 SPOF……</p>
谢谢!