我通过rest代理(在docker容器中)使用kafka版本2.2.0cp2。我需要消费者始终只阅读一条信息。
我设定了值 max.poll.records=1
在文件中 /etc/kafka/consumer.properties
具体如下: consumer.max.poll.records=1
或: max.poll.records=1
没有效果。
在其他配置中设置此值也不会产生任何结果。
我通过rest代理(在docker容器中)使用kafka版本2.2.0cp2。我需要消费者始终只阅读一条信息。
我设定了值 max.poll.records=1
在文件中 /etc/kafka/consumer.properties
具体如下: consumer.max.poll.records=1
或: max.poll.records=1
没有效果。
在其他配置中设置此值也不会产生任何结果。
2条答案
按热度按时间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的最小值。默认值是无限的
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示例)-记录