确定正确的 Spring 引导程序
Identifying the Right Spring Boot Starter
我想构建一个应用程序来监听队列并执行一系列步骤。
基本上应用程序应该监听 Queue1 和:
- 从ServiceA获取一些数据[少量数据]
- 从ServiceB获取一些数据[少量数据]
- 更新服务C中的一些信息[根据数据]
- 在 Queue2 上[根据数据]创建消息数。
由于此应用程序基于流程的性质,我正在研究 Spring 中的作业执行系统。然而,所有步骤都设计为幂等的,并且步骤之间传输的数据很小,因此我不希望这个应用程序使用数据库。
我开始为此探索 Spring 批处理或 Spring 任务。 Spring batch 提供了非常好的构造,如 Tasklet 和 Steps,但是有很多评论建议将 Spring Batch 连接到数据库以及它是如何设计来可靠地管理大量数据的(我不需要可靠性在这里,因为队列和幂等性质提供了这一点。)。虽然我可以使用执行上下文传递数据,但有人反对它。
问题:
- Spring Boot 生态系统中是否有更简单的启动器,它提供了我应该使用的 workflows/Job 之类的界面?
- 这是 spring 批处理的有效用例还是超过 engineering/misuse 个步骤?
非常感谢您的帮助
阿尤斯曼
P.S:我可以提供工作的确切细节,但不想混淆问题。
我有两个值得使用 Spring Batch 的项目。我还没有尝试 Spring 任务。
话虽如此,我的回答还是有些偏颇。 Spring 批处理配置有点臭名昭著。如果您的应用程序足够简单,只需使用 "spring-boot-starter-amqp"。就足够了。
你决定使用 Spring Batch(因为它的 Job 和 Step Aspects 特性或其他特性),你可能想要配置为只使用内存数据库(因为你不不需要它提供的任何 retry/roll-back 功能)。
我想构建一个应用程序来监听队列并执行一系列步骤。
基本上应用程序应该监听 Queue1 和:
- 从ServiceA获取一些数据[少量数据]
- 从ServiceB获取一些数据[少量数据]
- 更新服务C中的一些信息[根据数据]
- 在 Queue2 上[根据数据]创建消息数。
由于此应用程序基于流程的性质,我正在研究 Spring 中的作业执行系统。然而,所有步骤都设计为幂等的,并且步骤之间传输的数据很小,因此我不希望这个应用程序使用数据库。
我开始为此探索 Spring 批处理或 Spring 任务。 Spring batch 提供了非常好的构造,如 Tasklet 和 Steps,但是有很多评论建议将 Spring Batch 连接到数据库以及它是如何设计来可靠地管理大量数据的(我不需要可靠性在这里,因为队列和幂等性质提供了这一点。)。虽然我可以使用执行上下文传递数据,但有人反对它。
问题:
- Spring Boot 生态系统中是否有更简单的启动器,它提供了我应该使用的 workflows/Job 之类的界面?
- 这是 spring 批处理的有效用例还是超过 engineering/misuse 个步骤?
非常感谢您的帮助
阿尤斯曼
P.S:我可以提供工作的确切细节,但不想混淆问题。
我有两个值得使用 Spring Batch 的项目。我还没有尝试 Spring 任务。
话虽如此,我的回答还是有些偏颇。 Spring 批处理配置有点臭名昭著。如果您的应用程序足够简单,只需使用 "spring-boot-starter-amqp"。就足够了。
你决定使用 Spring Batch(因为它的 Job 和 Step Aspects 特性或其他特性),你可能想要配置为只使用内存数据库(因为你不不需要它提供的任何 retry/roll-back 功能)。