Class Http2MultiplexedChannelPool

java.lang.Object
software.amazon.awssdk.http.nio.netty.internal.http2.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 Details

    • 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.