Class Http2MultiplexedChannelPool

  • All Implemented Interfaces:
    io.netty.channel.pool.ChannelPool, Closeable, AutoCloseable, SdkChannelPool

    public class Http2MultiplexedChannelPool
    extends Object
    implements SdkChannelPool
    ChannelPool implementation that handles multiplexed streams. Child channels are created for each HTTP/2 stream using Http2StreamChannelBootstrap with the parent channel being the actual socket channel. This implementation assumes that all connections have the same setting for MAX_CONCURRENT_STREAMS. Concurrent requests are load balanced across all available connections, when the max concurrency for a connection is reached then a new connection will be opened.

    Note: This enforces no max concurrency. Relies on being wrapped with a BetterFixedChannelPool to enforce max concurrency which gives a bunch of other good features like timeouts, max pending acquires, etc.

    • Method Detail

      • acquire

        public io.netty.util.concurrent.Future<io.netty.channel.Channel> acquire()
        Specified by:
        acquire in interface io.netty.channel.pool.ChannelPool
      • acquire

        public io.netty.util.concurrent.Future<io.netty.channel.Channel> acquire​(io.netty.util.concurrent.Promise<io.netty.channel.Channel> promise)
        Specified by:
        acquire in interface io.netty.channel.pool.ChannelPool
      • release

        public io.netty.util.concurrent.Future<Void> release​(io.netty.channel.Channel childChannel)
        Specified by:
        release in interface io.netty.channel.pool.ChannelPool
      • release

        public io.netty.util.concurrent.Future<Void> release​(io.netty.channel.Channel childChannel,
                                                             io.netty.util.concurrent.Promise<Void> promise)
        Specified by:
        release in interface io.netty.channel.pool.ChannelPool
      • close

        public void close()
        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface io.netty.channel.pool.ChannelPool
        Specified by:
        close in interface Closeable
      • collectChannelPoolMetrics

        public CompletableFuture<Void> collectChannelPoolMetrics​(MetricCollector metrics)
        Description copied from interface: SdkChannelPool
        Collect channel pool metrics into the provided MetricCollector collection, completing the returned future when all metric publishing is complete.
        Specified by:
        collectChannelPoolMetrics in interface SdkChannelPool
        Parameters:
        metrics - The collection to which all metrics should be added.
        Returns:
        A future that is completed when all metric publishing is complete.