多个 Spring 集成流程作为工作人员从许多 SQS 队列中消费

Multiple Spring Integration flows as workers to consume from many SQS queues

我有许多 SQS 队列,我必须附加 workers 才能使用和处理消息(使用 spring integration flow)。我最初的想法是有一个 spring boot 应用程序,每个 SQS 队列有 1 个通道(spring integration aws)。

这会像 1 SQS -> 1 Channel -> 1 Flow

但是,这可能会导致 maintainabilitydeploymentmemory 问题,我们将无法独立扩展每个工作器。听起来像monolith of workers。另一种选择是为每个 worker 类型创建一个 spring cloud function 并将它们部署为 lambda.

spring stack 中(我想使用 spring integrationreactor)是否有针对此场景的任何其他解决方案,以便我们可以独立扩展每个工作人员并管理部署每个工人独立(听起来像每个工人的microservice,但它没有域,只有一些处理逻辑,如验证,调用一些api,存储到数据库)

即使它没有任何域和 REST 端点,您仍然可以将其视为微服务,因为它是在从 SQS 队列中使用消息时激活的。因此,您使用 Spring Boot + Spring Integration AWS 的方向是正确的。您只需将 SQS 队列公开为配置 属性 并使用适当的扩展策略将您的应用程序部署到所需的环境中。

是的,您可能仍然可以为 AWS Lambda 编写 Spring 云函数,但是没有人会阻止您在函数主体中执行 Spring 集成逻辑。