Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The current implementation uses Hazelcast for resolving cluster nodes. You can find the detailed Hazelcast configuration description on its the Hazelcast site, here: Hazelcast Configuration.

...

In addition to Hazelcast settings, in HazelcastClusterManager the following can be set in HazelcastClusterManager:

  • timeoutLeaderShutdown - timeout for waiting for the leader shutdown signal (see [Appointment of new leader]). The default timeout is 90 seconds.

...

  • com.epam.fej.cluster.reelectOnLeaderFailure - the this 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 value 'true value ' and a new leader will be elected.
Info

Before the leader has been re-elected, the cluster must contain a member count of greater than or equal members count, than specified at to the amount specified by the quorum size property.

...

For configuring the replication service, 2 two configuration files are used:

...

  • fej.replication.leader.sync
    Default (initial) replication mode (synchronous or asynchronous)
    Default: false

  • fej.replication.leader.async.timeout
    Default (initial) timeout for synchronous replication in milliseconds. Process could can be blocked for this timeout till receive until it receives acknowledgment from another side.
    Default: 0 milliseconds (async mode)

  • fej.replication.leader.receive.buffer.size
    The size of the leader incoming ring buffer must . Must be to the power of 2.+
    Default: 512 bytes

  • fej.replication.leader.receive.wait.strategy
    The wait strategy to use for the leader incoming ring buffer (see Disruptor WaitStrategy).
    Default: com.lmax.disruptor.BlockingWaitStrategy

  • fej.replication.leader.send.buffer.size
    The size of the leader outgoing ring buffer, must . Must be to the power of 2.
    Default: 2048 bytes

  • fej.replication.leader.send.wait.strategy
    The wait strategy to use used for the leader outgoing ring buffer (see Disruptor WaitStrategy).
    Default: com.lmax.disruptor.BlockingWaitStrategy

  • fej.replication.backup.receive.buffer.size
    The size of the backup incoming ring buffer, must . Must be to the power of 2.
    Default: 1024 bytes

  • fej.replication.backup.receive.wait.strategy
    The wait strategy to use used for the backup incoming ring buffer (see Disruptor WaitStrategy).
    Default: com.lmax.disruptor.BlockingWaitStrategy

  • fej.replication.backup.send.buffer.size
    The size of the backup outgoing ring buffer, must . Must be to the power of 2.
    Default: 512

  • fej.replication.backup.send.wait.strategy
    The wait strategy to use used for the backup outgoing ring buffer (see Disruptor WaitStrategy).
    Default: com.lmax.disruptor.BlockingWaitStrategy

  • fej.replication.aeron.mediadriver.embedded
    Use embedded aeron media driver (see Aeron Embedded Media Driver).
    Default: true

  • fej.replication.aeron.idle.strategy
    Provides an IdleStrategy for the thread responsible for communicating with the Aeron Media Driver (see Aeron Idle Strategies).
    Default: uk.co.real_logic.agrona.concurrent.BackoffIdleStrategy

...

If the default multicast configuration is not working here are , some common causes :are discussed below.

Multicast is not enabled on the machine

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.

Using

...

the wrong network interface

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:

Code Block
languagexml
<interfaces enabled="true">
  <interface>192.168.1.20</interface>
</interfaces>

...