关于Kafka幂等生产者序列异常导致生产阻塞的技术问询
Kafka幂等生产者序列故障后的行为解析
是否会无限阻塞?
不会无限阻塞。Kafka幂等生产者遇到序列号2的生产错误时,会按照配置的重试策略(比如retries参数控制重试次数、retry.backoff.ms控制重试间隔)尝试恢复。如果是无法恢复的错误(比如消息大小超过Broker限制、权限不足),重试耗尽后会直接抛出异常终止当前生产流程,不会一直卡住。
序列号3、4的事件是否永远无法被消费?
在当前这个生产者会话里,是的,这些事件永远无法被消费。因为幂等生产者的核心约束是:针对同一个<主题分区, 生产者ID>的消息,序列号必须严格连续递增。只要中间的序列号2未成功完成ACK,后续的3、4消息根本无法被生产者发送到Broker——生产者会直接拦截这些请求,不会提交,自然也就不会进入消费环节。只有当生产者重启并生成新的生产者ID后,才能重新开始发送消息(此时序列号会从0或指定值重新计数,但这属于新的会话了)。
内容的提问来源于stack exchange,提问作者Dumb_Pegasus
相关产品推荐
相关产品推荐

