from kafka import KafkaConsumer consumer = KafkaConsumer( '111', bootstrap_servers=['localhost:9092'], group_id='111', auto_offset_reset='latest' ) for message in consumer: print(message.value.decode()) 为什么我执行这段代码后 执行/opt/nsfocus/espc/deps/kafka/bin/kafka-topics.sh --zookeeper localhost:2181 --list 多了个111这个topic
时间: 2023-12-10 19:40:56 浏览: 45
这是因为当您使用 KafkaConsumer 订阅一个不存在的 topic 时,Kafka 会自动创建该 topic。在您的代码中,您订阅了名为 '111' 的 topic,而当您运行代码时,Kafka 发现没有名为 '111' 的 topic,因此它会自动创建一个名为 '111' 的 topic。
如果您不希望自动创建 topic,您可以在创建 KafkaConsumer 时添加参数 `enable_auto_topic_creation=False`,如下所示:
```
from kafka import KafkaConsumer
consumer = KafkaConsumer(
'111',
bootstrap_servers=['localhost:9092'],
group_id='111',
auto_offset_reset='latest',
enable_auto_topic_creation=False
)
for message in consumer:
print(message.value.decode())
```
这样,当您尝试订阅一个不存在的 topic 时,Kafka 不会自动创建该 topic,而会抛出一个错误。