4

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

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

consumer.max.poll.records=1 或者:

max.poll.records=1

它没有效果。

在其他配置中设置此值也没有给出任何结果。

4

2 回答 2

1

所以consumer.properties 不会从 REST 代理中读取

假设可以更改消费者属性,则kafka-rest容器 env-var 将是KAFKA_REST_CONSUMER_MAX_POLL_RECORDS,但该设置仅控制代理服务器的内部轮询循环,而不是返回给 HTTP 客户端的数据量...

必须为limitAPI 提供一个不存在的标志 - https://docs.confluent.io/current/kafka-rest/api.html#get--consumers-(string-group_name)-instances- (字符串实例)-记录

于 2019-10-31T16:57:11.193 回答
1

我没有看到以下链接中提到的任何消费者投票设置

https://docs.confluent.io/current/kafka-rest/config.html

但是,如果您知道平均消息大小,则可以通过如下方式传递 max_bytes 来控制记录大小

GET /consumers/testgroup/instances/my_consumer/records?timeout=3000&max_bytes=300000 HTTP/1.1

最大字节数:

应包含在响应中的未编码键和值的最大字节数。这提供了对响应大小和存储解码响应所需的内存量的近似控制。实际限制将是此设置和服务器端配置 consumer.request.max.bytes 的最小值。默认为无限制

于 2019-10-31T17:46:36.480 回答