The current implementation uses Hazelcast for resolving cluster nodes. You can find the detailed Hazelcast configuration description on its site: Hazelcast Configuration.
If you want to override the default configuration you can:
cluster.xmlfile with the Hazelcast configuration on your classpath;
com.hazelcast.config.Configmanually and pass it into
Config hazelcastConfig = new Config(); // Now set some stuff on the config (omitted) ClusterManager mgr = new HazelcastClusterManager(hazelcastConfig);
You can specify a name for the current node with the
If the quorum size is not specified in the configuration, then the first launched node will be selected as a leader (primary) node.
In addition to Hazelcast settings, in
HazelcastClusterManager can be set:
timeoutLeaderShutdown- timeout for waiting for the leader shutdown signal (see [Appointment of new leader]). The default timeout is 90 seconds.
Also, additional properties can be placed in the Advanced Configuration Properties. You can find a detailed description in the Hazelcast documentation.
com.epam.fej.cluster.reelectOnLeaderFailure- the property allows running the leader election process if the previous leader has gone. By default, this property is not specified, which means it has the default
truevalue and a new leader will be elected.
Before the leader has been re-elected, the cluster must contain a greater or equal members count, than specified at the quorum size property.
For configuring the replication service, 2 configuration files are used:
The Replication Service configuration is defined in the replication.properties file.
Default (initial) replication mode (synchronous or asynchronous)
Default (initial) timeout for synchronous replication in milliseconds. Process could be blocked for this timeout till receive acknowledgment from another side.
Default: 0 milliseconds (async mode)
The size of the leader incoming ring buffer must be power of 2.+ Default: 512 bytes
The wait strategy to use for the leader incoming ring buffer (see Disruptor WaitStrategy).
The size of the leader outgoing ring buffer, must be power of 2.
Default: 2048 bytes
The wait strategy to use for the leader outgoing ring buffer (see Disruptor WaitStrategy).
The size of the backup incoming ring buffer, must be power of 2.
Default: 1024 bytes
The wait strategy to use for the backup incoming ring buffer (see Disruptor WaitStrategy).
The size of the backup outgoing ring buffer, must be power of 2.
The wait strategy to use for the backup outgoing ring buffer (see Disruptor WaitStrategy).
Use embedded aeron media driver (see Aeron Embedded Media Driver).
Provides an IdleStrategy for the thread responsible for communicating with the Aeron Media Driver (see Aeron Idle Strategies).
Please find the description of the Aeron configuration options at its official page.
If the default multicast configuration is not working here are some common causes:
It is quite common in particular on OSX machines for multicast to be disabled by default. Please google for the answer on how to enable that.
If you have more than one network interface on your machine (and this can also be the case if you are running VPN software on your machine), then Hazelcast may be using the wrong one.
To tell Hazelcast to use a specific interface, you can provide the IP address of the interface in the
interfaces element of the configuration. Make sure you set the
enabled attribute to
true. For example:
<interfaces enabled="true"> <interface>192.168.1.20</interface> </interfaces>
In some cases, you may not be able to use multicast as it might not be available in your environment. In that case, you should configure another transport, for example, TCP to use TCP sockets, or AWS when running on Amazon EC2.
For more information on available Hazelcast transports and how to configure them, please consult the Hazelcast Configuration.