构建kafka-Java开发环境-消费者

x33g5p2x  于2021-03-14 发布在 其他  
字(1.8k)|赞(0)|评价(0)|浏览(366)
  • 首先确定一点,我使用的kafka是2.11-2.11版本。kafka java API已经发生了变化。
    所以首先明确,要去看文档!消费者javaAPI
package com.bizzbee.spark.kafka;
import java.io.IOException;
import java.time.Duration;
import java.util.Arrays;
import java.util.Collection;
import java.util.Properties;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer;

public class SimpleKafkaConsumer {
    public static void main(String[] args) {
        Properties props = new Properties();
        //集群地址,多个地址用","分隔
        //因为生产者像三个broker生产,所以这边写93,94,95都行
        props.put("bootstrap.servers","spark:9095");
        //设置消费者的group id
        props.put("group.id", "group1");
        //如果为真,consumer所消费消息的offset将会自动的同步到zookeeper。如果消费者死掉时,由新的consumer使用继续接替
        props.put("enable.auto.commit", "true");
        //consumer向zookeeper提交offset的频率
        props.put("auto.commit.interval.ms", "1000");
        props.put("session.timeout.ms", "30000");
        //反序列化
        props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
        props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
        //创建消费者
        KafkaConsumer<String, String> consumer = new KafkaConsumer<String, String>(props);
        // 订阅topic,可以为多个用,隔开,此处订阅了"test-partition-1", "test"这两个主题
        consumer.subscribe(Arrays.asList("bizzbee_topic", "bizzbee-replicated-topic"));
        //持续监听
        while(true){
            //poll频率
            ConsumerRecords<String,String> consumerRecords = consumer.poll(Duration.ofMillis(100));
            for(ConsumerRecord<String,String> consumerRecord : consumerRecords){
                System.out.println("bizzbee-replicated-topic" + consumerRecord.value());
            }
        }
    }

}
  • 把上一节的生产者运行起来,然后运行消费者就可以了。

相关文章

微信公众号

最新文章

更多