检索过去的卡夫卡消费者的历史

时间:2019-11-21 20:38:34

标签: apache-kafka kafka-consumer-api

是否可以获取作为给定消费者组的成员连接到经纪人的消费者(IP)列表?

我知道kafka-consumer-group.sh命令会对所有当前连接/活动的使用者执行此操作。 但是我很感兴趣是否有一个临时用户,例如5分钟前,它确实消耗了主题中的某些消息。

我还尝试增加授权者的日志以进行调试。但是结果是在几个小时内增加了数百万条日志。

谢谢,约臣

1 个答案:

答案 0 :(得分:0)

尝试使用带有listConsumerGroups的AdminClient获取使用者列表

/*List the consumer groups available in the cluster with the default options.*/
public ListConsumerGroupsResult listConsumerGroups() {
        return listConsumerGroups(new ListConsumerGroupsOptions());
    }

在下面的样本中获取消费者列表

    import org.apache.kafka.clients.admin.ListConsumerGroupOffsetsResult;
    import org.apache.kafka.clients.consumer.KafkaConsumer;
    iomport org.apache.kafka.clients.admin.AdminClient;

    AdminClient client = AdminClient.create(props);
    //.all(): Returns a future that yields either an exception, or the full set of consumer group listings.
    List<String> listConsumer=client.listConsumerGroups().all().get().stream().
    map(f -> f.groupId()).collect(Collectors.toList());