Description
Hi, at my place of employment, we do a lot of work with Kafka. One of the tasks, however, is monitoring the state of information within Kafka, such as how large each topic is and what the lag for each topic is. Because of the way Kafka handles group coordination, and because of our use case, each of our topics has a separate consumer group. Thus, when we want to gather information about all of these topics to see how much lag is in the topic, we have to spawn a new KafkaConsumer with a separate group id, and this is taking a very long time and behaving really slowly, even when we use KafkaConsumer.poll(0) and assignment instead of subscription.
With SimpleClient, however, I have direct access to much of the low level framework and can create Metadata requests to get things like the list of all topics and partitions and what the highwater mark for all of them is in a single, high performance call. However, unfortunately, two things are occurring:
- I think you're planning to deprecate SimpleClient, but we really need this. It's the only way to do low-level communications fast and efficiently since this use case is not the standard poll/consume.
- ConsumerMetadataRequestPayload was merged in June or July of last year, but it is currently failing to work. I can come back with more information once I put back the code in my project that generates those payloads. I'd really appreciate having them work, since then I can create "committed offset" requests for several different topics with different group ids and get them all back efficiently like I do right now with higwater marks.
Thank you!!!