Package org.teamapps.cluster.service
Class TeamAppsCluster
java.lang.Object
java.lang.Thread
org.teamapps.cluster.service.TeamAppsCluster
- All Implemented Interfaces:
java.lang.Runnable,ClusterNodeMessageHandler,org.teamapps.protocol.file.FileProvider,org.teamapps.protocol.service.ServiceRegistry
public class TeamAppsCluster extends java.lang.Thread implements ClusterNodeMessageHandler, org.teamapps.protocol.file.FileProvider, org.teamapps.protocol.service.ServiceRegistry
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler -
Field Summary
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY -
Constructor Summary
Constructors Constructor Description TeamAppsCluster(java.lang.String clusterSecret, int localPort, NodeAddress... knownNodes)TeamAppsCluster(java.lang.String clusterSecret, java.lang.String localNodeId, java.util.function.Consumer<NodeAddress> onNodeConnectionListener, int localPort, java.io.File tempDir, NodeAddress... knownNodes)TeamAppsCluster(java.lang.String clusterSecret, java.lang.String localNodeId, java.util.function.Consumer<NodeAddress> onNodeConnectionListener, int localPort, NodeAddress... knownNodes) -
Method Summary
Modifier and Type Method Description byte[]createInitMessage()<REQUEST extends org.teamapps.protocol.message.Message, RESPONSE extends org.teamapps.protocol.message.Message>
reactor.core.publisher.Mono<RESPONSE>createServiceTask(java.lang.String serviceName, java.lang.String method, REQUEST request, org.teamapps.protocol.message.MessageDecoder<RESPONSE> responseDecoder)ClusterTopiccreateTopic(java.lang.String topicName, java.util.function.Consumer<ClusterTopicMessage> messageConsumer)java.io.FilegetFile(java.lang.String fileId)byte[]getKeepAliveMessage()RemoteClusterNodegetRandomServiceProvider(java.lang.String serviceName)voidhandleMessage(RemoteClusterNode clusterNode, byte[] bytes)booleanisServiceAvailable(java.lang.String serviceName)voidregisterService(org.teamapps.protocol.service.AbstractClusterService clusterService)voidrun()voidshutDown()Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yieldMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Constructor Details
-
TeamAppsCluster
-
TeamAppsCluster
public TeamAppsCluster(java.lang.String clusterSecret, java.lang.String localNodeId, java.util.function.Consumer<NodeAddress> onNodeConnectionListener, int localPort, NodeAddress... knownNodes) -
TeamAppsCluster
public TeamAppsCluster(java.lang.String clusterSecret, java.lang.String localNodeId, java.util.function.Consumer<NodeAddress> onNodeConnectionListener, int localPort, java.io.File tempDir, NodeAddress... knownNodes)
-
-
Method Details
-
createTopic
public ClusterTopic createTopic(java.lang.String topicName, java.util.function.Consumer<ClusterTopicMessage> messageConsumer) -
shutDown
public void shutDown() -
registerService
public void registerService(org.teamapps.protocol.service.AbstractClusterService clusterService)- Specified by:
registerServicein interfaceorg.teamapps.protocol.service.ServiceRegistry
-
isServiceAvailable
public boolean isServiceAvailable(java.lang.String serviceName)- Specified by:
isServiceAvailablein interfaceorg.teamapps.protocol.service.ServiceRegistry
-
getRandomServiceProvider
-
run
public void run()- Specified by:
runin interfacejava.lang.Runnable- Overrides:
runin classjava.lang.Thread
-
handleMessage
- Specified by:
handleMessagein interfaceClusterNodeMessageHandler
-
createServiceTask
public <REQUEST extends org.teamapps.protocol.message.Message, RESPONSE extends org.teamapps.protocol.message.Message> reactor.core.publisher.Mono<RESPONSE> createServiceTask(java.lang.String serviceName, java.lang.String method, REQUEST request, org.teamapps.protocol.message.MessageDecoder<RESPONSE> responseDecoder)- Specified by:
createServiceTaskin interfaceorg.teamapps.protocol.service.ServiceRegistry
-
createInitMessage
public byte[] createInitMessage()- Specified by:
createInitMessagein interfaceClusterNodeMessageHandler
-
getKeepAliveMessage
public byte[] getKeepAliveMessage()- Specified by:
getKeepAliveMessagein interfaceClusterNodeMessageHandler
-
getFile
public java.io.File getFile(java.lang.String fileId)- Specified by:
getFilein interfaceorg.teamapps.protocol.file.FileProvider
-