确定正确的 Spring Boot 启动器
Posted
技术标签:
【中文标题】确定正确的 Spring Boot 启动器【英文标题】:Identifying the Right Spring Boot Starter 【发布时间】: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:我可以提供工作的确切细节,但不想混淆问题。
【问题讨论】:
【参考方案1】:我在 Spring Batch 方面有两个值得体验的项目。我还没有尝试过 Spring Task。
话虽如此,我的回答有点偏颇。 Spring Batch 的配置有点臭名昭著。如果您的应用程序足够简单,只需使用“spring-boot-starter-amqp”。就足够了。
您决定使用 Spring Batch(因为它的 Job 和 Step Aspects 特性或其他特性),您可能希望配置为仅使用内存数据库(因为您不需要任何重试/滚动-back 提供的功能)。
【讨论】:
谢谢!我听从了你的建议。以上是关于确定正确的 Spring Boot 启动器的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot 应用程序启动时没有正确的应用程序名称
解决Myeclipse启动Spring Boot项目报出莫名异常