java读取kafka消费者信息

首先列出需要的jar包

java读取kafka消费者信息_第1张图片

第一步:导包 

import java.util.Arrays;
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;

第二步:编写一个静态块来连接kafka 

 

private static Consumer consumer;
	/**
	 * 消费者
	 */
	static {
		Properties props = new Properties();
		/*配置broker*/
		props.put("bootstrap.servers", "10.10.10.105:9092,10.10.10.106:9092,10.10.10.107:9092");//服务器ip:端口号,集群用逗号分隔
		/*配置group id*/
		props.put("group.id", "cf_alarm");
		/*配置自动提交位置*/
		props.put("enable.auto.commit", "true");
		/*配置从poll(拉)的回话处理时长,以毫秒为单位*/
		props.put("auto.commit.interval.ms", "1000");
		/*配置超时时间。,以毫秒为单位*/
		props.put("session.timeout.ms", "30000");
		props.put("auto.offset.reset", "earliest");
		props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
		props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
		consumer = new KafkaConsumer<>(props);
		/*配置consumer订阅的主题*/
		consumer.subscribe(Arrays.asList("cf_alarm"));
	}

第三步:编写获取消息的方法

	/**
	 * 从kafka上接收对象消息,将json字符串转化为对象,便于获取消息的时候可以使用get方法获取。
	 */
	public static void getMsgFromKafka(){
		
		while(true){
			ConsumerRecords records = KafkaTest.getKafkaConsumer().poll(100);
			System.out.println("开始读取消息");
			System.out.println("---------------"+records.count());
			if (records.count() > 0) {
				for (ConsumerRecord record : records) {
					String message = record.value();
					System.out.println(message);
					
				}
			}
		}
	}
	
    /*获得consumr*/
	public static Consumer getKafkaConsumer() {
		return consumer;
	}
 
    /*关闭consumer*/
	public static void closeKafkaConsumer() {
		consumer.close();
	}




第四步:main方法启动

	public static void main(String[] args) {
		KafkaTest.getMsgFromKafka();
    }

 

 

 

 

 

你可能感兴趣的:(java,kafka,消费者)