【发布时间】:2021-08-18 17:40:38
【问题描述】:
我知道 kafka producer 会批量处理消息。每个批次都属于一个特定的分区。
我的问题是
- 生产者是否知道每个批次属于哪个分区?
- 生产者是否知道每个分区的broker地址?
- 生产者发送请求时,每个请求是包含多个批次还是仅包含一个批次属于目标分区。
- 如果生产者发送多个批次,接收 kafka 服务器是否将批次重新传输到目标分区。
【问题讨论】:
标签: apache-kafka
我知道 kafka producer 会批量处理消息。每个批次都属于一个特定的分区。
我的问题是
【问题讨论】:
标签: apache-kafka
生产者将目标分区分配给每条记录(如果应用程序未提供),所以是的,他们知道批次的分区。
启动时,生产者将检索集群元数据。这包含分区的当前领导者。生产者还会定期刷新元数据,以便他们能够发现更新或新分区。
一个生产请求可以包含多个分区的批次。您可以看到protocol 中的每个分区都有一个RECORDS 字段。
生产者直接将记录发送到作为分区领导者的代理。
【讨论】: