用例场景: 我试图确保,万一生产者为了获取元数据而连接的代理(引导程序之一)不可用,那么在阻止它
max.block.ms
之后,它应该重试(至少 3 次重试,或者直到让我们假设已达到 metadata.fetch.timeout.ms
- 此属性不再存在),节点列表中还有其他可用代理。
retries
和 retry.backoff.ms
等属性适用于发送者线程。
有人可以帮助我为我的用例场景配置 Kafka 属性吗?
我相信在这种情况下有帮助的属性是
metadata.max.age.ms
,request.timeout.ms
您可以尝试以下设置,以确保生产者客户端在与引导代理的初始连接失败时重试连接到列表中的不同代理
bootstrap.servers=broker1:9092,broker2:9092,broker3:9092
metadata.max.age.ms=5000
retries=3
retry.backoff.ms=1000
request.timeout.ms=30000
connections.max.idle.ms=10000
我不相信 Kafka 有特定的属性来配置元数据获取的重试次数。
metadata.max.age.ms
和 connections.max.idle.ms
属性间接影响此行为。