Apache kafka 卡夫卡消费API工作不正常
我是新来卡夫卡的。我开始做卡夫卡我面临以下问题请帮助我解决这一个提前感谢。 首先,我写的生产者API,它是工作良好,但当做消费者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;
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();
}
}
}
您是否为该主题生成了一些消息?似乎您的主题没有消息。多谢。现在它正在工作。以前我犯了一个小错误。