Parallel processing 如何在Spring集成中运行并行聚合器?
我想运行一个Spring集成流,在这里,如果达到任何组件的容量,我可以轻松地扩展组件的实例 特别是,我想知道如何在下面的场景中扩展聚合器:聚合器层之前的各种组件生成类X对象的不同部分——假设它们生成两个这样的对象X1、X2的部分——这些部分分别称为{a1、b1}和{a2、b2}。聚合器现在应该从它们的部分构造X1和X2并发送它们。我们还假设有两个聚合器,A1和A2 如何才能最轻松地设置它,使其按预期工作,即创建并发送X1和X2? 我认为有以下考虑:Parallel processing 如何在Spring集成中运行并行聚合器?,parallel-processing,spring-integration,enterprise-integration,Parallel Processing,Spring Integration,Enterprise Integration,我想运行一个Spring集成流,在这里,如果达到任何组件的容量,我可以轻松地扩展组件的实例 特别是,我想知道如何在下面的场景中扩展聚合器:聚合器层之前的各种组件生成类X对象的不同部分——假设它们生成两个这样的对象X1、X2的部分——这些部分分别称为{a1、b1}和{a2、b2}。聚合器现在应该从它们的部分构造X1和X2并发送它们。我们还假设有两个聚合器,A1和A2 如何才能最轻松地设置它,使其按预期工作,即创建并发送X1和X2? 我认为有以下考虑: A1得到A1,A2得到b1,没有额外的东西
- A1得到A1,A2得到b1,没有额外的东西X1不能被构造
- 我们需要一些负载平衡,这就是为什么首先需要多个聚合器
- 如果需要,可以很容易地添加额外的聚合器-避免聚合器数量的静态配置
我想知道下面的内容是否适合我——这是基于Spring集成文档的,但我不确定是否正确
非常感谢 是的,它可以工作,但您不需要Redis,除非您需要持久性或者您的聚合器在不同的框上运行(但请参见下文);您可以在聚合器之间共享相同的
SimpleMessageStore
。默认情况下,每个聚合器使用自己的内存SimpleMessageStore
是的,锁(通过correlationId
)确保只有一个聚合器同时处理一个组
。。。因为我用的是锁
聚合器在内部使用自己的锁,您不需要自己锁定任何东西。事实上,通过一个全局的LockRegistry
(gemfire、redis、定制实现)和一个持久消息组存储(redis等),您的聚合器可以在不同的JVM上运行