【发布时间】:2013-03-18 04:10:31
【问题描述】:
我想使用 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……
谢谢!
【问题讨论】:
标签: parallel-processing apache-camel jms activemq apache-servicemix