Kafka生产者中的元数据请求

时间:2019-06-27 15:13:47

标签: apache-kafka kafka-producer-api

Kafka生产者将发出多少个元数据请求?每个消息一个,每个批次一个,或者每个分区一个?

Kafka将如何发送确认函以进行生产?一次一个或一个完整的列表,还是每个领导者的列表?

2 个答案:

答案 0 :(得分:0)

  

Kafka生产者将发出多少个元数据请求?每个消息一个,每个批次一个,或者每个分区一个?

通常每个经纪人一个,以找出分区负责人。 如果整个发送过程花费大量时间并且生产者端的元数据过期(该属性称为metadata.timeout.ms左右),可能会更多。

  

Kafka将如何发送确认函以进行生产?一次一个或一个完整的列表,还是每个领导者的列表?

产品请求仅发送给领导者。 由于它们包含批次记录,因此每批次您将获得ProduceResponse

答案 1 :(得分:0)

生产者第一次发出元数据请求是当它连接到您在客户端配置中设置的引导服务器时。当然,它可以是一个或多个代理,但不一定是集群中的所有代理(因此,元数据请求并非针对每个代理)。通过这种方式,生产者可以获取有关其要发送消息的主题的信息。 在其生命周期内,当它接收到针对其正在写入的分区的代理领导者连接错误时,可以执行更多的元数据请求,在这种情况下,它需要知道哪个代理是与其连接的新领导者(如果尚未连接)其他主题)并开始发送。