【问题标题】:RabbitMQ how to control how much message consumed by queueRabbitMQ如何控制队列消耗多少消息
【发布时间】:2021-04-02 09:28:21
【问题描述】:

我使用入站通道适配器配置以下列方式使用消息。

    @Bean
    public AmqpInboundChannelAdapter itemInboundChannelAdapter(@Qualifier(value = "errorChannel") MessageChannel errorChannel,
                                                               @Qualifier(value = "itemChannel") Queue itemQueue,
                                                               Jackson2ObjectMapperBuilder objectMapperBuilder,
                                                               ConnectionFactory connectionFactory) {

        final SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory);
        container.setMaxConcurrentConsumers(1);
        container.setExclusive(true);
        container.setAcknowledgeMode(AcknowledgeMode.AUTO);
        container.setQueueNames(itemQueue.getName());

        return Amqp
                .inboundAdapter(container)
                .errorChannel(errorChannel)
                .outputChannel(itemValidateChannel())
                .messageConverter(new PackageConvertingJackson2JsonMessageConverter(objectMapperBuilder.build(), Item.class))
                .get();
    }

从屏幕截图中可以看出,我一次消耗 250 条消息。如何将其限制为 10 秒?

【问题讨论】:

    标签: spring-boot rabbitmq


    【解决方案1】:

    您没有消耗 250 x 250,但您正在预取。您可以使用:

    container.setPrefetchCount(10);
    

    限制预取计数。

    【讨论】:

      猜你喜欢
      • 2014-11-17
      • 2020-04-04
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-27
      • 1970-01-01
      相关资源
      最近更新 更多