jaf*_*att 1 apache-kafka kafka-consumer-api spring-kafka
我的项目通过为每个租户和通配符消费者使用单独的主题来在 Kafka 级别实现多租户,即发布到主题“message.tenant1”或“message.tenant99”并从主题“message.*”消费
这工作正常,直到我们想要动态添加新租户,即添加“message.tenant100”主题。在重新启动之前,通配符使用者不会看到新主题。
有没有办法让通配符消费者在不重启整个应用程序的情况下看到新主题?
我们正在使用 Spring,但如果无法通过 Spring 获得解决方案,那么我们可以使用其他方法。
编辑:事实证明这确实有效,但在重新平衡之前有一个粗略的延迟 5 分钟。5 分钟对于我们的生产来说可能太长了。我尝试将 'leader.imbalance.check.interval.seconds' 设置为较低的值,但这似乎没有任何效果。
我如何配置或告诉 Kafka 尽快重新平衡?我希望重新平衡是一项昂贵的操作,而不是您想要经常做的操作。
有一个消费者属性,metadata.max.age.ms可以强制消费者刷新他们的元数据。默认值为 300000,即 5 分钟。您可以将其更改为每 30 秒左右,以缩短识别新主题的延迟。
来自 Kafka 官方文档,位于New Consumer Configs:
metadata.max.age.ms- 即使我们没有看到任何分区领导更改以主动发现任何新代理或分区,我们也会强制刷新元数据的时间段(以毫秒为单位)。
https://kafka.apache.org/documentation/#newconsumerconfigs
| 归档时间: |
|
| 查看次数: |
1158 次 |
| 最近记录: |