public static AbstractResponse parseResponse(ByteBuffer responseBuffer, RequestHeader requestHeader) {
        try {
            return AbstractResponse.parseResponse(responseBuffer, requestHeader);
        } catch (BufferUnderflowException e) {
            throw new SchemaException("Buffer underflow while parsing response for request with header " + requestHeader, e);
        } catch (CorrelationIdMismatchException e) {
            if (SaslClientAuthenticator.isReserved(requestHeader.correlationId())
                && !SaslClientAuthenticator.isReserved(e.responseCorrelationId()))
                throw new SchemaException("The response is unrelated to Sasl request since its correlation id is "
                    + e.responseCorrelationId() + " and the reserved range for Sasl request is [ "
                    + SaslClientAuthenticator.MIN_RESERVED_CORRELATION_ID + ","
                    + SaslClientAuthenticator.MAX_RESERVED_CORRELATION_ID + "]");
            else {
                throw e;
            }
        }
    }
Choose the node with the fewest outstanding requests which is at least eligible for connection. This method will
prefer a node with an existing connection, but will potentially choose a node for which we don't yet have a
connection if all existing connections are in use. If no connection exists, this method will prefer a node
with least recent connection attempts. This method will never choose a node for which there is no
existing connection and from which we have disconnected within the reconnect backoff period, or an active
connection which is being throttled.

@return The node with the fewest in-flight requests.
clients/src/main/java/org/apache/kafka/clients/NetworkClient.java