kafka使用官网的java代码 生产者正常使用,消费者接收不到消息

w 发表于: 2019-05-16   最后更新时间: 2019-06-29  

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、会一直显示为空

搞了几天了 也不报错也不接受信息 求救



您需要解锁本帖隐藏内容请: 点击这里
本帖隐藏的内容





发表于: 3月前   最后更新时间: 1月前   游览量:471
上一条: kafka前段时间没有问题,这两天总是报错
下一条: 生产者在生产消息的报错

  • 你好,请问这个问题解决了吗?我现在也遇到这种问题,可以用命令kafka-console-consumer消费,用Java代码就无法消费的问题,配置跟你这一样,我的是kafka2.1.0

    看着没问题,现在找到原因了吗?

    • 没有。。。也没报错 感觉是这里问题 你们都是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());
           }
          

            订阅主题了吗?

            订阅主题了吗?

            第一次写markdown格式 不是很会 见谅。。。