我在多个分区上有一个主题,该主题的4个使用者都在同一个使用者组中。如果一个消费者暂停主题,其他三个消费者是否会暂停。如果有办法的话?如果是的话,反过来说,如果一个消费者取消了暂停,其他所有消费者都会取消暂停。
93ze6v8z1#
kafkaconsumer中的pause()和resume()操作不会在kafka代理的协议级别生成任何请求。调用pause(),只需将分配的分区设置为paused,并在本地将其标记为“不可获取”。kafka协议有一个从客户机到服务器请求获取记录的fetch请求(这是poll()方法中发生的事情)。当分配的分区被暂停时,它们被认为是“不可获取的”,因此不会发送获取请求。消费者和经纪人之间没有沟通;代理不知道您在consumer上调用了pause()。所以答案是否定的:即使pause()处于分区级别而不是主题级别,也不会暂停另一个使用者。
1条答案
按热度按时间93ze6v8z1#
kafkaconsumer中的pause()和resume()操作不会在kafka代理的协议级别生成任何请求。调用pause(),只需将分配的分区设置为paused,并在本地将其标记为“不可获取”。kafka协议有一个从客户机到服务器请求获取记录的fetch请求(这是poll()方法中发生的事情)。当分配的分区被暂停时,它们被认为是“不可获取的”,因此不会发送获取请求。消费者和经纪人之间没有沟通;代理不知道您在consumer上调用了pause()。所以答案是否定的:即使pause()处于分区级别而不是主题级别,也不会暂停另一个使用者。