public class LoadbalanceRSocketClient extends Object implements RSocketClient
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 for a
LoadbalanceRSocketClient . |
static LoadbalanceRSocketClient |
create(RSocketConnector connector,
org.reactivestreams.Publisher<List<LoadbalanceTarget>> targetPublisher)
Shortcut to create an
LoadbalanceRSocketClient with round-robin load balancing. |
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
Mono that selects an RSocket from the underlying pool. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
from, from
isDisposed
public Mono<RSocket> source()
Mono
that selects an RSocket from the underlying pool.source
in interface RSocketClient
public Mono<Void> fireAndForget(Mono<Payload> payloadMono)
RSocketClient
RSocket.fireAndForget(Payload)
. Allows
multiple subscriptions and performs a request per subscriber.fireAndForget
in interface RSocketClient
public Mono<Payload> requestResponse(Mono<Payload> payloadMono)
RSocketClient
RSocket.requestResponse(Payload)
. Allows
multiple subscriptions and performs a request per subscriber.requestResponse
in interface RSocketClient
public Flux<Payload> requestStream(Mono<Payload> payloadMono)
RSocketClient
RSocket.requestStream(Payload)
. Allows
multiple subscriptions and performs a request per subscriber.requestStream
in interface RSocketClient
public Flux<Payload> requestChannel(org.reactivestreams.Publisher<Payload> payloads)
RSocketClient
RSocket.requestChannel(Publisher)
. Allows
multiple subscriptions and performs a request per subscriber.requestChannel
in interface RSocketClient
public Mono<Void> metadataPush(Mono<Payload> payloadMono)
RSocketClient
RSocket.metadataPush(Payload)
. Allows multiple
subscriptions and performs a request per subscriber.metadataPush
in interface RSocketClient
public void dispose()
dispose
in interface Disposable
public static LoadbalanceRSocketClient create(RSocketConnector connector, org.reactivestreams.Publisher<List<LoadbalanceTarget>> targetPublisher)
LoadbalanceRSocketClient
with round-robin load balancing.
Effectively a shortcut for:
LoadbalanceRSocketClient.builder(targetPublisher) .connector(RSocketConnector.create()) .build();
connector
- a "template" for connecting to load balance targetstargetPublisher
- refreshes the list of load balance targets periodicallypublic static LoadbalanceRSocketClient.Builder builder(org.reactivestreams.Publisher<List<LoadbalanceTarget>> targetPublisher)
LoadbalanceRSocketClient
.targetPublisher
- refreshes the list of load balance targets periodically