@Component(value="cuba_ClusterManager") public class ClusterManager extends java.lang.Object implements ClusterManagerAPI
Modifier and Type | Class and Description |
---|---|
protected class |
ClusterManager.ClusterReceiver |
protected static class |
ClusterManager.MessageStat |
protected class |
ClusterManager.SendMessageRunnable |
Modifier and Type | Field and Description |
---|---|
protected org.jgroups.JChannel |
channel |
protected ClusterConfig |
clusterConfig |
protected org.jgroups.View |
currentView |
protected java.util.concurrent.ThreadPoolExecutor |
executor |
protected java.lang.ThreadLocal<java.lang.Boolean> |
forceSyncSending |
protected GlobalConfig |
globalConfig |
protected java.util.Map<java.lang.String,ClusterListener> |
listeners |
protected java.util.Map<java.lang.String,ClusterManager.MessageStat> |
messagesStat |
protected Resources |
resources |
protected static java.lang.String |
STATE_MAGIC |
NAME
Constructor and Description |
---|
ClusterManager() |
Modifier and Type | Method and Description |
---|---|
void |
addListener(java.lang.Class messageClass,
ClusterListener listener)
Subscribe to messages from other cluster nodes.
|
protected void |
applicationInitialized() |
protected void |
applicationStopped() |
int |
getActiveThreadsCount() |
org.jgroups.JChannel |
getChannel() |
protected java.lang.String |
getClusterName() |
java.lang.String |
getCurrentView()
Return a string representation of a set of active nodes in the cluster.
|
protected java.lang.String |
getMBeanDomain() |
int |
getMessagesCount() |
long |
getReceivedBytes(java.lang.String className)
Get received bytes for specified
className |
long |
getReceivedMessages(java.lang.String className)
Get received messages count for specified
className |
long |
getSentBytes(java.lang.String className)
Get sent bytes for specified
className |
long |
getSentMessages(java.lang.String className)
Get sent messages count for specified
className |
boolean |
getSyncSendingForCurrentThread() |
protected void |
init() |
protected void |
initJGroupsProperties() |
protected void |
initLogger() |
protected void |
internalSend(java.io.Serializable message,
boolean sync) |
boolean |
isMaster()
Inform whether the current node is currently the master node in the cluster.
|
boolean |
isStarted() |
java.lang.String |
printMessagesStat()
Sent/received messages statistics
|
java.lang.String |
printSharedStateStat()
Shared state statistics
|
protected void |
registerJmxBeans() |
void |
removeListener(java.lang.Class messageClass,
ClusterListener listener)
Unsubscribe from messages from other cluster nodes.
|
void |
send(java.io.Serializable message)
Send a message to all active cluster nodes.
|
void |
sendSync(java.io.Serializable message)
Send a message to all active cluster nodes synchronously.
|
void |
setSyncSendingForCurrentThread(boolean sync)
Forces synchronous sending for the current thread.
|
void |
start()
Join a cluster.
|
void |
stop()
Leave the cluster.
|
protected void |
unregisterJmxBeans() |
protected java.util.Map<java.lang.String,ClusterListener> listeners
protected org.jgroups.JChannel channel
protected org.jgroups.View currentView
protected java.util.concurrent.ThreadPoolExecutor executor
@Inject protected Resources resources
@Inject protected GlobalConfig globalConfig
@Inject protected ClusterConfig clusterConfig
protected java.lang.ThreadLocal<java.lang.Boolean> forceSyncSending
protected java.util.Map<java.lang.String,ClusterManager.MessageStat> messagesStat
protected static final java.lang.String STATE_MAGIC
public org.jgroups.JChannel getChannel()
@PostConstruct protected void init()
@EventListener(value=AppContextInitializedEvent.class) @Order(value=900) protected void applicationInitialized()
@EventListener(value=AppContextStoppedEvent.class) protected void applicationStopped()
public void send(java.io.Serializable message)
ClusterManagerAPI
send
in interface ClusterManagerAPI
message
- serializable messagepublic void sendSync(java.io.Serializable message)
ClusterManagerAPI
sendSync
in interface ClusterManagerAPI
message
- serializable messageprotected void internalSend(java.io.Serializable message, boolean sync)
public boolean getSyncSendingForCurrentThread()
getSyncSendingForCurrentThread
in interface ClusterManagerAPI
ClusterManagerAPI.setSyncSendingForCurrentThread(boolean)
public void setSyncSendingForCurrentThread(boolean sync)
ClusterManagerAPI
ClusterManagerAPI.send(Serializable)
method will
send the message in the current thread and block until returning from the clustering implementation.setSyncSendingForCurrentThread
in interface ClusterManagerAPI
sync
- true to force synchronous sendingpublic void addListener(java.lang.Class messageClass, ClusterListener listener)
ClusterManagerAPI
addListener
in interface ClusterManagerAPI
messageClass
- the class of messages we want to be notifiedlistener
- listener instancepublic void removeListener(java.lang.Class messageClass, ClusterListener listener)
ClusterManagerAPI
removeListener
in interface ClusterManagerAPI
messageClass
- the class of messages we don't want to be notified anymorelistener
- listener instancepublic void start()
ClusterManagerAPI
start
in interface ClusterManagerAPI
protected void initLogger()
protected void initJGroupsProperties()
protected void registerJmxBeans()
protected void unregisterJmxBeans()
protected java.lang.String getClusterName()
protected java.lang.String getMBeanDomain()
public int getActiveThreadsCount()
getActiveThreadsCount
in interface ClusterManagerAPI
public int getMessagesCount()
getMessagesCount
in interface ClusterManagerAPI
public void stop()
ClusterManagerAPI
stop
in interface ClusterManagerAPI
public boolean isStarted()
isStarted
in interface ClusterManagerAPI
public boolean isMaster()
ClusterManagerAPI
isMaster
in interface ClusterManagerAPI
public java.lang.String getCurrentView()
ClusterManagerAPI
getCurrentView
in interface ClusterManagerAPI
public java.lang.String printSharedStateStat()
ClusterManagerAPI
printSharedStateStat
in interface ClusterManagerAPI
public java.lang.String printMessagesStat()
ClusterManagerAPI
printMessagesStat
in interface ClusterManagerAPI
public long getSentMessages(java.lang.String className)
ClusterManagerAPI
className
getSentMessages
in interface ClusterManagerAPI
public long getSentBytes(java.lang.String className)
ClusterManagerAPI
className
getSentBytes
in interface ClusterManagerAPI
public long getReceivedMessages(java.lang.String className)
ClusterManagerAPI
className
getReceivedMessages
in interface ClusterManagerAPI
public long getReceivedBytes(java.lang.String className)
ClusterManagerAPI
className
getReceivedBytes
in interface ClusterManagerAPI