如何获取数据:max.poll.records和偏移量

时间:2019-05-29 17:47:58

标签: apache-kafka kafka-consumer-api

根据我目前对Kafka的了解,存储数据,并通过“偏移量”(数值)标识每个“存储位置”。

我遇到了此参数-> max.poll.records

假设max.poll.records的值为5,这意味着什么?这是否意味着它将一次读取总计FIVE个“存储位置”(例如,它将尝试从偏移量101、102、103、104、105中获取数据)。

有人可以帮助我理解吗?

1 个答案:

答案 0 :(得分:1)

首先,您是对的,为每个记录分配了一个分区中的偏移量。

max.poll.records设置(docs)可以定义每次应用程序调用{​​{3}}时使用者将返回的最大记录数。这是一个最大值,它可以返回的最大值或更少。

请注意,由于此设置是在客户端应用的,因此这不能直接控制从群集中获取多少数据。这只是为了控制poll()返回的记录数。

在后台,使用者可能已经获取了更多数据,以准备在应用程序下次调用poll()时返回。消费者检索多少数据由fetch.min.bytesmax.partition.fetch.bytesfetch.max.bytes确定。

此设置可让您控制应用程序的运行速度,因为即使有大量可用记录,也只需一次处理max.poll.records