美文网首页
消费者自定义监听

消费者自定义监听

作者: 爱吃豆包 | 来源:发表于2023-04-05 17:49 被阅读0次

我们一般就是代码中便也while循环,进行consumer.nextDelivery() 方法进行获取下一条,然后进行消费处理!

但是我们使用自定义的Consumer更加的方便,解耦性更加的强,也是实际工作中最常见的使用方式!

// ----  方式二 推荐 ----

        // 5.创建消费者, 用来处理消息
        com.rabbitmq.client.Consumer consumer = new DefaultConsumer(channel) {
            // 第一参数:consumerTag 同一个会话, consumerTag 是固定的 可以做此会话的名字, deliveryTag 每次接收消息+1,可以做此消息处理通道的名字。
            //      因此 envelope.deliveryTag 可以用来回传告诉 rabbitmq 这个消息处理成功 清除此消息(basicAck方法)。
            // 第二个参数: envelope 表示消息类型信息
            // 第三个参数:properties 表示消息路由头的其他属性等
            // 第三个参数: body 消息内容
            @Override
            public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                // 获取到消息后的消息处理
                String message = new String(body,"UTF-8");
                System.out.println("消费端-接收到的消息:" + message);
            }
        };

         // 6.设置channel
         // queue 表示要监听的队列
         // autoAck 是否自动发送签收消息(也就是如果我收到消息了,我就自动发送一个消息确认通知)
        channel.basicConsume(queueName, true,consumer);

相关文章

网友评论

      本文标题:消费者自定义监听

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