代码先锋网 代码片段及技术文章聚合

在Idea中读取Kafka消费者数据——指定Topic消费

技术标签: kafka  大数据  java  intellij idea

在Idea中读取Kafka消费者数据

一、依赖

    <repositories>
        <repository>
            <id>cloudera</id>
            <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
        </repository>
    </repositories>

    <properties>
    <kafka-version>2.1.0-cdh6.2.0</kafka-version>
    </properties>

    <dependencies>
        <!--kafka依赖-->
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>connect-api</artifactId>
            <version>${kafka-version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka_2.12</artifactId>
            <version>${kafka-version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
            <version>${kafka-version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-streams</artifactId>
            <version>${kafka-version}</version>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>

二、代码如下

package Demo;

import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.common.TopicPartition;

import java.util.Arrays;
import java.util.Properties;

public class kafkaDemo1 {
    public static void main(String[] args) {
        String topicName = "datapartition";

        //1.配置属性值
        Properties properties = new Properties();
        //kafka是服务器地址
        properties.put("bootstrap.servers", "hdp1:9092");
        //定义消费者组
        properties.put("group.id", "gmall");
        //自动提交(offset)
        properties.put("enable.auto.commit", "true");
        //自动处理的间隔时间1秒
        properties.put("auto.commit.interval.ms", "1000");
        //key和values的持久化设置
        properties.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
        properties.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
        //2.创建消费者
        KafkaConsumer<String, String> kafkaConsumer = new KafkaConsumer<String, String>(properties);
        //3.消费topic(可以有多个topic)
        kafkaConsumer.assign(Arrays.asList(new TopicPartition(topicName,0)));
        kafkaConsumer.seekToBeginning(Arrays.asList(new TopicPartition(topicName,0)));
        //4.执行消费的操作
        while (true) {
            //100ms消费一次
            //kafkaConsumer.poll(100)读出来,读到records
            ConsumerRecords<String, String> records = kafkaConsumer.poll(100);
            for (ConsumerRecord<String, String> record : records) {
                System.out.println("-----------------");
                //打印偏移量,key,value
                System.out.printf("offset = %d, key = %s, value = %s\n", record.offset(), record.key(), record.value());
                System.out.println();
            }
        }
    }
}

三、部分打印结果

在这里插入图片描述

版权声明:本文为Mozart__原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Mozart__/article/details/111555150

智能推荐

kafka消费者

@kafka Kafka消费者 1.1 消费者与消费者组 消费者与消费者组之间的关系 ​ 每一个消费者都隶属于某一个消费者组,一个消费者组可以包含一个或多个消费者,每一条消息只会被消费者组中的某一个消费者所消费。不同消费者组之间消息的消费是互不干扰的。 为什么会有消费者组的概念 ​ 消费者组出现主要是出于两个目的: ​ (1) 使整体的消费能力具备横向的伸缩性。可以适当增加消费者组中消费者的数量,...

【kafka】消费者

consumer 需要实时记录自己消费到了哪个 offset,以便故障恢复后继续消费。 所以设计消费者时,offset是必须考虑的问题 自定义存储 offset的消费者  ...

kafka 消费者

kafka 消费者 ——总结自《kafka 权威指南》 kafka 消费者从属于消费者群组,一个群组里的消费者订阅的是同一个主题,每个消费者接收主题一部分分区的消息。如果群组里的消费者超出主题的分区数量,那么就有一部分消费者会被闲置,不会接收到任何信息。 分区的所有权从一个消费者转移到另一个消费者,这种行为成为再均衡。在再均衡期间,消费者无法读取消息,造成整个群组一小段时间...

kafka消费者

kafka客户端从kafka集群消费消息(记录)。它会透明地处理kafka集群中服务器的故障。它获取集群内数据的分区,也和服务器进行交互,允许消费者组进行负载平衡消费。(见下文)。 消费者维持TCP连接到必要的broker来获取消息。故障导致消费者关闭使用,会泄露这些连接,消费者不是线程安全的,可以查看更多关于Multi-threaded(多线程)处理的细节。 偏移量和消费者的位置 kafka为每...

Kafka 消费者

1.消费方式 consumer 采用 pull(拉)模式从 broker 中读取数据。 push(推)模式很难适应消费速率不同的消费者,因为消息发送速率是由 broker 决定的。 它的目标是尽可能以最快速度传递消息,但是这样很容易造成 consumer 来不及处理消息,典型的表现就是拒绝服务以及网络拥塞。而 pull 模式则可以根据 consumer 的消费能力以适 当的速率消费消息。 **pu...

猜你喜欢

Kafka消费者

简 消息由生产者产出,产出后push到partition中,但是既然有生产了,那肯定就要有消费,不然我们生产出来的消息岂不成了垃圾数据,所以在kafka中有一个与生产者对应的玩意儿:消费者。生产者是往partition中push数据,而消费者是从partition中pull消息,有些MQ中是由服务端push消息给消费者,并且是阅后即焚的模式,但是kafka是支持将消息持久化到磁盘上,并且并不会因为...

kafka 消费者

1、 消费方式 consumer 采用 pull(拉)模式从 broker 中读取数据。 push(推)模式很难适应消费速率不同的消费者,因为消息发送速率是由 broker 决定的。它的目标是尽可能以最快速度传递消息,但是这样很容易造成 consumer 来不及处理消息,典型的表现就是拒绝服务以及网络拥塞。 而 pull 模式则可以根据 consumer 的消费能力以适当的速率消费消息。pull ...

kafka --- 消费者

主要关注以下几个点:1、offset的提交  2、消息的幂等性 maven配置  application.yml配置:  java config: offset提交 消息的幂等性 可以看消息重复的解决方式 ...

kafka消费者

kafka消费者 消费步骤 消息订阅 序列化方式 拉取消息 offset提交 重复消费问题 控制和关闭消费者 指定位移消费 线程不安全 消费步骤 订阅主题 拉取消息 提交offset 关闭消费者实列 消息订阅 subscribe(Collection)集合订阅分区 subscribe(Pattern)正则表达式订阅分区 assign(Collection)指定分区订阅 通过subscribe订阅主...

Kafka消费者

文章目录 Kafka消费者 1、消费方式 2、基础消费者 3、消费者组案例 4、分区分配策略 5、offset的维护 消费offset案例 6、自动提交offset 7、重置offset 8、手动提交offset 同步提交 异步提交 9、Consumer事务 Kafka消费者 1、消费方式 pull(拉)模式从broker中读取数据,可以根据consumer的消费能力以适当的速率消费消息。pull...