首页 > 解决方案 > Kafka客户端有时会无意义地发送元数据请求吗?

问题描述

条件:

问题:
当消息发送到 时myTopic,Kafka 客户端收到 UNKNOWN_TOPIC_OR_PARTITION 错误。于是它开始疯狂地更新元数据,永不停息。合理吗?

@RequestMapping("send")
public void hello() {
    template.send("myTopic", "foo1")
            .addCallback(new ListenableFutureCallback<SendResult<String, String>>() {
                @Override
                public void onFailure(Throwable ex) {
                    log.error("send error",ex);
                }

                @Override
                public void onSuccess(SendResult<String, String> result) {
                    log.info("send success={}",result);
                }
            });
}

卡夫卡生产者日志:

17:40:09.408 [kafka-producer-network-thread | producer-1] WARN  o.apache.kafka.clients.NetworkClient - [Producer clientId=producer-1] Error while fetching metadata with correlation id 9640 : {myTopic3=UNKNOWN_TOPIC_OR_PARTITION}
17:40:09.408 [kafka-producer-network-thread | producer-1] DEBUG org.apache.kafka.clients.Metadata - [Producer clientId=producer-1] Requesting metadata update for topic myTopic3 due to error UNKNOWN_TOPIC_OR_PARTITION
17:40:09.408 [kafka-producer-network-thread | producer-1] DEBUG org.apache.kafka.clients.Metadata - [Producer clientId=producer-1] Updated cluster metadata updateVersion 9636 to MetadataCache{cluster=Cluster(id = N7hvdHK5TK-JgLv8wVpZuA, nodes = [localhost:9092 (id: 0 rack: null)], partitions = [], controller = localhost:9092 (id: 0 rack: null))}
17:40:09.512 [kafka-producer-network-thread | producer-1] DEBUG o.apache.kafka.clients.NetworkClient - [Producer clientId=producer-1] Sending metadata request MetadataRequestData(topics=[MetadataRequestTopic(name='myTopic3')], allowAutoTopicCreation=true, includeClusterAuthorizedOperations=false, includeTopicAuthorizedOperations=false) to node localhost:9092 (id: 0 rack: null)
17:40:09.513 [kafka-producer-network-thread | producer-1] WARN  o.apache.kafka.clients.NetworkClient - [Producer clientId=producer-1] Error while fetching metadata with correlation id 9641 : {myTopic3=UNKNOWN_TOPIC_OR_PARTITION}
17:40:09.513 [kafka-producer-network-thread | producer-1] DEBUG org.apache.kafka.clients.Metadata - [Producer clientId=producer-1] Requesting metadata update for topic myTopic3 due to error UNKNOWN_TOPIC_OR_PARTITION
17:40:09.513 [kafka-producer-network-thread | producer-1] DEBUG org.apache.kafka.clients.Metadata - [Producer clientId=producer-1] Updated cluster metadata updateVersion 9637 to MetadataCache{cluster=Cluster(id = N7hvdHK5TK-JgLv8wVpZuA, nodes = [localhost:9092 (id: 0 rack: null)], partitions = [], controller = localhost:9092 (id: 0 rack: null))}
...
...

标签: javaapache-kafkaspring-kafka

解决方案


推荐阅读