我想运行Spring Integration流程,如果达到任何容量,我可以轻松扩展组件实例。
特别是,我想知道如何在以下场景中扩展聚合器:聚合器层之前的各种组件生成类X的对象的不同部分 - 让我们说它们生成两个这样的对象的一部分X 1 ,X 2 - 部分称为{a 1 ,b 1 }和{a 2 ,b 2 }。聚合器现在应该从它们的部件构造X 1 和X 2 并发送它们。我们还假设有两个聚合器,A 1 和A 2 。
如何最轻松地进行设置以使其按预期工作,即创建并发送X 1 和X 2 ?
我看到以下注意事项:
我想知道以下内容是否对我有用 - 这是基于Spring Integration文档,但我不确定我是否做得好。
非常感谢!
答案 0 :(得分:2)
是的它会起作用,但你不需要Redis,除非你需要持久性或你的聚合器在不同的盒子上运行(但见下文);您可以在聚合器之间共享相同的SimpleMessageStore
。默认情况下,每个聚合器都使用自己的内存中SimpleMessageStore
。
而且,是的,锁定(correlationId
)确保只有一个聚合器可以同时处理一个组。
...因为我使用锁......
聚合器在内部使用自己的锁,您不需要自己锁定任何东西。事实上,使用全局LockRegistry
(gemfire,redis,自定义实现)和持久性消息组存储(redis等),您的聚合器可以在不同的JVM上运行。