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

时间:2019-10-31 10:46:35

标签: apache-kafka kafka-consumer-api kafka-rest

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

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

consumer.max.poll.records=1 或:

max.poll.records=1

没有效果。

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

2 个答案:

答案 0 :(得分:0)

因此未从REST代理读取consumer.properties

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

必须为API提供limit标志,该标志不存在-https://docs.confluent.io/current/kafka-rest/api.html#get--consumers-(string-group_name)-instances-(string-instance)-records

答案 1 :(得分:0)

我在下面的链接中没有看到任何消费者调查设置

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

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

  

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

最大字节数:

  

未编码的键和值的最大字节数   包含在响应中。这样可以大致控制   响应的大小和存储请求所需的内存量   解码的响应。实际限制将是此设置的最小值   和服务器端配置consumer.request.max.bytes。默认   是无限的