private void waitTopicsReadyWithConsumer() {
        long start = System.nanoTime();
        boolean ready = false;
        int expectPartitionCount = config.topics * config.partitionsPerTopic;
        while (System.nanoTime() < start + TOPIC_READY_TIMEOUT_NANOS) {
            producerService.probe();
            int received = readyPartitions.size();
            LOGGER.info("Waiting for topics to be ready... sent: {}, received: {}", expectPartitionCount, received);
            if (received >= expectPartitionCount) {
                ready = true;
                break;
            }
            try {
                Thread.sleep(TimeUnit.SECONDS.toMillis(5));
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
        if (!ready) {
            throw new RuntimeException("Timeout waiting for topics to be ready");
        }
    }
Partitions that are ready to be consumed.
Only used during the initial topic readiness check, which is, {@link #preparing} is true.
tools/src/main/java/org/apache/kafka/tools/automq/PerfCommand.java