@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>, 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,
io.micrometer.core.instrument.MeterRegistry micrometerRegistry,
MBeanServer mbeanServer) |
Modifier and Type | Method and Description |
---|---|
void |
configure(ClusterConfig clusterConfig)
Set a new cluster configuration.
|
protected com.hazelcast.core.HazelcastInstance |
createHazelcastInstance() |
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.
|
ClusterMembershipCriteria |
getClusterMembershipCriteria()
Get all attributes of the server that must be used as criteria when determining
whether a new node can join this cluster.
|
long |
getClusterUptime()
Gets the amount of time that the cluster has been running.
|
<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(@NonNull String key) |
Map<Integer,NodeStatus> |
getNodeStatuses()
Deprecated.
|
Map<ClusterNodeInformation,NodeStatus> |
getNodeStatusMap()
Gets status information from all members of the cluster.
|
Map<ClusterNodeInformation,CompletionStage<NodeStatus>> |
getNodeStatusMapAsync()
Gets
CompletionStage of status information from all members of the cluster. |
String |
getSharedSecret()
Get the value of config property
confluence.cluster.authentication.secret from confluence.cfg.xml |
ClusterNodeInformation |
getThisNodeInformation()
Get the identity of this node in the cluster.
|
void |
initOutOfmemoryhandler() |
boolean |
isClustered() |
boolean |
isClusterSupported()
Check whether this Confluence distribution is capable of running in a cluster.
|
boolean |
isConfigured() |
boolean |
isNodeAuthEnabled()
Get the value of config property
confluence.cluster.authentication.enabled from confluence.cfg.xml |
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 |
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, io.micrometer.core.instrument.MeterRegistry micrometerRegistry, MBeanServer mbeanServer)
@PostConstruct public void initOutOfmemoryhandler()
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
public long getClusterUptime()
ClusterManager
getClusterUptime
in interface ClusterManager
public boolean isClustered()
isClustered
in interface ClusterManager
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
protected com.hazelcast.core.HazelcastInstance createHazelcastInstance()
@Deprecated public Map<Integer,NodeStatus> getNodeStatuses()
getNodeStatuses
in interface ClusterManager
public Map<ClusterNodeInformation,NodeStatus> getNodeStatusMap()
getNodeStatusMap
in interface ClusterManager
public Map<ClusterNodeInformation,CompletionStage<NodeStatus>> getNodeStatusMapAsync()
CompletionStage
of status information from all members of the cluster.getNodeStatusMapAsync
in interface ClusterManager
public ClusterMembershipCriteria getClusterMembershipCriteria() throws ClusterException
ClusterManager
getClusterMembershipCriteria
in interface ClusterManager
ClusterException
- if the criteria cannot be gathered for some reasonpublic 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()
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
public String getSharedSecret()
confluence.cluster.authentication.secret
from confluence.cfg.xmlpublic boolean isNodeAuthEnabled()
confluence.cluster.authentication.enabled
from confluence.cfg.xmlCopyright © 2003–2023 Atlassian. All rights reserved.
View cookie preferences