Java 如何';检查';在提取Amqp/RabbitMQ队列(Spring Amqp)之前
情景: 微服务从RabbitMQ队列中拾取消息,将其转换为对象,然后微服务对外部服务进行REST调用 它将处理成千上万条这样的消息,如果我们知道外部Rest服务已关闭,是否有办法告诉我的消费者不要从队列中拾取消息 我知道我可以在收到一封单独的邮件后重试,但如果我知道它被拒绝了,我甚至不想再收到它。 我不想在DLQ中处理成千上万的消息 而且它感觉像一个断路器设计模式,但我找不到任何具体的例子来说明如何用AMQP实现它 额外信息: SpringBoot应用程序,使用SpringAMQP访问RabbitMQJava 如何';检查';在提取Amqp/RabbitMQ队列(Spring Amqp)之前,java,spring-boot,rabbitmq,spring-amqp,circuit-breaker,Java,Spring Boot,Rabbitmq,Spring Amqp,Circuit Breaker,情景: 微服务从RabbitMQ队列中拾取消息,将其转换为对象,然后微服务对外部服务进行REST调用 它将处理成千上万条这样的消息,如果我们知道外部Rest服务已关闭,是否有办法告诉我的消费者不要从队列中拾取消息 我知道我可以在收到一封单独的邮件后重试,但如果我知道它被拒绝了,我甚至不想再收到它。 我不想在DLQ中处理成千上万的消息 而且它感觉像一个断路器设计模式,但我找不到任何具体的例子来说明如何用AMQP实现它 额外信息: SpringBoot应用程序,使用SpringAMQP访问Rabbi
提前感谢您可以停止并启动邮件侦听器容器 如果您使用的是离散容器,那么可以停止/启动容器bean 如果您使用的是
@RabbitListener
,请在RabbitListenerEndpointRegistry
bean中提供一个id
属性和连接
然后
registry.getMessageListenerContainer(myId.stop()代码>好吧,因为您开始的事件是接收消息,所以这似乎不太可能。您可以在计时器上实现对Rest服务的运行状况检查,并在服务关闭时停止消息侦听器?我们使用的是离散容器,这似乎有效。谢谢