多个 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
但是,这可能会导致 maintainability
、deployment
、memory
问题,我们将无法独立扩展每个工作器。听起来像monolith of workers
。另一种选择是为每个 worker
类型创建一个 spring cloud function
并将它们部署为 lambda
.
在 spring stack
中(我想使用 spring integration
和 reactor
)是否有针对此场景的任何其他解决方案,以便我们可以独立扩展每个工作人员并管理部署每个工人独立(听起来像每个工人的microservice
,但它没有域,只有一些处理逻辑,如验证,调用一些api,存储到数据库)
即使它没有任何域和 REST 端点,您仍然可以将其视为微服务,因为它是在从 SQS 队列中使用消息时激活的。因此,您使用 Spring Boot + Spring Integration AWS 的方向是正确的。您只需将 SQS 队列公开为配置 属性 并使用适当的扩展策略将您的应用程序部署到所需的环境中。
是的,您可能仍然可以为 AWS Lambda 编写 Spring 云函数,但是没有人会阻止您在函数主体中执行 Spring 集成逻辑。
我有许多 SQS
队列,我必须附加 workers
才能使用和处理消息(使用 spring integration flow
)。我最初的想法是有一个 spring boot
应用程序,每个 SQS 队列有 1 个通道(spring integration aws
)。
这会像 1 SQS -> 1 Channel -> 1 Flow
但是,这可能会导致 maintainability
、deployment
、memory
问题,我们将无法独立扩展每个工作器。听起来像monolith of workers
。另一种选择是为每个 worker
类型创建一个 spring cloud function
并将它们部署为 lambda
.
在 spring stack
中(我想使用 spring integration
和 reactor
)是否有针对此场景的任何其他解决方案,以便我们可以独立扩展每个工作人员并管理部署每个工人独立(听起来像每个工人的microservice
,但它没有域,只有一些处理逻辑,如验证,调用一些api,存储到数据库)
即使它没有任何域和 REST 端点,您仍然可以将其视为微服务,因为它是在从 SQS 队列中使用消息时激活的。因此,您使用 Spring Boot + Spring Integration AWS 的方向是正确的。您只需将 SQS 队列公开为配置 属性 并使用适当的扩展策略将您的应用程序部署到所需的环境中。
是的,您可能仍然可以为 AWS Lambda 编写 Spring 云函数,但是没有人会阻止您在函数主体中执行 Spring 集成逻辑。