首页 > 解决方案 > 从kafka主题获取消息

问题描述

我有一个用于 JDBC Kafka 连接的属性文件。在哪里topic.prefix=test-mysql-jdbc-

据我所知,当我们运行独立连接器时 -

$ /usr/bin/connect-standalone /etc/schema-registry/connect-avro-standalone.properties/etc/kafka-connect-jdbc/source-quickstart-mysql.properties

创建了一个名为的主题test-mysql-jdbc-

现在我创建消费者

$ /usr/bin/kafka-avro-console-consumer -–topic test-mysql-jdbc-students --zookeeper localhost:2181 --from-beginning

我成功地获得了 JSON 数据..

现在我所做的是我删除了 kafka 日志(删除了所有主题),但是当我重复相同的过程时,创建了同名的主题,但我没有在消费者中获得任何数据。如果我将其更改topic.prefix为新的。我再次得到数据。请解释

标签: apache-kafkaapache-kafka-connect

解决方案


我认为可能有两种情况。

  1. 当您删除 Kafka 日志时,您正在删除控制和服务器日志而不是数据日志。
  2. 另一件事,删除 kafka 日志并不会真正删除 Kafka 主题。您必须./kafka-topics.sh --zookeeper <IP>:<port> --delete --topic <topic_name>与 server.properties 一起使用delete.topic.enable=true

使用--describe选项验证。您可能会看到分配给 -1 的分区领导者或标记为删除的主题。

错误的主题元数据将不允许适当的偏移管理并阻碍主题消费。


推荐阅读