- All Superinterfaces:
FtHandler,RuntimeType.Api<io.helidon.faulttolerance.BulkheadConfig>
@Contract
public interface Bulkhead
extends FtHandler, RuntimeType.Api<io.helidon.faulttolerance.BulkheadConfig>
Bulkhead protects a resource that cannot serve unlimited parallel
requests.
When the limit of parallel execution is reached, requests are enqueued
until the queue length is reached. Once both the limit and queue are full,
additional attempts to invoke will end with a failed response with
BulkheadException.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceA Bulkhead listener for queueing operations.static interfaceProvides statistics during the lifetime of a bulkhead, such as concurrent executions, accepted/rejected calls and queue size. -
Method Summary
Modifier and TypeMethodDescriptionstatic io.helidon.faulttolerance.BulkheadConfig.Builderbuilder()Create a new bulkhead fluent API builder.booleancancelSupplier(Supplier<?> supplier) Can be used to cancel a supplier while queued.static Bulkheadcreate(io.helidon.faulttolerance.BulkheadConfig config) CreateBulkheadfrom its configuration.static BulkheadCreateBulkheadcustomizing its configuration.stats()Provides access to internal stats for this bulkhead.Methods inherited from interface io.helidon.builder.api.RuntimeType.Api
prototype
-
Method Details
-
create
CreateBulkheadfrom its configuration.- Parameters:
config- configuration of a bulkhead to create- Returns:
- a new bulkhead
-
create
CreateBulkheadcustomizing its configuration.- Parameters:
builderConsumer- consumer to update configuration of bulkhead- Returns:
- a new bulkhead
-
builder
static io.helidon.faulttolerance.BulkheadConfig.Builder builder()Create a new bulkhead fluent API builder.- Returns:
- a new bulkhead builder
-
stats
Bulkhead.Stats stats()Provides access to internal stats for this bulkhead.- Returns:
- internal stats.
-
cancelSupplier
Can be used to cancel a supplier while queued.- Parameters:
supplier- the supplier- Returns:
- outcome of cancellation
-