我建议配置 StandbyTasks 通过参数 num.standby.replicas=1 (默认是 0 )。这应该有助于显着减少再平衡时间。
StandbyTasks
num.standby.replicas=1
0
此外,我建议将您的应用程序升级到Kafka 0.11。注意,Streams API 0.11向后兼容0.10.1和0.10.2代理,因此,您无需为此升级代理。重新平衡行为在0.11大幅提升,并将在即将发布的1.0版本中得到进一步改善(参见 https://cwiki.apache.org/confluence/display/KAFKA/KIP-167%3A+Add+interface+for+the+state+store+restoration+process )因此,将应用程序升级到最新版本始终是重新平衡的改进。
根据我的经验, 第一 考虑到您的工作量,您的max.poll.records太小:每小时消耗/生产的记录数量很少。
因此,如果max.poll.records太小,则说1,那么重新平衡需要很长时间。我不知道原因。
第二,确保输入主题的输入主题的分区数量是一致的。 例如如果APP-1有两个输入主题A和B.如果A有4个分区,B有2个,那么重新平衡需要很长时间。但是,如果A和B都有4个分区事件,则某些分区处于空闲状态,那么重新平衡时间就很好。 希望能帮助到你