【问题标题】:How to indicate consumer offset in Kafka rest API如何在 Kafka REST API 中指示消费者偏移量
【发布时间】:2018-04-01 13:38:38
【问题描述】:

我正在使用 Kafka 0.10 REST API。我只是使用 Java 中的 HTTP 对象来调用 Kafka REST API(例如 curl 命令)。我消费消息时需要指明消费者偏移量,否则从头或最新读取,但我找不到指明偏移量的参数。

请问是否有完整的 REST 代理文档来描述每个参数。

【问题讨论】:

  • 只是为了确保您的问题正确:您想更改给定主题和分区的给定消费者组的消息偏移量?
  • 是的,我的意思是当我开始消费时如何寻找具体的分区和偏移量?

标签: apache-kafka kafka-rest


【解决方案1】:

假设您指的是 Confluent Kafka REST 代理,因为 Apache Kafka 没有用于消费消息的 REST API。

完整文档在此处的 Confluent 网站上

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

0.10 版是 Apache Kafka 的版本,但不是 Confluent REST 代理的版本。包含 Apache Kafka 0.10.0 的 Confluent 版本是 Confluent 3.0.0。自几年前发布此版本以来,REST 代理有许多增强功能,因此建议您升级到 4.0 或 4.1 并使用 v2 REST API。

在较新的版本中,您可以像这样发布偏移列表:

POST /consumers/testgroup/instances/my_consumer/offsets HTTP/1.1
Host: proxy-instance.kafkaproxy.example.com
Content-Type: application/vnd.kafka.v2+json

{
  "offsets": [
    {
      "topic": "test",
      "partition": 0,
      "offset": 20
    },
    {
      "topic": "test",
      "partition": 1,
      "offset": 30
    }
  ]
}

【讨论】:

  • 我的意思是当我开始消费时如何寻找具体的分区和偏移量?
  • btw,能否请您推荐一个Kafka Rest查询工具(如web),这样我就不必在命令行中进行查询,就像:curl.....
  • 提交你想要的偏移量,然后正常消费,它将从最后提交的偏移量开始
  • 但我们从不提交,团队只将偏移量存储在数据库中,所以我必须找到最后一个偏移量然后消费,否则可能会消费重复数据。
  • 那你没有正确进行 Kafka 消费。您必须定期在 Kafka 中提交您的偏移量,否则您的消费者将退出消费者组并重置回起点。
【解决方案2】:

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

GET /topics/(string: topic_name)/partitions/(int: partition_id)/messages?offset=(int)[&count=(int)]

【讨论】:

  • 现在kafka rest代理文档中没有这样的API。它是否从新的 API 版本中删除?
猜你喜欢
  • 1970-01-01
  • 2022-11-13
  • 1970-01-01
  • 2019-04-04
  • 2017-07-22
  • 2021-03-27
  • 2019-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多