【发布时间】:2018-12-11 22:26:01
【问题描述】:
用例是我的消费者偶尔会执行一些需要很长时间的 I/O 工作。我正在使用 Spring 2.0.1 和 <spring-cloud.version>Elmhurst.RELEASE</spring-cloud.version</spring-cloud.version>
最初的解决方案是将max.poll.interval.ms 设置为高于默认值,将max.poll.records 设置为低于默认值。这确实减少了重新平衡的数量,但仍然存在 I/O 操作花费的时间超过max.poll.interval.ms 的情况,并且重新平衡的成本很高,会产生相当大的延迟。如果没有重新平衡,处理将及时完成,即使考虑到 I/O 持续时间达到峰值的情况。
我可以使用哪些设置和代码或架构使系统既响应(当消费者实际被阻止时重新平衡)而不触发重新平衡当一个消费者花费异常长时间来处理消息时?
【问题讨论】:
标签: java apache-kafka spring-cloud-stream spring-kafka