使用 Spring Batch 和 AMQP 进行分布式批处理
-
21-12-2019 - |
题
我想分散大批量的处理。这个想法是使用 Spring Batch 在云中启动一堆 AMQP 消费者,然后加载廉价任务(如项目 ID)并将它们提交到 AMQP 交换。结果的书写将由消费者自己完成。
是否有现成的库可以完成此任务?
一些想法:
- Spring Batch 是完全可以协商的。
- 批量大小为数百万。我不想通过一次性提交所有这些 ID 来杀死我的消息代理,而是使用某种限制。
- 我确实想知道哪些项目已被处理,以便我可以监控流程。因此,批次控制过程必须接收消费者的回复。
解决方案
是的,请参阅 spring 批处理集成 项目。它结合了 Spring Batch 和 Spring Integration 来执行您想要的操作。
对于批次 2.2.x,它是 spring-batch-admin
分配;在即将发布的批处理 3.0.0 版本中,它已移至批处理正确位置。
远程分区仅发送有关分区的元数据,而工作人员实际获取数据。
它带有一个 JMS 示例 但将 spring 集成 JMS 网关替换为 spring 集成 amqp 网关并不困难。
还有一个远程分块版本,其中数据通过传输而不是分区元数据发送。
不隶属于 StackOverflow