Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 卡夫卡消费API工作不正常_Apache Kafka_Kafka Consumer Api - Fatal编程技术网

Apache kafka 卡夫卡消费API工作不正常

Apache kafka 卡夫卡消费API工作不正常,apache-kafka,kafka-consumer-api,Apache Kafka,Kafka Consumer Api,我是新来卡夫卡的。我开始做卡夫卡我面临以下问题请帮助我解决这一个提前感谢。 首先,我写的生产者API,它是工作良好,但当做消费者API消息不显示 我的代码如下: import java.util.Arrays; import java.util.Properties; import org.apache.kafka.clients.consumer.KafkaConsumer; import org.apache.kafka.clients.consumer.ConsumerRecords;

我是新来卡夫卡的。我开始做卡夫卡我面临以下问题请帮助我解决这一个提前感谢。 首先,我写的生产者API,它是工作良好,但当做消费者API消息不显示

我的代码如下:

import java.util.Arrays;
import java.util.Properties;

import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.ConsumerRecord;


public class ConsumerGroup {
    public static void main(String[] args) throws Exception {

        String topic = "Hello-Kafka";
        String group = "myGroup";
        Properties props = new Properties();
        props.put("bootstrap.servers", "XXX.XX.XX.XX:9092");
        props.put("group.id", group);
        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);
        try {

            consumer.subscribe(Arrays.asList(topic));
            System.out.println("Subscribed to topic " + topic);


            ConsumerRecords<String, String> records = consumer.poll(100);

            System.out.println("records ::" + records);
            System.out.println(records.toString());
            for (ConsumerRecord<String, String> record : records) {
                System.out.println("Record::" + record.offset());
                System.out.println(record.key());
                System.out.println(record.value());
            }
            consumer.commitSync();

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            consumer.commitSync();
            consumer.close();
        }
    }
}
导入java.util.array;
导入java.util.Properties;
导入org.apache.kafka.clients.consumer.KafkaConsumer;
导入org.apache.kafka.clients.consumer.ConsumerRecords;
导入org.apache.kafka.clients.consumer.ConsumerRecord;
公共类ConsumerGroup{
公共静态void main(字符串[]args)引发异常{
String topic=“你好,卡夫卡”;
String group=“myGroup”;
Properties props=新属性();
道具放置(“bootstrap.servers”,“XXX.XX.XX.XX:9092”);
道具放置(“group.id”,group);
put(“key.deserializer”、“org.apache.kafka.common.serialization.StringDeserializer”);
put(“value.deserializer”、“org.apache.kafka.common.serialization.StringDeserializer”);
卡夫卡消费者=新卡夫卡消费者(道具);
试一试{
consumer.subscribe(Arrays.asList(topic));
System.out.println(“订阅主题”+主题);
ConsumerRecords记录=consumer.poll(100);
System.out.println(“记录::”+记录);
System.out.println(records.toString());
对于(消费者记录:记录){
System.out.println(“记录::”+Record.offset());
System.out.println(record.key());
System.out.println(record.value());
}
consumer.commitSync();
}捕获(例外e){
e、 printStackTrace();
}最后{
consumer.commitSync();
consumer.close();
}
}
}
答复:

订阅主题“你好,卡夫卡” 记录::org.apache.kafka.clients.consumer。ConsumerRecords@76b0bfab org.apache.kafka.clients.consumer。ConsumerRecords@76b0bfab

此处不打印偏移量、键、值 控件未到达(消费者记录:记录){
对于循环本身,请帮助我。

您正在尝试打印空记录,因此只有记录。toString()正在您的代码中打印,它本质上是类的名称。
我对您的代码进行了一些更改,并使其正常工作。请查看这是否有帮助。

public class ConsumerGroup {
    public static void main(String[] args) throws Exception {

        String topic = "Hello-Kafka";
        String group = "myGroup";
        Properties props = new Properties();
        props.put("bootstrap.servers", "xx.xx.xx.xx:9092");
        props.put("group.id", group);
        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);
        try {

            consumer.subscribe(Arrays.asList(topic));
            System.out.println("Subscribed to topic " + topic);

            while(true){
                ConsumerRecords<String, String> records = consumer.poll(1000);
                if(records.isEmpty()){

                }
                else{
                System.out.println("records ::" + records);
                System.out.println(records.toString());
                for (ConsumerRecord<String, String> record : records) {
                    System.out.println("Record::" + record.offset());
                    System.out.println(record.key());
                    System.out.println(record.value());
                }
                consumer.commitSync();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            consumer.commitSync();
            consumer.close();
        }
    }
}
公共类ConsumerGroup{
公共静态void main(字符串[]args)引发异常{
String topic=“你好,卡夫卡”;
String group=“myGroup”;
Properties props=新属性();
道具放置(“bootstrap.servers”,“xx.xx.xx.xx:9092”);
道具放置(“group.id”,group);
put(“key.deserializer”、“org.apache.kafka.common.serialization.StringDeserializer”);
put(“value.deserializer”、“org.apache.kafka.common.serialization.StringDeserializer”);
卡夫卡消费者=新卡夫卡消费者(道具);
试一试{
consumer.subscribe(Arrays.asList(topic));
System.out.println(“订阅主题”+主题);
while(true){
ConsumerRecords记录=consumer.poll(1000);
if(records.isEmpty()){
}
否则{
System.out.println(“记录::”+记录);
System.out.println(records.toString());
对于(消费者记录:记录){
System.out.println(“记录::”+Record.offset());
System.out.println(record.key());
System.out.println(record.value());
}
consumer.commitSync();
}
}
}捕获(例外e){
e、 printStackTrace();
}最后{
consumer.commitSync();
consumer.close();
}
}
}

您是否为该主题生成了一些消息?似乎您的主题没有消息。多谢。现在它正在工作。以前我犯了一个小错误。