Java面试题

题目

消费者故障,出现活锁问题如何解决?

答案

kafka 消费者正常情况下是订阅一个 topic 并且能够 poll 消息。该消费者会占用一个分区,同时需要定时向 zk 发送心跳监测,以证明自己活着。当消费者占用一个分区后,且能够正常发送心跳,但是不 poll 消息了,不再进行消息处理了,这种情况下就出现了活锁。

kafka 这边处理的时候会配置 max.poll.interval.ms 活跃监测机制。如果客户端调用 poll 的频率大于最大间隔,就会将当前客户端连接断开,让其它的消费者过来消费。