@Override
  public ConnectedChannel checkOutConnection(String host, Port port, long timeout)
      throws IOException, InterruptedException, ConnectionPoolTimeoutException {
    InetSocketAddress inetSocketAddress = new InetSocketAddress(host, port.getPort());
    Http2MultiplexedChannelPool pool = (Http2MultiplexedChannelPool) http2ChannelPoolMap.get(inetSocketAddress);
    return new Http2BlockingChannel(pool, pool.getInetSocketAddress(), pool.getHttp2ClientConfig());
  }
A connection pool that uses {@link Http2MultiplexedChannelPool} as the underlying channel for communication.
{@link Http2MultiplexedChannelPool} maintains physical connections to a host:port.
A stream channel represented by {@link Http2BlockingChannel} is checked out when checkOutConnection() is invoked.
ambry-network/src/main/java/com/github/ambry/network/http2/Http2BlockingChannelPool.java