Hazelcast:如何减少启动时间?

时间:2014-08-25 14:40:39

标签: hazelcast

我使用hazelcast 3.2.5进行了非常简单的两个节点设置。第一个节点的启动时间约为3秒,第二个节点仅使用getTcpIpConfig大约10秒启动。我试图通过

来改善启动时间
System.setProperty("hazelcast.local.localAddress", "127.0.0.1");

建议here但没有任何改进。然后我试了一下:

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.5s),TcpIpConnectionManager(2.5s)和ClusterService(2s)以及其他地方。

我希望两个启动时间都低于3.这有可能吗?

如果没有,我可以以某种方式启动节点,只加载来自数据库的数据并在之后加入集群吗?

1 个答案:

答案 0 :(得分:2)

我当前的解决方案可能最有意义:将hazelcast服务与我自己的服务分开并使用native Java client。这个启动时间低于2秒。