美文网首页
consumer 是推还是拉?

consumer 是推还是拉?

作者: 嘘寒问暖 | 来源:发表于2022-06-01 23:26 被阅读0次

Kafka最初考虑的问题是,customer 应该从 brokes 拉取消息还是 brokers 将消息推送到 consumer,也就是 pull 还 push。在这方面,Kafka 遵循了一种大部分消息系统共同的传统的设计:producer 将消息推送到 broker,consumer 从broker 拉取消息。一些消息系统比如 Scribe 和 Apache Flume 采用了 push 模式,将消息推送到下游的 consumer。

这样做有好处也有坏处:由 broker 决定消息推送的速率,对于不同消费速率的 consumer 就不太好处理了。消息系统都致力于让 consumer 以最大的速率最快速的消费消息,但不幸的是,push 模式下,当broker 推送的速率远大于 consumer 消费的速率时,consumer 恐怕就要崩溃了。最终 Kafka 还是选取了传统的 pull 模式。

Pull 模式的另外一个好处是 consumer 可以自主决定是否批量的从 broker 拉取数据 。Push 模式必须在不知道下游 consumer 消费能力和消费策略的情况下决定是立即推送每条消息还是缓存之后批量推送。如果为了避免 consumer 崩溃而采用较低的推送速率,将可能导致一次只推送较少的消息而造成浪费。Pull 模式下,consumer 就可以根据自己的消费能力去决定这些策略。

Pull 有个缺点是,如果 broker 没有可供消费的消息,将导致 consumer 不断在循环中轮询,直到新消息到 t 达。为了避免这点,Kafka 有个参数可以让 consumer阻塞知道新消息到达(当然也可以阻塞知道消息的数量达到某个特定的量这样就可以批量发送)。

相关文章

  • consumer 是推还是拉?

    Kafka最初考虑的问题是,customer 应该从 brokes 拉取消息还是 brokers 将消息推送到 c...

  • Kafka-消费及分区

    消费方式: consumer次啊用pull(拉)模式从broker中读取数据。 push(推)模式很难使用消...

  • Kafka消费者详解

    消费方式 consumer采用pull(拉)模式从broker中读取数据。push(推)模式很难适应消费速率不同的...

  • 消费者消费方式

    consumer采用pull(拉)模式从broker中读取数据。push(推)模式很难适应消费速率不同的消费者,因...

  • Kafka消费者

    consumer 采用 pull(拉)模式从 broker 中读取数据。 为了防止没有数据时consumer还在请...

  • 教师工作是需要推还是需要拉

    如今的教师工作,离想象相差甚远。主要表现为想的教师工作图景是日复一日站在讲台就好,但如今的教育生活,除了这些场景还...

  • kafka使用经验

    当consumer重平衡时,可能导致重复消费,如:consumer1拉取了100数据,当消费过程中服务停掉,就会重...

  • Kafka-消费者概述

    一、消费方式 1.pull( 拉)模式 consumer采用从broker中主动拉取数据。 Kafka采用这种方式...

  • 拉你一把的人

    拉和推有什么区别?拉是往里,推是向外。 拉你的人是把你拉向自己,是自己人,退你的人是把你向外推,让你远离他。 从这...

  • kafka系列之(3)——Coordinator与offset管

    1、Consumer与Consumer Group consumer group是kafka提供的可扩展且具有容...

网友评论

      本文标题:consumer 是推还是拉?

      本文链接:https://www.haomeiwen.com/subject/flpfmrtx.html