Kafka 的消息消费采用 Pull 模式。
在 Kafka 中,消费者负责从 Broker 拉取消息,而不是由 Broker 主动推送消息给消费者。这是因为 Pull 模式具有更好的扩展性和灵活性,可以根据消费者的处理能力和吞吐量来自主控制消息的获取。
具体来说,消费者可以通过调用 poll() 方法来主动从 Kafka 集群中拉取消息。消费者可以定义一个拉取的时间间隔,定期调用 poll() 方法以获取一批消息,并按照需要进行处理。
使用 Pull 模式的好处是:
1. 灵活性:
消费者可以根据自身的处理能力和需求来决定拉取消息的速率。
消费者可以根据现有的消息处理情况,动态调整拉取的频率和批量大小。
2. 削峰填谷:
Pull 模式允许消费者根据自身情况,根据需求来拉取消息,从而实现削峰填谷的效果。
如果消费者处理能力不足,可以降低拉取的频率,防止消息堆积。
3. 消息复读:
Pull 模式使得消费者可以重复拉取同一批消息。
消费者可以通过提交偏移量来记录已经处理完的消息,确保不会错过任何消息。
需要注意的是,尽管 Kafka 的消息消费采用 Pull 模式,但它的消息发布(生产)部分是通过 Push 模式实现的。生产者将消息发送到 Broker 后,Broker 会推送给订阅该 Topic 的消费者。而消费者则需要通过拉取方式来获取消息。这种组合的方式使 Kafka 具有灵活、高效的消息处理能力。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/danci_/article/details/135725653