Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 卡夫卡消费者是在poll()上旋转还是被经纪人的广播/信号吵醒?_Apache Kafka_Kafka Consumer Api - Fatal编程技术网

Apache kafka 卡夫卡消费者是在poll()上旋转还是被经纪人的广播/信号吵醒?

Apache kafka 卡夫卡消费者是在poll()上旋转还是被经纪人的广播/信号吵醒?,apache-kafka,kafka-consumer-api,Apache Kafka,Kafka Consumer Api,如果我在语句中poll()来自消费者,而在语句中为True:时,我看到poll()正在阻塞。如果消费者最新收到主题中的消息(offset=offset\u END),消费者是如何进行阻止的poll() 消费者默认值是否遵循一种发布/订阅心态,在这种心态下,它会睡觉,等待发布和来自代理的广播/信号 还是消费者在不断地旋转自己,检查话题 如果有必要的话,我正在使用汇合python客户端 谢谢 kafka使用者基本上是长轮询循环,由调用poll()的用户线程(异步)驱动 整个协议是请求-响应的,完全由

如果我在
语句中
poll()
来自
消费者
,而在
语句中为True:
时,我看到
poll()
正在阻塞。如果消费者最新收到主题中的消息(
offset=offset\u END
),消费者是如何进行阻止的
poll()

消费者默认值是否遵循一种发布/订阅心态,在这种心态下,它会睡觉,等待发布和来自代理的广播/信号

还是消费者在不断地旋转自己,检查话题

如果有必要的话,我正在使用汇合python客户端


谢谢

kafka使用者基本上是长轮询循环,由调用poll()的用户线程(异步)驱动

整个协议是请求-响应的,完全由客户机驱动。没有经纪人发起的“推送”形式


fetch.max.wait.ms控制任何单个代理在响应之前的等待时间(如果没有数据),而用户线程的阻塞由poll()的参数控制。

是的,您是对的,它是一个真正的条件,等待使用消息直到等待超时时间。 如果收到消息,它将立即返回,否则它将等待超时并返回空记录

Kafka Broker使用以下参数控制要发送给消费者的消息

  • fetch.min.bytes:代理将等待填充此数量的数据,然后再将响应发送给消费者客户端
  • fetch.wait.max.ms:代理将在向消费者客户端发送响应之前等待这段时间,除非它有足够的数据来填充响应(fetch.message.max.bytes)
  • 由于处理已使用的消息,调用下一个poll()可能需要很长时间。max.poll.interval.ms阻止不处理花费如此多的时间,并在max.poll.interval.ms内调用下一次轮询,否则消费者将离开组并触发重新平衡。 你可以得到更多的细节

  • max.poll.interval.ms:通过增加预期轮询之间的间隔,您可以给消费者更多的时间来处理一批轮询 从轮询返回的记录(长)。缺点是增加这一点 值可能会延迟组重新平衡,因为使用者将只加入 投票呼吁中的重新平衡。您可以使用此设置来 限制完成再平衡的时间,但如果 消费者实际上无法足够频繁地调用poll
  • max.poll.records:使用此设置将单个调用返回的总记录限制为轮询。这可以让你更容易理解 预测每个轮询间隔内必须处理的最大值。通过 调整此值后,您可以减少轮询间隔,这将 将减少集团再平衡的影响

  • max.poll.interval.ms不是poll返回所需的时间,而是允许用户在后续调用之间进行poll的时间。我的措辞似乎让您感到困惑。我做了一点更新来澄清