使用rest代理从主题中只读取一条消息

vkc1a9a2  于 2021-06-04  发布在  Kafka
关注(0)|答案(2)|浏览(319)

我通过rest代理(在docker容器中)使用kafka版本2.2.0cp2。我需要消费者始终只阅读一条信息。
我设定了值 max.poll.records=1 在文件中 /etc/kafka/consumer.properties 具体如下: consumer.max.poll.records=1 或: max.poll.records=1 没有效果。
在其他配置中设置此值也不会产生任何结果。

rm5edbpk

rm5edbpk1#

我在下面的链接中没有看到任何消费者投票设置
https://docs.confluent.io/current/kafka-rest/config.html
但如果您知道平均消息大小,则可以通过如下所示的max\字节来控制记录大小
get/consumers/testgroup/instances/my\u consumer/records?timeout=3000&max\u bytes=300000 http/1.1
最大字节数:
响应中应包含的未编码键和值的最大字节数。这提供了对响应大小和存储解码响应所需的内存量的近似控制。实际限制将是此设置和服务器端配置consumer.request.max.bytes的最小值。默认值是无限的

3qpi33ja

3qpi33ja2#

所以呢 consumer.properties 不是从rest代理读取的
假设消费者属性可以改变 kafka-rest 容器环境变量 KAFKA_REST_CONSUMER_MAX_POLL_RECORDS ,但该设置仅控制代理服务器的内部轮询循环,而不控制返回给http客户端的数据量。。。
必须有一个 limit 给定给api的标志,该标志不存在-https://docs.confluent.io/current/kafka-rest/api.html#get--消费者-(string-group\u name)-示例-(string示例)-记录

相关问题