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

Spring integration 多个Spring集成流作为工人从多个SQS队列中消费,spring-integration,spring-cloud-function,Spring Integration,Spring Cloud Function,我有许多sq队列,我必须将workers附加到这些队列中以使用和处理消息(使用spring集成流)。我最初的想法是使用单个spring引导应用程序,每个SQS队列有一个通道(spring集成aws) 这将类似于1sqs->1channel->1flow 但是,这可能会涉及到可维护性,部署,内存问题,我们无法独立扩展每个工作人员。这听起来像是工人的一块巨石。另一个选项是为每个worker类型创建spring云函数,并将其部署为lambda 在spring堆栈(我想使用spring集成和reacto

我有许多
sq
队列,我必须将
workers
附加到这些队列中以使用和处理消息(使用
spring集成流
)。我最初的想法是使用单个
spring引导
应用程序,每个SQS队列有一个通道(
spring集成aws

这将类似于
1sqs->1channel->1flow

但是,这可能会涉及到
可维护性
部署
内存
问题,我们无法独立扩展每个工作人员。这听起来像是工人的一块巨石。另一个选项是为每个
worker
类型创建
spring云函数
,并将其部署为
lambda


spring堆栈
(我想使用
spring集成
reactor
)中是否有其他解决方案可以用于此场景,以便我们可以独立地扩展每个工人,也可以独立地管理每个工人的部署(对于每个worker来说,听起来像是一个
微服务
,但它没有域,只有一些处理逻辑,如验证、调用一些api、存储到数据库)

即使它没有任何域和REST端点,您仍然可以将其视为微服务,因为当消息从SQS队列中消费时,它会被激活。因此,您对Spring Boot+Spring Integration AWS的指导是正确的。您只需将SQS队列作为配置属性公开,并将应用程序部署到desi中即可具有适当缩放策略的红色环境


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

谢谢!我有很多队列,所以如果我执行
1个Spring引导/SQS
,那么这就是很多小项目(即使我使用maven多模块)如果我对所有队列使用1个spring boot,那么唯一的扩展选项是通过通道级别的任务执行器来扩展彼此独立的工作人员。我正在考虑对每个工作人员使用
kubernetes
自动扩展。有什么建议或可能我遗漏了什么吗?我认为它仍然可以正确扩展,因为您我们将拥有同一应用程序的多个实例,因此它甚至可能将您视为该任务的执行者。