kafka8 编写简单消费者

1.eclipse运行消费者代码。代码如下

 1 package cn.test.mykafka;
 2 
 3 import java.util.Arrays;
 4 import java.util.Properties;
 5 
 6 import org.apache.kafka.clients.consumer.ConsumerRecord;
 7 import org.apache.kafka.clients.consumer.ConsumerRecords;
 8 import org.apache.kafka.clients.consumer.KafkaConsumer;
 9 
10 
11 /**
12  * 简单消费者
13  *
14  */
15 
16 public class SimpleConsumer {
17 
18     public static void main(String[] args) {
19         
20         Properties props = new Properties();
21         props.put("bootstrap.servers", "192.168.42.133:9092");
22         props.put("group.id", "group1");
23         props.put("enable.auto.commit", "true");
24         props.put("auto.commit.interval.ms", "1000");
25         props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
26         props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
27         
28         @SuppressWarnings("resource")
29         KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
30         consumer.subscribe(Arrays.asList("test-topic")); //订阅主题
31         
32         while (true) {
33             @SuppressWarnings("deprecation")
34             ConsumerRecords<String, String> records = consumer.poll(100);
35             for (ConsumerRecord<String, String> record : records)
36                 System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());
37         }
38     }
39 }
SimpleConsumer.java

2.在服务器生产消息

[root@hadoop kafka]# kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic
>>test
>hello
>world

3.在eclipse控制台查看输出

offset = 118, key = null, value = test
offset = 119, key = null, value = hello
offset = 120, key = null, value = world

如上输出表示消费者成功消费消息。

offset偏移量:每消费一条消息,偏移量+1。

消费者消费的偏移量记载的是消费者组消费的该分区的消息的个数。

 

具体实现步骤参考 kafka5 编写简单生产者

 

posted @ 2018-12-21 16:18  zhengna  阅读(312)  评论(0编辑  收藏  举报