0

我看到我当前实例未订阅的主题的 kafka 警告。我们使用相同的 kafka 代理,每个开发人员都有自己的主题。但是,我们都使用在属性文件中指定的相同默认 groupID/clientid。

2017-06-27T11:48:35.20-0400 [APP/PROC/WEB/0]OUT 2017-06-27 15:48:35,195 WARN [NetworkClient] - [kafka-coordinator-heartbeat-thread | ingestion-matching-kafka-consumer-group] - Error while fetching metadata with correlation id 154274 : {to-process-yi=UNKNOWN_TOPIC_OR_PARTITION, to-process-shawn=UNKNOWN_TOPIC_OR_PARTITION}
2017-06-27T11:48:35.34-0400 [APP/PROC/WEB/0]OUT 2017-06-27 15:48:35,339 INFO [PdfXmlMatcherTask] - [scheduler-1] -
2017-06-27T11:48:35.34-0400 [APP/PROC/WEB/0]OUT 2017-06-27 15:48:35,340 INFO [PdfXmlMatcherTask] - [scheduler-1] - Checking messages...
2017-06-27T11:48:35.41-0400 [APP/PROC/WEB/0]OUT 2017-06-27 15:48:35,412 WARN [NetworkClient] - [scheduler-1] - Error while fetching metadata with correlation id 154275 : {to-process-yi=UNKNOWN_TOPIC_OR_PARTITION, to-process-shawn=UNKNOWN_TOPIC_OR_PARTITION}

这是预期的吗?即使每个人都有自己的主题,我是否需要单独的组/客户 ID?

其次,我不太确定这个错误意味着什么:心跳协调器线程无法获取 2 个主题的元数据,但这些主题存在,只是这些主题的消费者没有运行。

4

1 回答 1

1

client.id - 对跟踪请求很有用,每个客户端应该是唯一的(尽管不是强制性的)。

groupid - 这仅适用于消费者。根据您的简短描述,您可能希望每个消费者都在自己的组中。

我建议您阅读 ConsumerGroups 的用途:“Kafka 通过在消费者组之间分配分区来扩展主题消费,消费者组是一组共享公共组标识符的消费者。” https://www.confluent.io/blog/tutorial-getting -started-with-the-new-apache-kafka-0-9-consumer-client/

UNKNOWN_TOPIC_OR_PARTITION 是当主题或分区不存在时代理返回的错误。Kafka 客户端将其视为可重试的错误。

如果您认为该主题存在,请检查两次。也可能存在主题存在但生产者或消费者直接针对现有主题的不存在分区的情况。

于 2017-06-28T11:44:24.853 回答