1、完全按照官网的java代码来写的,一开始producer还会报错,修改了server.properties里面的listener就好了,kafka用的是kafka_2.11-2.0.0 下面是部分代码
props.put("bootstrap.servers", "192.168.111.146:9092");
props.put("group.id", "test-consumer-group");
props.put("enable.auto.commit", "true");
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");
props.put("auto.offset.reset", "earliest");
ConsumerRecords<String, String> records = kafkaConsumer.poll(Duration.ofMillis(100));
2、上面是prop的配置信息 下面poll(100)说是已经过时
if(records.isEmpty()){
}
3、会一直显示为空
搞了几天了 也不报错也不接受信息 求救
consumer拉取消息的地方是不是没有死循环?
第一次写markdown格式 不是很会 见谅。。。
订阅主题了吗?
订阅了 只是把部分代码截取出来
console-consumer能消费到消息吗
可以 客户端的producer console-producer都可以用 就客户端的consumer接收不到数据
订阅主题了吗?
看着没问题,现在找到原因了吗?
没有。。。也没报错 感觉是这里问题 你们都是kafkaConsumer.poll(100)我这边就会显示过时 得用Duration的静态方法
Properties props = new Properties(); props.setProperty("bootstrap.servers", "localhost:9092"); props.setProperty("group.id", "test"); props.setProperty("enable.auto.commit", "true"); props.setProperty("auto.commit.interval.ms", "1000"); props.setProperty("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); props.setProperty("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props); consumer.subscribe(Arrays.asList("foo", "bar")); while (true) { ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100)); for (ConsumerRecord<String, String> record : records) System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value()); }
还是不行 。算了不搞了 搞了3-4天了 搞storm kafka整合和spark去了
你好,请问这个问题解决了吗?我现在也遇到这种问题,可以用命令kafka-console-consumer消费,用Java代码就无法消费的问题,配置跟你这一样,我的是kafka2.1.0
你的kafka和代码在同一台机器吗?如果没有要配置listener。
你的答案