直到最近,我认为制作人,领导者选举和元数据的过程是这样的:
然而,我观察到的是生产者在耗尽重试之后阻塞,并且在元数据“自动”刷新之前没有做任何事情。此刷新将基于此属性中配置的时间(来自Apache的Kafka文档):
metadata.max.age.ms :我们强制刷新元数据的时间段(以毫秒为单位),即使我们没有看到任何分区领导层更改以主动发现任何新的代理或分区。
基本上,如果生产者碰巧在元数据自身到期的时间附近阻塞,那么生产将很快恢复。但是,如果生成器在最后一次自动刷新发生后几秒钟阻塞,考虑到该属性的默认值为5分钟,生产者将在几乎所有时间被阻止。
我有什么遗漏或没有正确理解吗?
感谢。
答案 0 :(得分:0)
我也经历过同样的事情。我唯一理解的是你必须小心metadata.max.age.ms
属性。如果您的数据处理非常重要,并且您不希望因为没有发生领导者选择而丢失您的消息,请尽量保持metadata.max.age.ms property
尽可能低。但它会增加元数据更新开销。