public interface ClusterCommunicationService
MemberId based intra-cluster messaging service.
The cluster communication service is used for high-level communication between cluster members. Messages are sent
and received based on arbitrary String message subjects. Direct messages are sent using the MemberId
to which to send the message. This API supports several types of messaging:
broadcast(String, Object) broadcasts a message to all cluster membersmulticast(String, Object, Set) sends the message to all provided membersunicast(String, Object, MemberId) sends a unicast message directly to the given membersend(String, Object, MemberId) sends a message directly to the given member and awaits a replysubscribe(String, Consumer, Executor) methods:
atomix.getCommunicationService().subscribe("test", message -> {
System.out.println("Received message");
}, executor);
| Modifier and Type | Method and Description |
|---|---|
default <M> void |
broadcast(java.lang.String subject,
M message)
Broadcasts a message to all members.
|
default <M> void |
broadcast(java.lang.String subject,
M message,
boolean reliable)
Broadcasts a message to all members.
|
default <M> void |
broadcast(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder)
Broadcasts a message to all members.
|
<M> void |
broadcast(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder,
boolean reliable)
Broadcasts a message to all members.
|
default <M> void |
broadcastIncludeSelf(java.lang.String subject,
M message)
Broadcasts a message to all members over TCP including self.
|
default <M> void |
broadcastIncludeSelf(java.lang.String subject,
M message,
boolean reliable)
Broadcasts a message to all members including self.
|
default <M> void |
broadcastIncludeSelf(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder)
Broadcasts a message to all members over TCP including self.
|
<M> void |
broadcastIncludeSelf(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder,
boolean reliable)
Broadcasts a message to all members including self.
|
default <M> void |
multicast(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder,
java.util.Set<MemberId> memberIds)
Multicasts a message to a set of members over TCP.
|
<M> void |
multicast(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder,
java.util.Set<MemberId> memberIds,
boolean reliable)
Multicasts a message to a set of members.
|
default <M> void |
multicast(java.lang.String subject,
M message,
java.util.Set<MemberId> memberIds)
Multicasts a message to a set of members over TCP.
|
default <M> void |
multicast(java.lang.String subject,
M message,
java.util.Set<MemberId> memberIds,
boolean reliable)
Multicasts a message to a set of members.
|
default <M,R> java.util.concurrent.CompletableFuture<R> |
send(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder,
java.util.function.Function<byte[],R> decoder,
MemberId toMemberId)
Sends a message and expects a reply.
|
<M,R> java.util.concurrent.CompletableFuture<R> |
send(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder,
java.util.function.Function<byte[],R> decoder,
MemberId toMemberId,
java.time.Duration timeout)
Sends a message and expects a reply.
|
default <M,R> java.util.concurrent.CompletableFuture<R> |
send(java.lang.String subject,
M message,
MemberId toMemberId)
Sends a message and expects a reply.
|
default <M,R> java.util.concurrent.CompletableFuture<R> |
send(java.lang.String subject,
M message,
MemberId toMemberId,
java.time.Duration timeout)
Sends a message and expects a reply.
|
default <M> java.util.concurrent.CompletableFuture<java.lang.Void> |
subscribe(java.lang.String subject,
java.util.function.BiConsumer<MemberId,M> handler,
java.util.concurrent.Executor executor)
Adds a new subscriber for the specified message subject.
|
default <M> java.util.concurrent.CompletableFuture<java.lang.Void> |
subscribe(java.lang.String subject,
java.util.function.Consumer<M> handler,
java.util.concurrent.Executor executor)
Adds a new subscriber for the specified message subject.
|
<M> java.util.concurrent.CompletableFuture<java.lang.Void> |
subscribe(java.lang.String subject,
java.util.function.Function<byte[],M> decoder,
java.util.function.BiConsumer<MemberId,M> handler,
java.util.concurrent.Executor executor)
Adds a new subscriber for the specified message subject.
|
<M> java.util.concurrent.CompletableFuture<java.lang.Void> |
subscribe(java.lang.String subject,
java.util.function.Function<byte[],M> decoder,
java.util.function.Consumer<M> handler,
java.util.concurrent.Executor executor)
Adds a new subscriber for the specified message subject.
|
<M,R> java.util.concurrent.CompletableFuture<java.lang.Void> |
subscribe(java.lang.String subject,
java.util.function.Function<byte[],M> decoder,
java.util.function.Function<M,java.util.concurrent.CompletableFuture<R>> handler,
java.util.function.Function<R,byte[]> encoder)
Adds a new subscriber for the specified message subject.
|
<M,R> java.util.concurrent.CompletableFuture<java.lang.Void> |
subscribe(java.lang.String subject,
java.util.function.Function<byte[],M> decoder,
java.util.function.Function<M,R> handler,
java.util.function.Function<R,byte[]> encoder,
java.util.concurrent.Executor executor)
Adds a new subscriber for the specified message subject.
|
default <M,R> java.util.concurrent.CompletableFuture<java.lang.Void> |
subscribe(java.lang.String subject,
java.util.function.Function<M,java.util.concurrent.CompletableFuture<R>> handler)
Adds a new subscriber for the specified message subject.
|
default <M,R> java.util.concurrent.CompletableFuture<java.lang.Void> |
subscribe(java.lang.String subject,
java.util.function.Function<M,R> handler,
java.util.concurrent.Executor executor)
Adds a new subscriber for the specified message subject.
|
default <M> java.util.concurrent.CompletableFuture<java.lang.Void> |
unicast(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder,
MemberId toMemberId)
Sends a message to the specified member over TCP.
|
<M> java.util.concurrent.CompletableFuture<java.lang.Void> |
unicast(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder,
MemberId toMemberId,
boolean reliable)
Sends a message to the specified member.
|
default <M> java.util.concurrent.CompletableFuture<java.lang.Void> |
unicast(java.lang.String subject,
M message,
MemberId toMemberId)
Sends a message to the specified member over TCP.
|
default <M> java.util.concurrent.CompletableFuture<java.lang.Void> |
unicast(java.lang.String subject,
M message,
MemberId toMemberId,
boolean reliable)
Sends a message to the specified member.
|
void |
unsubscribe(java.lang.String subject)
Removes a subscriber for the specified message subject.
|
default <M> void broadcast(java.lang.String subject,
M message)
M - message typesubject - message subjectmessage - message to senddefault <M> void broadcast(java.lang.String subject,
M message,
boolean reliable)
M - message typesubject - message subjectmessage - message to sendreliable - whether to perform a reliable (TCP) unicastdefault <M> void broadcast(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder)
M - message typesubject - message subjectmessage - message to sendencoder - function for encoding message to byte[]<M> void broadcast(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder,
boolean reliable)
M - message typesubject - message subjectmessage - message to sendencoder - function for encoding message to byte[]reliable - whether to perform a reliable (TCP) unicastdefault <M> void broadcastIncludeSelf(java.lang.String subject,
M message)
M - message typesubject - message subjectmessage - message to senddefault <M> void broadcastIncludeSelf(java.lang.String subject,
M message,
boolean reliable)
M - message typesubject - message subjectmessage - message to sendreliable - whether to perform a reliable (TCP) unicastdefault <M> void broadcastIncludeSelf(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder)
M - message typesubject - message subjectmessage - message to sendencoder - function for encoding message to byte[]<M> void broadcastIncludeSelf(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder,
boolean reliable)
M - message typesubject - message subjectmessage - message to sendencoder - function for encoding message to byte[]reliable - whether to perform a reliable (TCP) unicastdefault <M> java.util.concurrent.CompletableFuture<java.lang.Void> unicast(java.lang.String subject,
M message,
MemberId toMemberId)
M - message typesubject - message subjectmessage - message to sendtoMemberId - destination node identifierdefault <M> java.util.concurrent.CompletableFuture<java.lang.Void> unicast(java.lang.String subject,
M message,
MemberId toMemberId,
boolean reliable)
M - message typesubject - message subjectmessage - message to sendtoMemberId - destination node identifierreliable - whether to perform a reliable (TCP) unicastdefault <M> java.util.concurrent.CompletableFuture<java.lang.Void> unicast(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder,
MemberId toMemberId)
M - message typesubject - message subjectmessage - message to sendencoder - function for encoding message to byte[]toMemberId - destination node identifier<M> java.util.concurrent.CompletableFuture<java.lang.Void> unicast(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder,
MemberId toMemberId,
boolean reliable)
M - message typesubject - message subjectmessage - message to sendencoder - function for encoding message to byte[]toMemberId - destination node identifierreliable - whether to perform a reliable (TCP) unicastdefault <M> void multicast(java.lang.String subject,
M message,
java.util.Set<MemberId> memberIds)
M - message typesubject - message subjectmessage - message to sendmemberIds - recipient node identifiersdefault <M> void multicast(java.lang.String subject,
M message,
java.util.Set<MemberId> memberIds,
boolean reliable)
M - message typesubject - message subjectmessage - message to sendmemberIds - recipient node identifiersreliable - whether to perform a reliable (TCP) unicastdefault <M> void multicast(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder,
java.util.Set<MemberId> memberIds)
M - message typesubject - message subjectmessage - message to sendencoder - function for encoding message to byte[]memberIds - recipient node identifiers<M> void multicast(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder,
java.util.Set<MemberId> memberIds,
boolean reliable)
M - message typesubject - message subjectmessage - message to sendencoder - function for encoding message to byte[]memberIds - recipient node identifiersreliable - whether to perform a reliable (TCP) unicastdefault <M,R> java.util.concurrent.CompletableFuture<R> send(java.lang.String subject,
M message,
MemberId toMemberId)
M - request typeR - reply typesubject - message subjectmessage - message to sendtoMemberId - recipient node identifierdefault <M,R> java.util.concurrent.CompletableFuture<R> send(java.lang.String subject,
M message,
MemberId toMemberId,
java.time.Duration timeout)
M - request typeR - reply typesubject - message subjectmessage - message to sendtoMemberId - recipient node identifiertimeout - response timeoutdefault <M,R> java.util.concurrent.CompletableFuture<R> send(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder,
java.util.function.Function<byte[],R> decoder,
MemberId toMemberId)
M - request typeR - reply typesubject - message subjectmessage - message to sendencoder - function for encoding request to byte[]decoder - function for decoding response from byte[]toMemberId - recipient node identifier<M,R> java.util.concurrent.CompletableFuture<R> send(java.lang.String subject,
M message,
java.util.function.Function<M,byte[]> encoder,
java.util.function.Function<byte[],R> decoder,
MemberId toMemberId,
java.time.Duration timeout)
M - request typeR - reply typesubject - message subjectmessage - message to sendencoder - function for encoding request to byte[]decoder - function for decoding response from byte[]toMemberId - recipient node identifiertimeout - response timeoutdefault <M,R> java.util.concurrent.CompletableFuture<java.lang.Void> subscribe(java.lang.String subject,
java.util.function.Function<M,R> handler,
java.util.concurrent.Executor executor)
M - incoming message typeR - reply message typesubject - message subjecthandler - handler function that processes the incoming message and produces a replyexecutor - executor to run this handler on<M,R> java.util.concurrent.CompletableFuture<java.lang.Void> subscribe(java.lang.String subject,
java.util.function.Function<byte[],M> decoder,
java.util.function.Function<M,R> handler,
java.util.function.Function<R,byte[]> encoder,
java.util.concurrent.Executor executor)
M - incoming message typeR - reply message typesubject - message subjectdecoder - decoder for resurrecting incoming messagehandler - handler function that processes the incoming message and produces a replyencoder - encoder for serializing replyexecutor - executor to run this handler ondefault <M,R> java.util.concurrent.CompletableFuture<java.lang.Void> subscribe(java.lang.String subject,
java.util.function.Function<M,java.util.concurrent.CompletableFuture<R>> handler)
M - incoming message typeR - reply message typesubject - message subjecthandler - handler function that processes the incoming message and produces a reply<M,R> java.util.concurrent.CompletableFuture<java.lang.Void> subscribe(java.lang.String subject,
java.util.function.Function<byte[],M> decoder,
java.util.function.Function<M,java.util.concurrent.CompletableFuture<R>> handler,
java.util.function.Function<R,byte[]> encoder)
M - incoming message typeR - reply message typesubject - message subjectdecoder - decoder for resurrecting incoming messagehandler - handler function that processes the incoming message and produces a replyencoder - encoder for serializing replydefault <M> java.util.concurrent.CompletableFuture<java.lang.Void> subscribe(java.lang.String subject,
java.util.function.Consumer<M> handler,
java.util.concurrent.Executor executor)
M - incoming message typesubject - message subjecthandler - handler for handling messageexecutor - executor to run this handler ondefault <M> java.util.concurrent.CompletableFuture<java.lang.Void> subscribe(java.lang.String subject,
java.util.function.BiConsumer<MemberId,M> handler,
java.util.concurrent.Executor executor)
M - incoming message typesubject - message subjecthandler - handler for handling messageexecutor - executor to run this handler on<M> java.util.concurrent.CompletableFuture<java.lang.Void> subscribe(java.lang.String subject,
java.util.function.Function<byte[],M> decoder,
java.util.function.Consumer<M> handler,
java.util.concurrent.Executor executor)
M - incoming message typesubject - message subjectdecoder - decoder to resurrecting incoming messagehandler - handler for handling messageexecutor - executor to run this handler on<M> java.util.concurrent.CompletableFuture<java.lang.Void> subscribe(java.lang.String subject,
java.util.function.Function<byte[],M> decoder,
java.util.function.BiConsumer<MemberId,M> handler,
java.util.concurrent.Executor executor)
M - incoming message typesubject - message subjectdecoder - decoder to resurrecting incoming messagehandler - handler for handling messageexecutor - executor to run this handler onvoid unsubscribe(java.lang.String subject)
subject - message subjectCopyright © 2013-2018. All Rights Reserved.