Lannister’s clustering features heavily rely on Hazelcast and follows its guidance strictly, hence the documentation focused on general clustering characteristics of Lannister and configuration used. For detailed information and fine tuning, refer Hazelcast Reference Manual.
The diagram depicts characteristics described in the above section. 3 Lannister nodes works in a cluster and a MQTT client access one of the nodes. The client accesses all data in the cluster but it doesn’t care where the data is in thanks to logical view. Behind the scene, the node access data to local or remote master and update backup at each access.
Every nodes works in its own single process(JVM) and has no dependency on other process.
(Dynamic Joining is omitted in the diagram).
<group> <name>LANNISTER</name> <password>LANNISTER_HAZELCAST_GROUP_PASSWORD</password> </group> <properties> <property name="hazelcast.logging.type">slf4j</property> <property name="hazelcast.shutdownhook.enabled">false</property> <property name="hazelcast.max.no.heartbeat.seconds">15</property> <property name="hazelcast.restart.on.max.idle">true</property> <property name="hazelcast.client.heartbeat.interval">5000</property> <property name="hazelcast.client.heartbeat.timeout">30000</property> <property name="hazelcast.client.max.no.heartbeat.seconds">15</property> </properties> <network> <port auto-increment="true" port-count="${hazelcast.port-count}">${hazelcast.port}</port> <join> <multicast enabled="${hazelcast.multicast.enabled}"> <multicast-group>${hazelcast.multicast-group}</multicast-group> <multicast-port>${hazelcast.multicast-port}</multicast-port> </multicast> <tcp-ip enabled="${hazelcast.tcp-ip.enabled}"> <member>${hazelcast.member1}</member> <member>${hazelcast.member2}</member> </tcp-ip> </join> </network>
For more information, refer Understanding Configuration