java - 确定正确的 Spring Boot 启动器

标签 java spring spring-boot spring-batch spring-cloud-task


我想构建一个监听队列并执行一系列步骤的应用程序。 基本上应用程序应该监听 Queue1 并且:
- 从ServiceA获取一些数据[少量数据]
- 从ServiceB获取一些数据[少量数据]
- 更新服务C中的部分信息[根据数据]
- 在 Queue2 上[根据数据]创建消息数量。

由于该应用程序基于流程的性质,我正在研究 Spring 中的作业执行系统。然而,所有步骤都设计为幂等的,并且步骤之间传输的数据很小,因此我不希望使用此应用程序使用数据库。

我开始为此探索 Spring Batch 或 Spring Task。 Spring Batch 提供了非常好的结构,例如 Tasklet 和 Steps,但是有很多评论建议将 Spring Batch 连接到数据库以及它如何设计来可靠地管理大量数据(我在这里不需要可靠性,因为队列和幂等性质提供了那。)。虽然我可以使用执行上下文传递数据,但有一些建议反对它。

问题:
- Spring Boot 生态系统中是否有更简单的启动器提供我应该使用的工作流/作业之类的接口(interface)?
- 这是 spring Batch 的有效用例还是过度工程/误用步骤?

非常感谢您的帮助
阿尤斯曼

P.S:我可以提供工作的确切细节,但不想混淆问题。

最佳答案

我有两个值得使用 Spring Batch 的项目。我还没有尝试过Spring Task。

话虽如此,我的回答有些偏见。 Spring Batch 的配置有点臭名昭著。如果您的应用程序足够简单,只需使用“spring-boot-starter-amqp”。这就足够了。

如果您决定使用 Spring Batch(因为其作业和步骤方面功能或其他功能),您可能希望配置为仅使用内存数据库(因为您不需要任何重试/滚动) -它提供的返回功能)。

关于java - 确定正确的 Spring Boot 启动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55680963/

相关文章:

java - 什么是 Java 中的反向引用?

java - Commons CLI 不支持我的命令行设置

java - Spring HTTP 调用程序在处理下一个请求之前等待一秒钟

java - 将 Spring @Resource 注入(inject) Servlet

java - 在 JSP 中显示图像(Spring 3 java 配置)

java - HikariCP - 多个数据源,仅启动主数据源池(Spring Boot)

java - TypeInitializationException 未处理

java - Opennlp 1.5 用于 SentenceDetector?

java - Spring Data REST - HAL 浏览器 - 返回 HAL 浏览器 HTML 而不是 API 的根

java - 所有任务完成后spring boot应用程序不退出