Spring Kafka如何在application.yml中配置max.incremental.fetch.session.cache.slots
问题说明
运行Spring集成Kafka的服务时,持续收到如下报错:
[Consumer clientId=client-valid-0, groupId=valid-group] Node 11103 was unable to process the fetch request with (sessionId=1130053497, epoch=425): FETCH_SESSION_ID_NOT_FOUND.
该报错由Kafka增量拉取会话缓存不匹配导致,可通过配置max.incremental.fetch.session.cache.slots参数解决。
application.yml配置方案
直接在项目的application.yml中添加如下配置即可:
spring: kafka: consumer: # 此处保留你原有其他consumer配置,例如group-id、auto-offset-reset等 properties: max.incremental.fetch.session.cache.slots: 0
配置说明
max.incremental.fetch.session.cache.slots是Kafka原生消费者参数,必须放在spring.kafka.consumer.properties层级下才能被Spring Kafka正确识别加载- 设为
0表示完全关闭消费者侧的增量拉取会话特性,每次拉取请求都会传递全量分区信息,不再依赖Broker端缓存的会话ID,从根本上避免该报错 - 若不需要完全关闭该特性,也可根据你的消费者集群规模将值调大到2000~10000区间,Kafka默认值为1000,仅适合小规模场景使用
配置验证
服务启动后,在消费者初始化的INFO级日志中搜索max.incremental.fetch.session.cache.slots,可看到对应的配置值和你设置的一致,即代表配置生效。
内容的提问来源于stack exchange,提问作者Jean Jacques Barros
相关产品推荐
相关产品推荐

