【问题标题】:Temporarily stop consuming RabbitMQ messages and resume later暂时停止消费 RabbitMQ 消息,稍后恢复
【发布时间】:2018-06-10 12:21:50
【问题描述】:

我使用Java的rabbitmq-client(https://mvnrepository.com/artifact/com.rabbitmq/amqp-client),需要实现如下场景:

  • 在接收 Rabbit 消息时,如果我怀疑所有等待的数据都无法放入内存中,我可能需要暂停特定队列中的 Rabbitmq 消费。
  • 处理完部分消息后,需要对以下一组消息再次开启消费。
  • 根据需要重复。

使用 amqp-client Java 库从 RabbitMQ 队列中实现暂停/恢复监听的最佳方式是什么?

【问题讨论】:

    标签: java rabbitmq amqp amqp-client


    【解决方案1】:

    您没有提及您使用哪种方法来消费消息,所以我假设您使用 basicConsume 订阅队列中的消息。

    正如that document 提到的,您可以使用basicCancel 停止从队列中消费。当你想重新开始时,你可以使用basicConsume

    请务必使用basicQos 设置合理的预取计数。

    【讨论】:

    • 我很想知道如何使用 Spring-rabbit 做同样的事情(不直接接触 amqp-client)。有什么想法吗?
    • 我建议搜索代码 (github.com/spring-projects/spring-amqp) 或在各种支持渠道上提问。一些 Spring 开发人员在堆栈溢出时处于活动状态。
    • 你能找到我们如何使用 spring-amqp 做到这一点吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    相关资源
    最近更新 更多