Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS-SQS:如何设置maxConcurrentConsumers?_Amazon Web Services_Spring Boot_Message Queue_Spring Cloud_Amazon Sqs - Fatal编程技术网

Amazon web services AWS-SQS:如何设置maxConcurrentConsumers?

Amazon web services AWS-SQS:如何设置maxConcurrentConsumers?,amazon-web-services,spring-boot,message-queue,spring-cloud,amazon-sqs,Amazon Web Services,Spring Boot,Message Queue,Spring Cloud,Amazon Sqs,我们有一个要求,即我们需要使用SQS从开始到结束一次处理一条消息(不是严格的顺序)。我们是否可以在SQS中将maxConcurrentConsumer设置为1 我正在查看文档,但找不到要设置的此属性。在Amazon控制台上,我在配置队列菜单中没有看到此属性。在消息检索时,我们可以指定在一次轮询中要读取多少消息,但由于AWS自动缩放功能可以创建多个消费者(实际上是Springboot MicroService),我们不能通过将此限制设置为1来依赖它 注意:我们无法控制消息发送者,它可以将许多消息发

我们有一个要求,即我们需要使用SQS从开始到结束一次处理一条消息(不是严格的顺序)。我们是否可以在SQS中将maxConcurrentConsumer设置为1

我正在查看文档,但找不到要设置的此属性。在Amazon控制台上,我在配置队列菜单中没有看到此属性。在消息检索时,我们可以指定在一次轮询中要读取多少消息,但由于AWS自动缩放功能可以创建多个消费者(实际上是Springboot MicroService),我们不能通过将此限制设置为1来依赖它


注意:我们无法控制消息发送者,它可以将许多消息发送到SQS

没有控制并发SQS使用者最大数量的设置。正如您所提到的,根据队列大小水平扩展队列使用者是一种常见做法。如果出于任何原因,您的要求是拥有一个队列使用者,那么您必须从其他微服务中删除或禁用队列使用者,以便您只有一个使用者


但是,我鼓励您重新考虑只允许单个队列使用者的设计,因为该实现无法扩展。

我知道这不是最好的设计方法,因为我们严重限制了应用程序的扩展能力。事实上,我们被锁定在一个产品中,它是这些消息的消费者&它不能处理多个线程。它在重载条件下运行到比赛状态。在短期内,我们需要以某种方式限制SQS消费者的实例数量,直到产品固定。我认为这里建议的唯一选项是在应用程序属性文件中手动注释SQS。谢谢您是否尝试过使用SQS队列的任何设置,尤其是可见性超时?根据到底是什么导致了竞争条件,这可能没有任何区别,但可见性超时控制消息对其他消费者不可见的时间。因此,如果设置更大的可见性超时,则有助于防止多个使用者同时获得相同的消息。再说一次,这可能没什么区别,但我想提一提。