public class LoadbalanceRSocketClient extends Object implements RSocketClient
RSocketClient implementation that uses a LoadbalanceStrategy to select the RSocket to use for a given request from a pool of possible targets.| Modifier and Type | Class and Description |
|---|---|
static class |
LoadbalanceRSocketClient.Builder
Builder for creating an
LoadbalanceRSocketClient. |
Disposable.Composite, Disposable.Swap| Modifier and Type | Method and Description |
|---|---|
static LoadbalanceRSocketClient.Builder |
builder(org.reactivestreams.Publisher<List<LoadbalanceTarget>> targetPublisher)
Return a builder to create an
LoadbalanceRSocketClient with. |
static LoadbalanceRSocketClient |
create(RSocketConnector connector,
org.reactivestreams.Publisher<List<LoadbalanceTarget>> targetPublisher)
Shortcut to create an
LoadbalanceRSocketClient with round robin loadalancing. |
void |
dispose() |
Mono<Void> |
fireAndForget(Mono<Payload> payloadMono)
Perform a Fire-and-Forget interaction via
RSocket.fireAndForget(Payload). |
Mono<Void> |
metadataPush(Mono<Payload> payloadMono)
Perform a Metadata Push via
RSocket.metadataPush(Payload). |
Flux<Payload> |
requestChannel(org.reactivestreams.Publisher<Payload> payloads)
Perform a Request-Channel interaction via
RSocket.requestChannel(Publisher). |
Mono<Payload> |
requestResponse(Mono<Payload> payloadMono)
Perform a Request-Response interaction via
RSocket.requestResponse(Payload). |
Flux<Payload> |
requestStream(Mono<Payload> payloadMono)
Perform a Request-Stream interaction via
RSocket.requestStream(Payload). |
Mono<RSocket> |
source()
Return the underlying source used to obtain a shared
RSocket connection. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitfrom, fromisDisposedpublic Mono<RSocket> source()
RSocketClientRSocket connection.source in interface RSocketClientpublic Mono<Void> fireAndForget(Mono<Payload> payloadMono)
RSocketClientRSocket.fireAndForget(Payload). Allows
multiple subscriptions and performs a request per subscriber.fireAndForget in interface RSocketClientpublic Mono<Payload> requestResponse(Mono<Payload> payloadMono)
RSocketClientRSocket.requestResponse(Payload). Allows
multiple subscriptions and performs a request per subscriber.requestResponse in interface RSocketClientpublic Flux<Payload> requestStream(Mono<Payload> payloadMono)
RSocketClientRSocket.requestStream(Payload). Allows
multiple subscriptions and performs a request per subscriber.requestStream in interface RSocketClientpublic Flux<Payload> requestChannel(org.reactivestreams.Publisher<Payload> payloads)
RSocketClientRSocket.requestChannel(Publisher). Allows
multiple subscriptions and performs a request per subscriber.requestChannel in interface RSocketClientpublic Mono<Void> metadataPush(Mono<Payload> payloadMono)
RSocketClientRSocket.metadataPush(Payload). Allows multiple
subscriptions and performs a request per subscriber.metadataPush in interface RSocketClientpublic void dispose()
dispose in interface Disposablepublic static LoadbalanceRSocketClient create(RSocketConnector connector, org.reactivestreams.Publisher<List<LoadbalanceTarget>> targetPublisher)
LoadbalanceRSocketClient with round robin loadalancing.
Effectively a shortcut for:
LoadbalanceRSocketClient.builder(targetPublisher)
.connector(RSocketConnector.create())
.build();
connector - the {@link Builder#connector(RSocketConnector) to usetargetPublisher - publisher that periodically refreshes the list of targets to loadbalance across.public static LoadbalanceRSocketClient.Builder builder(org.reactivestreams.Publisher<List<LoadbalanceTarget>> targetPublisher)
LoadbalanceRSocketClient with.targetPublisher - publisher that periodically refreshes the list of targets to loadbalance
across.