我看到了当前实例未订阅的主题的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个主题的元数据,但这些主题存在,只是这些主题的消费者没有运行。
答案 0 :(得分: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是代理在主题或分区不存在时准确返回的错误。这是卡夫卡客户认为可以追溯的错误。
如果您认为该主题存在,请检查两次。 也可能是主题存在但生产者或消费者直接针对现有主题的不存在分区的情况。