用例是我的用户偶尔执行一些需要很长时间的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持续时间高峰的情况。
当一个使用者花费异常长的时间来处理一条消息时,我可以使用什么设置和代码或体系结构来使系统响应(在实际上阻止了使用者时重新平衡)而不会触发重新平衡?
最佳答案
我知道的唯一解决方案是调整这两个属性(或减少侦听器花费的时间)。