Class DistributedTopic<T>
java.lang.Object
com.loomcache.server.datastructures.DistributedTopic<T>
- Type Parameters:
T- the type of messages published
Distributed Topic — pub/sub messaging between nodes and clients.
Publishers send messages to a named topic; all subscribers on all nodes receive the message. In a cluster, published messages are broadcast to all nodes via the message protocol (TOPIC_PUBLISH / TOPIC_EVENT).
Features:
- publish: send a message to all subscribers
- publishAsync: non-blocking publish using virtual threads
- subscribe: register a listener for messages
- subscribeWithFilter: register a filtered listener for messages
- unsubscribe: deregister a listener
- Message ordering guaranteed per publisher
- Pause/resume message delivery
- Statistics: total published, total delivered, filtered messages, etc.
- Since:
- 1.0
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfacestatic final record -
Constructor Summary
ConstructorsConstructorDescriptionDistributedTopic(String name, int instanceNumber) DistributedTopic(String name, int instanceNumber, boolean multiThreadingEnabled) DistributedTopic(String name, int instanceNumber, boolean multiThreadingEnabled, boolean globalOrderingEnabled) -
Method Summary
Modifier and TypeMethodDescriptionaddSubscriberWithFilter(DistributedTopic.MessageListener<T> subscriber, Predicate<T> filter) voiddeliverRemote(T message, String publisherId) longlongintlonglongvoidvoidvoidpublishAsync(T message) booleanremoveFilteredSubscriber(DistributedTopic.MessageListener<T> subscriber) voidsubscribe(DistributedTopic.MessageListener<T> listener) intbooleanunsubscribe(DistributedTopic.MessageListener<T> listener) booleanunsubscribe(String subscriptionId)
-
Constructor Details
-
DistributedTopic
-
DistributedTopic
-
DistributedTopic
public DistributedTopic(String name, int instanceNumber, boolean multiThreadingEnabled, boolean globalOrderingEnabled)
-
-
Method Details
-
publish
-
publish
-
deliverRemote
-
subscribe
-
unsubscribe
-
unsubscribe
-
subscriberCount
public int subscriberCount() -
addSubscriberWithFilter
public String addSubscriberWithFilter(DistributedTopic.MessageListener<T> subscriber, Predicate<T> filter) -
removeFilteredSubscriber
-
getTotalPublished
public long getTotalPublished() -
getTotalDelivered
public long getTotalDelivered() -
getListenerFailures
public long getListenerFailures() -
publishAsync
-
getSubscriberCount
public int getSubscriberCount() -
getMessageCount
public long getMessageCount() -
pauseDelivery
public void pauseDelivery() -
resumeDelivery
public void resumeDelivery() -
getTopicStatistics
-