Class AdvancedNetworkConfig

java.lang.Object
com.hazelcast.config.AdvancedNetworkConfig

public class AdvancedNetworkConfig extends Object
Similar to NetworkConfig with the additional ability to define multiple endpoints, each with its own separate protocol/security and/or socket properties. When enabled, this configuration takes precedence over NetworkConfig. Advanced networking is disabled by default.
Since:
3.12
See Also:
  • Constructor Details

    • AdvancedNetworkConfig

      public AdvancedNetworkConfig()
      Creates a disabled advanced network configuration with a default MEMBER server socket endpoint.
  • Method Details

    • getMemberAddressProviderConfig

      public MemberAddressProviderConfig getMemberAddressProviderConfig()
      Returns the configuration for the provider of the member's bind and public addresses.
      Returns:
      the member address provider configuration
    • setMemberAddressProviderConfig

      public AdvancedNetworkConfig setMemberAddressProviderConfig(MemberAddressProviderConfig memberAddressProviderConfig)
      Sets the configuration for the provider of the member's bind and public addresses.
      Parameters:
      memberAddressProviderConfig - the member address provider configuration
      Returns:
      this object for fluent chaining
    • addWanEndpointConfig

      public AdvancedNetworkConfig addWanEndpointConfig(EndpointConfig endpointConfig)
      Adds the given WAN EndpointConfig to the endpoints configuration. When the argument is an EndpointConfig, then it configures network settings for the client side of outgoing network connections opened from that member. When the provided endpointconfig is a ServerSocketEndpointConfig, then the HazelcastInstance will additionally listen on the configured port for incoming WAN connections.

      Example of how to configure Hazelcast instances for active-passive WAN replication:

      • On the passive side, configure the Hazelcast instance to listen on port 8765 with SSL enabled:
        
         Config config = new Config();
         ServerSocketEndpointConfig wanServerSocketConfig = new ServerSocketEndpointConfig().setPort(8765);
         // setup SSL config etc
         wanServerSocketConfig.getSSLConfig()
                                  .setEnabled(true)
                                  .setFactoryImplementation(new OpenSSLEngineFactory());
         config.getAdvancedNetworkConfig()
                   .setEnabled(true)
                   .addWanEndpointConfig(wanServerSocketConfig);
        
         HazelcastInstance passive = Hazelcast.newHazelcastInstance(config);
         
         
      • On the active side, configure the client-side of outgoing connections with SSL:
        
         Config config = new Config();
         EndpointConfig wanEndpointConfig = new EndpointConfig().setName("wan-tokyo");
         wanEndpointConfig.getSSLConfig()
                              .setEnabled(true)
                              .setFactoryImplementation(new OpenSSLEngineFactory());
         config.getAdvancedNetworkConfig()
               .setEnabled(true)
               .addWanEndpointConfig(wanEndpointConfig);
         // setup WAN replication
         WanReplicationConfig wanReplicationConfig = new WanReplicationConfig();
         // WAN publisher config references endpoint config by name
         WanBatchReplicationPublisherConfig publisherConfig = new WanBatchReplicationPublisherConfig()
                         .setEndpoint("wan-tokyo")
                         .setTargetEndpoints("tokyo.hazelcast.com:8765");
         wanReplicationConfig.addWanBatchReplicationPublisherConfig(publisherConfig);
         config.addWanReplicationConfig(wanReplicationConfig);
        
         HazelcastInstance active = Hazelcast.newHazelcastInstance(config);
         
         
      Parameters:
      endpointConfig - the endpoint configuration to add
      Returns:
      this object for fluent chaining
    • setMemberEndpointConfig

      public AdvancedNetworkConfig setMemberEndpointConfig(ServerSocketEndpointConfig serverSocketEndpointConfig)
      Sets the server socket endpoint config for MEMBER protocol. If another ServerSocketEndpointConfig was previously set, it will be replaced. When starting a Hazelcast instance with AdvancedNetworkConfig enabled, its configuration must include one ServerSocketEndpointConfig for protocol type MEMBER.
      Parameters:
      serverSocketEndpointConfig - the server socket endpoint configuration
      Returns:
      this object for fluent chaining
    • setClientEndpointConfig

      public AdvancedNetworkConfig setClientEndpointConfig(ServerSocketEndpointConfig serverSocketEndpointConfig)
      Sets the server socket endpoint config for CLIENT protocol. If another ServerSocketEndpointConfig was previously set, it will be replaced. When starting a Hazelcast instance with AdvancedNetworkConfig enabled, its configuration may include at most one ServerSocketEndpointConfig for protocol type CLIENT.
      Parameters:
      serverSocketEndpointConfig - the server socket endpoint configuration
      Returns:
      this object for fluent chaining
    • setRestEndpointConfig

      @Deprecated(since="5.5", forRemoval=true) public AdvancedNetworkConfig setRestEndpointConfig(RestServerEndpointConfig restServerEndpointConfig)
      Deprecated, for removal: This API element is subject to removal in a future version.
      use RestConfig instead. Will be removed at 6.0.
      Sets the server socket endpoint config for REST protocol. If another ServerSocketEndpointConfig was previously set, it will be replaced. When starting a Hazelcast instance with AdvancedNetworkConfig enabled, its configuration may include at most one ServerSocketEndpointConfig for protocol type REST.
      Parameters:
      restServerEndpointConfig - the server socket endpoint configuration
      Returns:
      this object for fluent chaining
      See Also:
    • setMemcacheEndpointConfig

      public AdvancedNetworkConfig setMemcacheEndpointConfig(ServerSocketEndpointConfig memcacheEndpointConfig)
      Sets the server socket endpoint config for memcache protocol. If another ServerSocketEndpointConfig was previously set, it will be replaced.
      Parameters:
      memcacheEndpointConfig - the server socket endpoint configuration
      Returns:
      this object for fluent chaining
    • getEndpointConfigs

      public Map<com.hazelcast.instance.EndpointQualifier,EndpointConfig> getEndpointConfigs()
      Returns the endpoint configurations keyed by their EndpointQualifier.
      Returns:
      the endpoint configurations
    • setEndpointConfigs

      public AdvancedNetworkConfig setEndpointConfigs(Map<com.hazelcast.instance.EndpointQualifier,EndpointConfig> endpointConfigs)
      Replaces all endpoint configurations with the entries in the given map. Each endpoint's protocol type is set to the type of its corresponding EndpointQualifier. The endpoint configurations themselves are not copied.
      Parameters:
      endpointConfigs - the endpoint configurations keyed by their qualifiers
      Returns:
      this object for fluent chaining
      Throws:
      InvalidConfigurationException - if the number of endpoints for a protocol exceeds its allowed server socket count
    • isEnabled

      public boolean isEnabled()
      Returns whether advanced networking is enabled.
      Returns:
      true if advanced networking is enabled, false otherwise
    • setEnabled

      public AdvancedNetworkConfig setEnabled(boolean enabled)
      Enables or disables advanced networking. When enabled, this configuration takes precedence over Config.getNetworkConfig().
      Parameters:
      enabled - true to enable advanced networking, false to disable it
      Returns:
      this object for fluent chaining
    • getJoin

      public JoinConfig getJoin()
      Returns the JoinConfig.
      Returns:
      the join
    • setJoin

      public AdvancedNetworkConfig setJoin(JoinConfig join)
      Sets the configuration that defines how this member discovers and joins the cluster.
      Parameters:
      join - the join configuration
      Returns:
      this object for fluent chaining
    • setIcmpFailureDetectorConfig

      public AdvancedNetworkConfig setIcmpFailureDetectorConfig(IcmpFailureDetectorConfig icmpFailureDetectorConfig)
      Sets the IcmpFailureDetectorConfig. The value can be null if this detector isn't needed.
      Parameters:
      icmpFailureDetectorConfig - the IcmpFailureDetectorConfig to set
      Returns:
      this object for fluent chaining
      See Also:
    • getIcmpFailureDetectorConfig

      public IcmpFailureDetectorConfig getIcmpFailureDetectorConfig()
      Returns the current IcmpFailureDetectorConfig. It is possible that null is returned if no IcmpFailureDetectorConfig has been set.
      Returns:
      the IcmpFailureDetectorConfig
      See Also:
    • getRestEndpointConfig

      public RestServerEndpointConfig getRestEndpointConfig()
      Returns the server socket endpoint configuration for the REST protocol.
      Returns:
      the REST endpoint configuration, or null if none has been configured
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object