如何在融合的kafka rest代理中访问主题的最新偏移量以计算延迟

时间:2019-07-11 13:04:56

标签: apache-kafka kafka-rest

在融合的Kafka Rest代理中,我们可以获取特定消费者组的最后提交的偏移量,但是如何获取主题的最新偏移量以计算滞后时间。

1 个答案:

答案 0 :(得分:0)

您可以使用Kafka REST代理来获取针对特定分区提交的最新偏移量 。根据{{​​3}}

GET /consumers/(string: group_name)/instances/(string: instance)/offsets
     

获取给定分区的最后提交的偏移量(是否   提交是由该过程或其他过程引起的。

     

请注意,此请求必须针对特定的REST代理   拥有消费者实例的实例。

     

参数:

     
      
  • group_name(字符串)-使用者组的名称

  •   
  • 实例(字符串)-消费者实例Request JSON的ID

  •   
     

对象数组:

     
      
  • partitions-查找最近提交的偏移量的分区列表
  •   
  • partitions [i] .topic(字符串)-主题名称
  •   
  • partitions [i] .partition(int)-分区ID
  •   
     

响应JSON对象数组:

     
      
  • offsets-已提交的偏移量列表
  •   
  • offsets [i] .topic(字符串)-提交了偏移的主题的名称
  •   
  • offsets [i] .partition(int)-为其提交偏移量的分区ID
  •   
  • offsets [i] .offset(int)-承诺的偏移量
  •   
  • offsets [i] .metadata(字符串)-提交的偏移量的元数据
  •   
     

状态码:

     
      
  • 找不到404-
  •   
  • 错误代码40402-找不到分区
  •   
  • 错误代码40403-找不到使用者实例
  •   

示例请求:

GET /consumers/testgroup/instances/my_consumer/offsets HTTP/1.1
Host: proxy-instance.kafkaproxy.example.com
Accept: application/vnd.kafka.v2+json, application/vnd.kafka+json, application/json

{
  "partitions": [
    {
      "topic": "test",
      "partition": 0
    },
    {
      "topic": "test",
      "partition": 1
    }

  ]
}

示例响应:

HTTP/1.1 200 OK
Content-Type: application/vnd.kafka.v2+json

{"offsets":
 [
  {
    "topic": "test",
    "partition": 0,
    "offset": 21,
    "metadata":""
  },
  {
    "topic": "test",
    "partition": 1,
    "offset": 31,
    "metadata":""
  }
 ]
}