Class DefaultPartitionedClientGroup<U,R,Client extends ListenableAsyncCloseable>
- Type Parameters:
U- the type of address before resolution (unresolved address)R- the type of address after resolution (resolved address)Client- the type of client to connect to the partitions
- All Implemented Interfaces:
ClientGroup<PartitionAttributes,,Client> AsyncCloseable,ListenableAsyncCloseable
ClientGroup that can be used for partitioned client use-cases where PartitionAttributes are discovered through PartitionedServiceDiscovererEvents.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceDeprecated.We are unaware of anyone using "partition" feature and plan to remove it in future releases. -
Constructor Summary
ConstructorsConstructorDescriptionDefaultPartitionedClientGroup(Function<PartitionAttributes, Client> closedPartitionClient, Function<PartitionAttributes, Client> unknownPartitionClient, DefaultPartitionedClientGroup.PartitionedClientFactory<U, R, Client> clientFactory, PartitionMapFactory partitionMapFactory, Publisher<PartitionedServiceDiscovererEvent<R>> psdEvents, int psdMaxQueueSize) Deprecated.Creates a new instance. -
Method Summary
Modifier and TypeMethodDescriptionDeprecated.Used to close/shutdown a resource.Deprecated.Used to close/shutdown a resource, similar toAsyncCloseable.closeAsync(), but attempts to cleanup state before abruptly closing.get(PartitionAttributes partitionAttributes) Deprecated.Return theClientGroupidentified by the providedkeyor create a new one when none exists.onClose()Deprecated.Returns aCompletablethat is notified once theListenableAsyncCloseablewas closed.Deprecated.Returns aCompletablethat is notified when closing begins.
-
Constructor Details
-
DefaultPartitionedClientGroup
public DefaultPartitionedClientGroup(Function<PartitionAttributes, Client> closedPartitionClient, Function<PartitionAttributes, Client> unknownPartitionClient, DefaultPartitionedClientGroup.PartitionedClientFactory<U, R, Client> clientFactory, PartitionMapFactory partitionMapFactory, Publisher<PartitionedServiceDiscovererEvent<R>> psdEvents, int psdMaxQueueSize) Deprecated.Creates a new instance.- Parameters:
closedPartitionClient- factory for clients that handle requests for a closed partitionunknownPartitionClient- factory for clients that handles requests for an unknown partitionclientFactory- used to create clients for newly discovered partitionspartitionMapFactory- factory to provide aPartitionMapimplementation appropriate for the use-casepsdEvents- the stream ofPartitionedServiceDiscovererEventspsdMaxQueueSize- max number of new partitions to queue up
-
-
Method Details
-
onClose
Deprecated.Description copied from interface:ListenableAsyncCloseableReturns aCompletablethat is notified once theListenableAsyncCloseablewas closed.- Specified by:
onClosein interfaceListenableAsyncCloseable- Returns:
- the
Completablethat is notified on close.
-
onClosing
Deprecated.Description copied from interface:ListenableAsyncCloseableReturns aCompletablethat is notified when closing begins.Closing begin might be when a close operation is initiated locally (e.g. subscribing to
AsyncCloseable.closeAsync()) or it could also be a transport event received from a remote peer (e.g. read aconnection: closeheader).For backwards compatibility this method maybe functionally equivalent to
ListenableAsyncCloseable.onClose(). Therefore, provides a best-effort leading edge notification of closing, but may fall back to notification on trailing edge.The goal of this method is often to notify asap when closing so this method may not be offloaded and care must be taken to avoid blocking if subscribing to the return
Completable.- Specified by:
onClosingin interfaceListenableAsyncCloseable- Returns:
- a
Completablethat is notified when closing begins.
-
closeAsync
Deprecated.Description copied from interface:AsyncCloseableUsed to close/shutdown a resource.- Specified by:
closeAsyncin interfaceAsyncCloseable- Returns:
- A
Completablethat is notified once the close is complete.
-
closeAsyncGracefully
Deprecated.Description copied from interface:AsyncCloseableUsed to close/shutdown a resource, similar toAsyncCloseable.closeAsync(), but attempts to cleanup state before abruptly closing. This provides a hint that implementations can use to stop accepting new work and finish in flight work. This method is implemented on a "best effort" basis and may be equivalent toAsyncCloseable.closeAsync().Note: Implementations may or may not apply a timeout for this operation to complete, if a caller does not want to wait indefinitely, and are unsure if the implementation applies a timeout, it is advisable to apply a timeout and force a call to
AsyncCloseable.closeAsync().- Specified by:
closeAsyncGracefullyin interfaceAsyncCloseable- Returns:
- A
Completablethat is notified once the close is complete.
-
get
Deprecated.Description copied from interface:ClientGroupReturn theClientGroupidentified by the providedkeyor create a new one when none exists.- Specified by:
getin interfaceClientGroup<U,R> - Parameters:
partitionAttributes- the key identifying the client to return or create, this key may contain attributes about the requested client in order to create new instances- Returns:
- a client assigned to the provided
key, either by looking up an existing or creating a new instance if non-existent
-
ClientGroupas an alternative or reach out to the maintainers describing the use-case.