- All Superinterfaces:
FtHandler
,RuntimeType.Api<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
Modifier and TypeInterfaceDescriptionstatic interface
A Bulkhead listener for queueing operations.static interface
Provides statistics during the lifetime of a bulkhead, such as concurrent executions, accepted/rejected calls and queue size. -
Method Summary
Modifier and TypeMethodDescriptionstatic BulkheadConfig.Builder
builder()
Create a new bulkhead fluent API builder.boolean
cancelSupplier
(Supplier<?> supplier) Can be used to cancel a supplier while queued.static Bulkhead
create
(BulkheadConfig config) CreateBulkhead
from its configuration.static Bulkhead
create
(Consumer<BulkheadConfig.Builder> builderConsumer) CreateBulkhead
customizing 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
CreateBulkhead
from its configuration.- Parameters:
config
- configuration of a bulkhead to create- Returns:
- a new bulkhead
-
create
CreateBulkhead
customizing its configuration.- Parameters:
builderConsumer
- consumer to update configuration of bulkhead- Returns:
- a new bulkhead
-
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
-