010 消费者消费消息API

Posted 最爱五仁月饼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了010 消费者消费消息API相关的知识,希望对你有一定的参考价值。

一 ,概述

  在前面讲述API的时候,没有说明消费者的API,本次在这里需要重点的进行说明, 


二 .创建消费者

  我们使用现在推荐使用的方式来创建一个消费者.

下面展示创建一个消费者具体的代码:

  现在推荐使用的就是创建一个DefaultConsumer的子类,重写其中对应的方法,这是一种面向事件的编程模型.

    Consumer consumer = new DefaultConsumer(channel) {
            // 下面的函数会在消费消息的时候被回调
            @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 );
            }
        };

我们使用上面的方式创建了一个消费者,同时我们重写了一个接受消息的方法.

  

在上面的图中,我们看到了很多的回调,我们选择合适的方法进行回调处理.


 

三.消费消息

  在消费消息的时候,我们会使用basicConsumer方法进行.

String basicConsume(String queue, boolean autoAck, Consumer callback) throws IOException;

这个方法是我们最常用的消费者消费消息的方法了.

我们只需要注意一个参数就好了,是否自动完成ack.

  这里需要介绍一下ack的概念,由于消息中间件需要保证消息的不丢失,只有一个消费得到了对应的ack之后,才会在消息中间件之中删除.

  如果这里设置为true,消费者在获取到消息之后就会自动的发送一个ack.

  一般情况下,我们都会手动的返回ack.

 

以上是关于010 消费者消费消息API的主要内容,如果未能解决你的问题,请参考以下文章

消息队列kafka java API, 新版旧版消费代码

RocketMQ - 如何用死信队列解决消费者异常

永远运行 kafka 消费者(新的消费者 API)

kafka——消费者原理解析

如何在默认情况下从 Kafka Spring Cloud Stream 消费并消费由 Confluent API 生成的 Kafka 消息?

Kafka核心API——Consumer消费者