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 PartitionedServiceDiscovererEvent
s.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
Deprecated.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 theClientGroup
identified by the providedkey
or create a new one when none exists.onClose()
Deprecated.Returns aCompletable
that is notified once theListenableAsyncCloseable
was closed.Deprecated.Returns aCompletable
that 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 aPartitionMap
implementation appropriate for the use-casepsdEvents
- the stream ofPartitionedServiceDiscovererEvent
spsdMaxQueueSize
- max number of new partitions to queue up
-
-
Method Details
-
onClose
Deprecated.Description copied from interface:ListenableAsyncCloseable
Returns aCompletable
that is notified once theListenableAsyncCloseable
was closed.- Specified by:
onClose
in interfaceListenableAsyncCloseable
- Returns:
- the
Completable
that is notified on close.
-
onClosing
Deprecated.Description copied from interface:ListenableAsyncCloseable
Returns aCompletable
that 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: close
header).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:
onClosing
in interfaceListenableAsyncCloseable
- Returns:
- a
Completable
that is notified when closing begins.
-
closeAsync
Deprecated.Description copied from interface:AsyncCloseable
Used to close/shutdown a resource.- Specified by:
closeAsync
in interfaceAsyncCloseable
- Returns:
- A
Completable
that is notified once the close is complete.
-
closeAsyncGracefully
Deprecated.Description copied from interface:AsyncCloseable
Used 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:
closeAsyncGracefully
in interfaceAsyncCloseable
- Returns:
- A
Completable
that is notified once the close is complete.
-
get
Deprecated.Description copied from interface:ClientGroup
Return theClientGroup
identified by the providedkey
or create a new one when none exists.- Specified by:
get
in 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
-
ClientGroup
as an alternative or reach out to the maintainers describing the use-case.