【发布时间】:2016-06-02 22:13:09
【问题描述】:
我正在使用直接交换将消息发布到带有路由键的某些队列,全部在rabbit-server而不是代码中配置,我正在使用spring微服务消费消息然后在接收方法中发生一些故障,然后是消息重新排队导致循环,所以我想用rabbit-server添加一个策略来防止这种重新排队,它可以作为参数添加,同时将队列与特定路由键的交换绑定,或者它应该是政策?
【问题讨论】:
标签: spring rabbitmq message-queue
我正在使用直接交换将消息发布到带有路由键的某些队列,全部在rabbit-server而不是代码中配置,我正在使用spring微服务消费消息然后在接收方法中发生一些故障,然后是消息重新排队导致循环,所以我想用rabbit-server添加一个策略来防止这种重新排队,它可以作为参数添加,同时将队列与特定路由键的交换绑定,或者它应该是政策?
【问题讨论】:
标签: spring rabbitmq message-queue
默认情况下,在任何异常情况下,spring 都会发送带有 requeue “true”的 nack。如果在你的 spring 消费者应用程序中你想发送 requeue false,那么抛出异常“AmqpRejectAndDontRequeueException”。所以你的消费者代码应该看起来像这样:
`void onMessage(){
try{
// Your Code Here
} catch(Exception e){
throw new AmqpRejectAndDontRequeueException();
}
}`
【讨论】: