Hazelcast: как сократить время запуска?

У меня очень простая установка всего из двух узлов с использованием 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. Возможно ли это каким-то образом?

Если нет, могу ли я как-то запустить узел, только загружая данные из БД и затем присоединяясь к кластеру?


person Karussell    schedule 25.08.2014    source источник


Ответы (1)


Мое текущее решение, вероятно, имеет наибольший смысл: отделить службу hazelcast от моей собственной службы и использовать собственный Java-клиент. При этом запуск меньше 2сек.

person Karussell    schedule 27.08.2014