boolean doSend(final UnsentRequest r, final long currentTimeMs) {
        Node node = r.node.orElse(client.leastLoadedNode(currentTimeMs).node());
        if (node == null || nodeUnavailable(node)) {
            log.debug("No broker available to send the request: {}. Retrying.", r);
            return false;
        }
        ClientRequest request = makeClientRequest(r, node, currentTimeMs);
        if (!client.ready(node, currentTimeMs)) {
            // enqueue the request again if the node isn't ready yet. The request will be handled in the next iteration
            // of the event loop
            log.debug("Node is not ready, handle the request in the next event loop: node={}, request={}", node, r);
            return false;
        }
        client.send(request, currentTimeMs);
        return true;
    }
Tries to send the requests in the unsentRequest queue. If the request doesn't have an assigned node, it will
find the leastLoadedOne, and will be retried in the next {@code poll()}. If the request is expired, a
{@link TimeoutException} will be thrown.
clients/src/main/java/org/apache/kafka/clients/consumer/internals/NetworkClientDelegate.java