【发布时间】:2019-11-09 15:47:10
【问题描述】:
Kafka 生产者会提出多少元数据请求?每个消息一个或每个批次一个或每个分区一个?
Kafka 将如何将确认发送给生产者?一次一个或一个完整的列表或每个领导者的列表?
【问题讨论】:
标签: apache-kafka kafka-producer-api
Kafka 生产者会提出多少元数据请求?每个消息一个或每个批次一个或每个分区一个?
Kafka 将如何将确认发送给生产者?一次一个或一个完整的列表或每个领导者的列表?
【问题讨论】:
标签: apache-kafka kafka-producer-api
生产者第一次发出元数据请求是在它连接到您在客户端配置中设置的引导服务器时。当然,它可以是一个或多个broker,但不一定是集群中的所有broker(因此元数据请求不是针对每个broker)。通过这种方式,生产者可以获得关于它想要发送消息的主题在哪里的信息。 在其生命周期中,当它收到连接到正在写入的分区的代理领导者的错误时,可以完成更多元数据请求,在这种情况下,它需要知道哪个代理是连接到它的新领导者(如果尚未连接其他主题)并开始发送。
【讨论】:
Kafka 生产者会提出多少元数据请求?每个消息一个或每个批次一个或每个分区一个?
通常每个代理一个,以找出分区领导者。
如果整个发送过程花费大量时间并且生产者端的元数据过期(该属性称为metadata.timeout.ms 左右),可能会更多。
Kafka 将如何将确认发送给生产者?一次一个或一个完整的列表或每个领导者的列表?
生产请求仅发送给领导者。
由于它们包含多批记录,因此每批您将获得一个ProduceResponse。
【讨论】: