Apache kafka 使用REST代理仅读取主题中的一条消息

Apache kafka 使用REST代理仅读取主题中的一条消息,apache-kafka,kafka-consumer-api,kafka-rest,Apache Kafka,Kafka Consumer Api,Kafka Rest,我通过Rest代理(在Docker容器中)使用Kafka版本2.2.0cp2。我需要消费者始终只阅读一条消息 我在文件/etc/kafka/consumer.properties中设置值max.poll.records=1,如下所示: consumer.max.poll.records=1 或: max.poll.records=1 没有效果 在其他配置中设置此值也不会产生任何结果。因此消费者。不会从REST代理读取属性 假设消费者属性可以更改,kafka restcontainer env v

我通过Rest代理(在Docker容器中)使用Kafka版本2.2.0cp2。我需要消费者始终只阅读一条消息

我在文件
/etc/kafka/consumer.properties
中设置值
max.poll.records=1
,如下所示:

consumer.max.poll.records=1
或:

max.poll.records=1

没有效果


在其他配置中设置此值也不会产生任何结果。

因此
消费者。不会从REST代理读取属性

假设消费者属性可以更改,
kafka rest
container env var将是
kafka_rest\u consumer\u MAX\u POLL\u RECORDS
,但该设置仅控制代理服务器的内部轮询循环,而不控制返回给HTTP客户端的数据量


必须为API提供一个
限制
标志,该标志不存在-

我看不到下面链接中提到的任何消费者投票设置

但是,如果您知道平均消息大小,您可以按如下所示传递max_字节来控制记录大小

得到 /使用者/testgroup/instances/my_使用者/records?超时=3000,最大字节=300000 HTTP/1.1

最大字节数:

应使用的未编码键和值的最大字节数 应包括在答复中。这提供了对数据的近似控制 响应的大小以及存储响应所需的内存量 解码响应。实际限值将是该设置的最小值 以及服务器端配置consumer.request.max.bytes。违约 是无限的


>容器env var将是KAFKA_REST_CONSUMER_MAX_POLL_RECORDS不幸的是,这也没有产生任何结果。也许这适用于某些图像?我正在使用此图像:
confluentinc/cp enterprise kafka:5.2.1
我提到的变量用于REST代理容器,而不是代理。内存限制对我不起作用,在我的队列中,一条记录可能会占用数千字节或高达百兆字节或更多。因此,一次处理一条记录对我来说很重要。@DanielGrave Kafka默认将一条记录的最大大小限制为1MB。。。如果您在一条消息中放入数百MB,可能会有一种更好的模式适合您的用例