在融合的Kafka Rest代理中,我们可以获取特定消费者组的最后提交的偏移量,但是如何获取主题的最新偏移量以计算滞后时间。
答案 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":""
}
]
}