private HazelcastInstance defaultConfig(final ClusteringConfig clusteringConfig) { final Config hazelcastConfig = new Config(); hazelcastConfig.setGroupConfig( new GroupConfig(clusteringConfig.getClusterName(), clusteringConfig.getClusterPassword())); final NetworkConfig networkConfig = new NetworkConfig(); networkConfig.setPort(clusteringConfig.getMulticastPort()); final JoinConfig joinConfig = new JoinConfig(); final MulticastConfig multicastConfig = new MulticastConfig(); multicastConfig.setMulticastPort(clusteringConfig.getMulticastPort()); multicastConfig.setMulticastGroup(clusteringConfig.getMulticastGroup()); joinConfig.setMulticastConfig(multicastConfig); networkConfig.setJoin(joinConfig); hazelcastConfig.setNetworkConfig(networkConfig); return Hazelcast.newHazelcastInstance(hazelcastConfig); }
public Config getConfig() { final Config cfg = new Config(); cfg.setInstanceName(instanceName); final Properties props = new Properties(); props.put("hazelcast.rest.enabled", false); props.put("hazelcast.logging.type", "slf4j"); props.put("hazelcast.connect.all.wait.seconds", 45); props.put("hazelcast.operation.call.timeout.millis", 30000); // group configuration cfg.setGroupConfig(new GroupConfig(Constants.HC_GROUP_NAME, Constants.HC_GROUP_PASSWORD)); // network configuration initialization final NetworkConfig netCfg = new NetworkConfig(); netCfg.setPortAutoIncrement(true); netCfg.setPort(Constants.HC_PORT); // multicast final MulticastConfig mcCfg = new MulticastConfig(); mcCfg.setEnabled(false); // tcp final TcpIpConfig tcpCfg = new TcpIpConfig(); tcpCfg.addMember("127.0.0.1"); tcpCfg.setEnabled(true); // network join configuration final JoinConfig joinCfg = new JoinConfig(); joinCfg.setMulticastConfig(mcCfg); joinCfg.setTcpIpConfig(tcpCfg); netCfg.setJoin(joinCfg); // ssl netCfg.setSSLConfig(new SSLConfig().setEnabled(false)); // Adding mapstore final MapConfig mapCfg = cfg.getMapConfig(storeType); final MapStoreConfig mapStoreCfg = new MapStoreConfig(); mapStoreCfg.setImplementation(store); mapStoreCfg.setWriteDelaySeconds(1); // to load all map at same time mapStoreCfg.setInitialLoadMode(MapStoreConfig.InitialLoadMode.EAGER); mapCfg.setMapStoreConfig(mapStoreCfg); cfg.addMapConfig(mapCfg); return cfg; }
public MulticastService(Node node, MulticastSocket multicastSocket) throws Exception { this.node = node; logger = node.getLogger(MulticastService.class.getName()); Config config = node.getConfig(); this.multicastSocket = multicastSocket; sendOutput = node.getSerializationService().createObjectDataOutput(1024); datagramPacketReceive = new DatagramPacket(new byte[DATAGRAM_BUFFER_SIZE], DATAGRAM_BUFFER_SIZE); final MulticastConfig multicastConfig = config.getNetworkConfig().getJoin().getMulticastConfig(); datagramPacketSend = new DatagramPacket( new byte[0], 0, InetAddress.getByName(multicastConfig.getMulticastGroup()), multicastConfig.getMulticastPort()); running = true; }
private void initNetworkConfig( NetworkConfig networkConfig, int basePort, int portSeed, boolean multicast, int nodeCount) { networkConfig.setPortAutoIncrement(false); networkConfig.setPort(basePort + portSeed); JoinConfig join = networkConfig.getJoin(); MulticastConfig multicastConfig = join.getMulticastConfig(); multicastConfig.setEnabled(multicast); multicastConfig.setMulticastTimeoutSeconds(5); TcpIpConfig tcpIpConfig = join.getTcpIpConfig(); tcpIpConfig.setEnabled(!multicast); tcpIpConfig.setConnectionTimeoutSeconds(5); List<String> members = new ArrayList<String>(nodeCount); for (int i = 0; i < nodeCount; i++) { members.add("127.0.0.1:" + (basePort + i)); } Collections.sort(members); tcpIpConfig.setMembers(members); }
public Node(HazelcastInstanceImpl hazelcastInstance, Config config, NodeContext nodeContext) { this.hazelcastInstance = hazelcastInstance; this.threadGroup = hazelcastInstance.threadGroup; this.config = config; configClassLoader = config.getClassLoader(); this.groupProperties = new GroupProperties(config); SerializationService ss; try { ss = new SerializationServiceBuilder() .setClassLoader(configClassLoader) .setConfig(config.getSerializationConfig()) .setManagedContext(hazelcastInstance.managedContext) .setHazelcastInstance(hazelcastInstance) .build(); } catch (Exception e) { throw ExceptionUtil.rethrow(e); } serializationService = (SerializationServiceImpl) ss; systemLogService = new SystemLogService(groupProperties.SYSTEM_LOG_ENABLED.getBoolean()); final AddressPicker addressPicker = nodeContext.createAddressPicker(this); try { addressPicker.pickAddress(); } catch (Throwable e) { throw ExceptionUtil.rethrow(e); } final ServerSocketChannel serverSocketChannel = addressPicker.getServerSocketChannel(); address = addressPicker.getPublicAddress(); localMember = new MemberImpl(address, true, UuidUtil.createMemberUuid(address)); String loggingType = groupProperties.LOGGING_TYPE.getString(); loggingService = new LoggingServiceImpl( systemLogService, config.getGroupConfig().getName(), loggingType, localMember); logger = loggingService.getLogger(Node.class.getName()); initializer = NodeInitializerFactory.create(configClassLoader); try { initializer.beforeInitialize(this); } catch (Throwable e) { try { serverSocketChannel.close(); } catch (Throwable ignored) { } throw ExceptionUtil.rethrow(e); } securityContext = config.getSecurityConfig().isEnabled() ? initializer.getSecurityContext() : null; nodeEngine = new NodeEngineImpl(this); clientEngine = new ClientEngineImpl(this); connectionManager = nodeContext.createConnectionManager(this, serverSocketChannel); partitionService = new PartitionServiceImpl(this); clusterService = new ClusterServiceImpl(this); textCommandService = new TextCommandServiceImpl(this); initializer.printNodeInfo(this); buildNumber = initializer.getBuildNumber(); VersionCheck.check(this, initializer.getBuild(), initializer.getVersion()); JoinConfig join = config.getNetworkConfig().getJoin(); MulticastService mcService = null; try { if (join.getMulticastConfig().isEnabled()) { MulticastConfig multicastConfig = join.getMulticastConfig(); MulticastSocket multicastSocket = new MulticastSocket(null); multicastSocket.setReuseAddress(true); // bind to receive interface multicastSocket.bind(new InetSocketAddress(multicastConfig.getMulticastPort())); multicastSocket.setTimeToLive(multicastConfig.getMulticastTimeToLive()); try { // set the send interface final Address bindAddress = addressPicker.getBindAddress(); // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4417033 // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6402758 if (!bindAddress.getInetAddress().isLoopbackAddress()) { multicastSocket.setInterface(bindAddress.getInetAddress()); } } catch (Exception e) { logger.warning(e); } multicastSocket.setReceiveBufferSize(64 * 1024); multicastSocket.setSendBufferSize(64 * 1024); String multicastGroup = System.getProperty("hazelcast.multicast.group"); if (multicastGroup == null) { multicastGroup = multicastConfig.getMulticastGroup(); } multicastConfig.setMulticastGroup(multicastGroup); multicastSocket.joinGroup(InetAddress.getByName(multicastGroup)); multicastSocket.setSoTimeout(1000); mcService = new MulticastService(this, multicastSocket); mcService.addMulticastListener(new NodeMulticastListener(this)); } } catch (Exception e) { logger.severe(e); } this.multicastService = mcService; initializeListeners(config); joiner = nodeContext.createJoiner(this); }