【发布时间】:2019-09-04 22:48:39
【问题描述】:
我想构建一个监听队列并执行一系列步骤的应用程序。
基本上,应用程序应该监听 Queue1 并且:
- 从ServiceA获取一些数据[少量数据]
- 从ServiceB获取一些数据[少量数据]
- 更新Service C中的一些信息[根据数据]
- 在 Queue2 上创建消息数量[基于数据]。
由于这个应用程序基于流的性质,我正在研究 Spring 中的作业执行系统。但是,所有步骤都设计为幂等的,并且在步骤之间传输的数据很小,因此我不想要带有此应用程序的数据库。
为此,我开始探索 Spring Batch 或 Spring Task。 Spring Batch 提供了非常好的构造,例如 Tasklet 和 Steps,但是有许多 cmets 建议将 Spring Batch 连接到数据库以及它是如何可靠地管理大量数据的(我在这里不需要可靠性,因为队列和幂等性提供了那。)。虽然我可以使用执行上下文传递数据,但有人反对它。
问题:
- Spring Boot 生态系统中是否有更简单的启动器,它们提供了我应该使用的工作流/类似作业的界面?
- 这是 Spring Batch 的有效用例还是过度工程/滥用步骤?
非常感谢您的帮助
阿尤什曼
P.S:我可以提供工作的确切细节,但不想混淆问题。
【问题讨论】:
标签: java spring spring-boot spring-batch spring-cloud-task