首页 > 解决方案 > 在附加新主题的消费者之前,我在 apache kafka 中创建新主题并生成消息

问题描述

在附加新主题的消费者之前,我创建新主题并在 apache kafka 中生成第一条消息。然后附加新主题的消费者,但无法消费第一条消息。为什么..?

在这种情况下,已经 log-end offset=1,commited offset=1,lag=0。

“commited offset=1”不是意味着它已经被消费了吗?我的问题是为什么它已经被消费了。让我知道我是否有什么问题。

这是我的测试用例。

# create new topic 
$ kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic NEW_TOPIC_NAME

# produce a first message
$ kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic NEW_TOPIC_NAME
  > send a first message

# then execute consumer
$ kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic NEW_TOPIC_NAME
  >   # no consume a first message

但是在附加了新主题的消费者之后,我会产生第二条消息然后正常消费。

标签: apache-kafkakafka-consumer-api

解决方案


默认情况下,kafka-console-consumer从主题的末尾开始。

如果你想消费之前产生的消息,你可以设置--from-beginning例如:

kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 
  --topic NEW_TOPIC_NAME --from-beginning

推荐阅读