У меня очень простая установка всего из двух узлов с использованием hazelcast 3.2.5. Время запуска первого узла составляет ~3 секунды, а второй узел запускается примерно через 10 секунд, используя только getTcpIpConfig. Я попытался улучшить время запуска с помощью
System.setProperty("hazelcast.local.localAddress", "127.0.0.1");
как было предложено здесь, но ничего не улучшилось. Затем я попробовал:
System.setProperty(GroupProperties.PROP_WAIT_SECONDS_BEFORE_JOIN, "1");
и это сокращает время запуска 2-го узла до 6 секунд.
Вот моя конфигурация для обоих узлов:
Config cfg = new Config();
NetworkConfig nCfg = cfg.getNetworkConfig();
nCfg.getJoin().getMulticastConfig().
setEnabled(false);
nCfg.getJoin().getAwsConfig().
setEnabled(false);
nCfg.getJoin().getTcpIpConfig().
setConnectionTimeoutSeconds(5).
addMember("127.0.0.1:5701,127.0.0.1:5702").
setEnabled(true);
Больше всего времени тратится на SocketConnector (0,5 с), TcpIpConnectionManager (2,5 с) и ClusterService (2 с) и в других местах.
Мне бы хотелось, чтобы время запуска в обоих случаях было ниже 3. Возможно ли это каким-то образом?
Если нет, могу ли я как-то запустить узел, только загружая данные из БД и затем присоединяясь к кластеру?