gpt4 book ai didi

java - 如何在摘除 Amqp/RabbitMQ 队列(Spring AMQP)之前执行 'check'

转载 作者:行者123 更新时间:2023-12-02 10:06:32 26 4
gpt4 key购买 nike

场景:微服务从 RabbitMQ 队列中获取消息,将其转换为对象,然后微服务对外部服务进行 REST 调用。

它将处理成千上万条这样的消息,如果我们知道外部 Rest 服务已关闭,有没有办法告诉我的消费者不要从队列中获取消息?

我知道一旦接收到单个消息,我可以重试该消息,但如果我知道它已关闭,我什至不想接收它。我不想在 DLQ 中处理数千条消息。

它也感觉像一个断路器设计模式,但我找不到任何关于如何使用 AMQP 实现它的具体示例。

额外信息:SpringBoot 应用程序,使用 spring amqp 访问 RabbitMQ。

提前致谢

最佳答案

您可以停止和启动消息监听器容器。

如果您使用离散容器,您可以停止/启动容器 bean。

如果您使用 @RabbitListener,请提供 id 属性并连接到 RabbitListenerEndpointRegistry bean。

然后registry.getMessageListenerContainer(myId).stop();

关于java - 如何在摘除 Amqp/RabbitMQ 队列(Spring AMQP)之前执行 'check',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55302022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com