@ParametersAreNonnullByDefault @Internal public class HazelcastClusterManager extends Object implements ClusterManager, com.atlassian.beehive.ClusterLockService, com.google.common.base.Supplier<com.hazelcast.core.HazelcastInstance>, com.atlassian.util.concurrent.Supplier<com.hazelcast.core.HazelcastInstance>
ClusterManager
Constructor and Description |
---|
HazelcastClusterManager(com.atlassian.config.ApplicationConfig applicationConfig,
ClassLoader classLoader,
String configResourceName,
SynchronizationManager synchronizationManager,
com.atlassian.hazelcast.serialization.OsgiSafeStreamSerializer osgiSafeStreamSerializer,
com.hazelcast.core.OutOfMemoryHandler outOfMemoryHandler) |
Modifier and Type | Method and Description |
---|---|
void |
configure(ClusterConfig clusterConfig)
Set a new cluster configuration.
|
com.hazelcast.core.HazelcastInstance |
get() |
Collection<ClusterNodeInformation> |
getAllNodesInformation() |
ClusteredLock |
getClusteredLock(String key)
Get a distributed lock -- getting the lock does *not* imply that it has been acquired.
|
ClusterInformation |
getClusterInformation()
Get information about the running cluster.
|
ClusterInvariants |
getClusterInvariants()
Get all attributes of the server that must be consistent between cluster nodes.
|
<T> com.atlassian.core.task.FifoBuffer<T> |
getFifoBuffer(String name)
Get a distributed FIFO buffer
|
Lock |
getLock(String name)
Get a lock -- getting the lock does *not* imply that it has been acquired.
|
com.atlassian.confluence.cluster.hazelcast.DualLock |
getLockForName(String key) |
Map<Integer,NodeStatus> |
getNodeStatuses()
Deprecated.
|
Map<ClusterNodeInformation,NodeStatus> |
getNodeStatusMap()
Gets status information from all members of the cluster.
|
int |
getPermittedClusterNodes() |
Serializable |
getPublishedObject(String key)
Deprecated.
|
ClusterNodeInformation |
getThisNodeInformation()
Get the identity of this node in the cluster.
|
boolean |
isClustered() |
boolean |
isClusterSupported()
Check whether this Confluence distribution is capable of running in a cluster.
|
boolean |
isConfigured() |
void |
publishEvent(ConfluenceEvent event)
Publish an event as a ClusterEventWrapper to other nodes
|
void |
publishEventImmediately(ConfluenceEvent event)
Publish immediately, an event as a ClusterEventWrapper to other nodes
|
void |
publishObject(String key,
Serializable object)
Deprecated.
|
void |
reconfigure(ClusterConfig config)
Set a new cluster configuration and cycle the service
|
InetAddress |
resolveName(String name) |
void |
startCluster()
Start the clustering service
|
void |
stopCluster()
Stop the clustering service
|
<T> CompletionStage<T> |
submitToKeyOwner(Callable<T> task,
String serviceName,
Object key)
Submit a task to be executed by a service given by its name on one node of the cluster that own a given key.
|
public HazelcastClusterManager(com.atlassian.config.ApplicationConfig applicationConfig, ClassLoader classLoader, String configResourceName, SynchronizationManager synchronizationManager, com.atlassian.hazelcast.serialization.OsgiSafeStreamSerializer osgiSafeStreamSerializer, com.hazelcast.core.OutOfMemoryHandler outOfMemoryHandler)
public InetAddress resolveName(String name)
resolveName
in interface NameResolver
public boolean isClusterSupported()
ClusterManager
ClusterManager.isClustered()
in that it will return true if the code to support clustering is present,
even if this instance does not have a clustered license or a current clustering configuration.isClusterSupported
in interface ClusterManager
@Deprecated public void publishObject(String key, Serializable object)
ClusterManager
publishObject
in interface ClusterManager
@Deprecated public Serializable getPublishedObject(String key)
ClusterManager
getPublishedObject
in interface ClusterManager
public boolean isClustered()
isClustered
in interface ClusterManager
public int getPermittedClusterNodes()
getPermittedClusterNodes
in interface ClusterManager
Integer.MAX_VALUE
, otherwise
returns 0.public ClusterInformation getClusterInformation()
ClusterManager
getClusterInformation
in interface ClusterManager
public <T> com.atlassian.core.task.FifoBuffer<T> getFifoBuffer(String name)
ClusterManager
getFifoBuffer
in interface ClusterManager
public void publishEvent(ConfluenceEvent event)
ClusterManager
This waits for any current transaction to be committed successfully before scheduling the event for publishing.
publishEvent
in interface ClusterManager
public void publishEventImmediately(ConfluenceEvent event)
ClusterManager
This is done immediately regardless of the state of any current transactions.
publishEventImmediately
in interface ClusterManager
public ClusterNodeInformation getThisNodeInformation()
ClusterManager
Get the identity of this node in the cluster. ClusterNodeInformation implements equals().
getThisNodeInformation
in interface ClusterManager
public Collection<ClusterNodeInformation> getAllNodesInformation()
getAllNodesInformation
in interface ClusterManager
public void configure(ClusterConfig clusterConfig)
ClusterManager
configure
in interface ClusterManager
public boolean isConfigured()
isConfigured
in interface ClusterManager
ClusterManager.configure(ClusterConfig)
has been called with a
valid configuration, otherwise false.public void reconfigure(ClusterConfig config)
ClusterManager
reconfigure
in interface ClusterManager
@PreDestroy public void stopCluster()
ClusterManager
stopCluster
in interface ClusterManager
public void startCluster()
ClusterManager
startCluster
in interface ClusterManager
@Deprecated public Map<Integer,NodeStatus> getNodeStatuses()
getNodeStatuses
in interface ClusterManager
public Map<ClusterNodeInformation,NodeStatus> getNodeStatusMap()
getNodeStatusMap
in interface ClusterManager
public ClusterInvariants getClusterInvariants() throws ClusterException
ClusterManager
getClusterInvariants
in interface ClusterManager
ClusterException
- if the invariants can not be gathered for some reasonpublic com.atlassian.confluence.cluster.hazelcast.DualLock getLockForName(@Nonnull String key)
getLockForName
in interface com.atlassian.beehive.ClusterLockService
public ClusteredLock getClusteredLock(String key)
ClusterManager
Lock.tryLock()
or Lock.lock()
on the returned object to
acquire the lock.getClusteredLock
in interface ClusterManager
public Lock getLock(String name)
LockFactory
Lock.tryLock()
or Lock.lock()
on the returned object to
acquire the lock.getLock
in interface LockFactory
public com.hazelcast.core.HazelcastInstance get()
get
in interface com.atlassian.util.concurrent.Supplier<com.hazelcast.core.HazelcastInstance>
public <T> CompletionStage<T> submitToKeyOwner(Callable<T> task, String serviceName, Object key)
ClusterManager
submitToKeyOwner
in interface ClusterManager
task
- task to be executed on the node that owns the provided key, it must be Serializable
serviceName
- name of service used to execute the taskkey
- key used to determined which node is going to execute the task, it must be Serializable
Copyright © 2003–2018 Atlassian. All rights reserved.