美文网首页Hello Java
rabbitmq实现ack-消息应答

rabbitmq实现ack-消息应答

作者: Aldeo | 来源:发表于2019-01-17 18:50 被阅读12次

    1.yml配置


    image.png

    2.监听者
    @RabbitListener(queues = "ack.test")
    public void handleMessage5(String data,Channel channel, Message message) {
    System.out.println("ack.test接收到的消息 : " + data);
    try {
    Thread.sleep(5000L);
    // channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); // 消息的标识,false只确认当前一个消息收到,true确认所有consumer获得的消息
    // channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true); // ack返回false,并重新回到队列,api里面解释得很清楚
    // channel.basicReject(message.getMessageProperties().getDeliveryTag(), true); // 拒绝消息
    channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true); // ack返回false,并重新回到队列,api里面解释得很清楚
    } catch (IOException e) {
    e.printStackTrace();
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }

    3.好处
    消费者挂掉后,消息还可以再次消费


    image.png

    消费出现问题时,可以再次消费,或分发给别的消费者

    相关文章

      网友评论

        本文标题:rabbitmq实现ack-消息应答

        本文链接:https://www.haomeiwen.com/subject/giqwdqtx.html