我可以在java api中编写Kafka consumer来使用python producer生成的消息吗

我可以在java api中编写Kafka consumer来使用python producer生成的消息吗,java,python,apache-kafka,kafka-consumer-api,Java,Python,Apache Kafka,Kafka Consumer Api,我有用python编写的生产者代码,可以从twitter获取推文。我创建了一个名为twitter_test的主题 当我使用kafka console consumer时,我可以看到该主题中有很多推文 但当我试图从java消费者那里使用这些消息时,它并没有获取任何数据 下面是我的消费代码 import java.io.IOException; import java.util.Arrays; import java.util.Collections; import java.util.Proper

我有用python编写的生产者代码,可以从twitter获取推文。我创建了一个名为twitter_test的主题

当我使用kafka console consumer时,我可以看到该主题中有很多推文

但当我试图从java消费者那里使用这些消息时,它并没有获取任何数据

下面是我的消费代码

import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.Properties;

import org.apache.avro.Schema;
import org.apache.avro.generic.GenericData;
import org.apache.avro.generic.GenericRecord;
import org.apache.avro.io.BinaryDecoder;
import org.apache.avro.io.DatumReader;
import org.apache.avro.io.DecoderFactory;
import org.apache.avro.specific.SpecificDatumReader;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;

public class avro_twitter {
 public static void main(String[] args) throws IOException {
     Properties props = new Properties();
     props.put("bootstrap.servers", "10.16.111.12:9092");
     props.put("group.id", "groupid");

     props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
     props.put("value.deserializer", "io.confluent.kafka.serializers.KafkaAvroDeserializer");
     props.put("auto.offset.reset", "earliest");
     props.put("schema.registry.url", "10.16.111.12:8081"); 
     String topic = "twitter_test";

     KafkaConsumer<String, GenericRecord> consumer = new KafkaConsumer<String, GenericRecord>(props);
     consumer.subscribe(Collections.singletonList(topic));
     System.out.println("Reading topic:" + topic);


     while (true) { 

         ConsumerRecords<String, GenericRecord> records = consumer.poll(1000); 
         for (ConsumerRecord<String, GenericRecord> record: records) {
             String authid=record.value().get(1).toString();
             String screen_name=record.value().get(1).toString();
             String description=record.value().get(2).toString();     


             System.out.println(authid);

         }   
         }
     }
import java.io.IOException;
导入java.util.array;
导入java.util.Collections;
导入java.util.Properties;
导入org.apache.avro.Schema;
导入org.apache.avro.generic.GenericData;
导入org.apache.avro.generic.GenericRecord;
导入org.apache.avro.io.BinaryDecoder;
导入org.apache.avro.io.DatumReader;
导入org.apache.avro.io.DecoderFactory;
导入org.apache.avro.specific.SpecificDatumReader;
导入org.apache.kafka.clients.consumer.ConsumerRecord;
导入org.apache.kafka.clients.consumer.ConsumerRecords;
导入org.apache.kafka.clients.consumer.KafkaConsumer;
导入org.apache.kafka.clients.producer.KafkaProducer;
导入org.apache.kafka.clients.producer.producer;
导入org.apache.kafka.clients.producer.ProducerRecord;
公共类avro_twitter{
公共静态void main(字符串[]args)引发IOException{
Properties props=新属性();
道具放置(“bootstrap.servers”,“10.16.111.12:9092”);
props.put(“group.id”、“groupid”);
put(“key.deserializer”、“org.apache.kafka.common.serialization.StringDeserializer”);
put(“value.deserializer”、“io.confluent.kafka.serializer.KafkaAvroDeserializer”);
道具放置(“自动偏移重置”、“最早”);
props.put(“schema.registry.url”,“10.16.111.12:8081”);
String topic=“twitter\u测试”;
卡夫卡消费者=新卡夫卡消费者(道具);
consumer.subscribe(Collections.singletonList(主题));
System.out.println(“阅读主题:+topic”);
虽然(正确){
ConsumerRecords记录=consumer.poll(1000);
对于(消费者记录:记录){
字符串authid=record.value().get(1.toString();
字符串screen_name=record.value().get(1.toString();
字符串描述=record.value().get(2.toString();
System.out.println(authid);
}   
}
}

非常感谢任何帮助

1.任何例外情况?2.您尝试过更改组id吗?3.您尝试过在没有Avro解码的情况下使用原始消息吗?请您也共享生产者代码吗?以下代码片段看起来至少有点奇怪:props.put(“group.id”,“groupid”);您是否在架构注册表中注册了avro架构?