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
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 Summary
Modifier and TypeMethodDescriptionio.netty.util.concurrent.Future
<io.netty.channel.Channel> acquire()
io.netty.util.concurrent.Future
<io.netty.channel.Channel> acquire
(io.netty.util.concurrent.Promise<io.netty.channel.Channel> promise) void
close()
collectChannelPoolMetrics
(MetricCollector metrics) Collect channel pool metrics into the providedMetricCollector
collection, completing the returned future when all metric publishing is complete.io.netty.util.concurrent.Future
<Void> release
(io.netty.channel.Channel childChannel) io.netty.util.concurrent.Future
<Void>
-
Method Details
-
acquire
public io.netty.util.concurrent.Future<io.netty.channel.Channel> acquire()- Specified by:
acquire
in interfaceio.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 interfaceio.netty.channel.pool.ChannelPool
-
release
- Specified by:
release
in interfaceio.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 interfaceio.netty.channel.pool.ChannelPool
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceio.netty.channel.pool.ChannelPool
- Specified by:
close
in interfaceCloseable
-
collectChannelPoolMetrics
Description copied from interface:SdkChannelPool
Collect channel pool metrics into the providedMetricCollector
collection, completing the returned future when all metric publishing is complete.- Specified by:
collectChannelPoolMetrics
in interfaceSdkChannelPool
- Parameters:
metrics
- The collection to which all metrics should be added.- Returns:
- A future that is completed when all metric publishing is complete.
-