从kafka主题获取消息

时间:2020-02-19 16:51:46

标签: apache-kafka apache-kafka-connect

我有一个用于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更改为新内容。我再次获得数据。请说明

2 个答案:

答案 0 :(得分:0)

我成功获取JSON数据

您实际上正在反序列化Avro(显示为JSON)

我删除了kafka日志(删除了所有主题)

听起来像您没有删除任何Zookeeper数据,所以主题元数据仍然存在。

答案 1 :(得分:0)

我认为可能有两种情况。

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

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

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