Class ClientNetworkConfig

java.lang.Object
com.hazelcast.client.config.ClientNetworkConfig

public class ClientNetworkConfig extends Object
Contains configuration parameters for client network related behaviour
  • Constructor Details

    • ClientNetworkConfig

      public ClientNetworkConfig()
    • ClientNetworkConfig

      public ClientNetworkConfig(ClientNetworkConfig networkConfig)
  • Method Details

    • getDiscoveryConfig

      public DiscoveryConfig getDiscoveryConfig()
      Returns the configuration of the Hazelcast Discovery SPI and configured discovery providers
      Returns:
      Discovery Provider SPI configuration
    • setDiscoveryConfig

      public ClientNetworkConfig setDiscoveryConfig(DiscoveryConfig discoveryConfig)
      Defines the Discovery Provider SPI configuration
      Parameters:
      discoveryConfig - the Discovery Provider SPI configuration
      Returns:
      this configuration
      Throws:
      IllegalArgumentException - if discoveryConfig is null
    • getAutoDetectionConfig

      public AutoDetectionConfig getAutoDetectionConfig()
      Returns the configuration of the Auto Detection discovery.
      Returns:
      Configuration of Auto Detection discovery
    • isAutoDetectionEnabled

      public boolean isAutoDetectionEnabled()
      Any other connect configuration takes precedence over auto-discovery, so auto-discovery is enabled only when no other strategy is enabled.
      Returns:
      true if auto-detection is enabled
    • setAutoDetectionConfig

      public ClientNetworkConfig setAutoDetectionConfig(AutoDetectionConfig autoDetectionConfig)
      Defines the Auto Detection configuration.
      Parameters:
      autoDetectionConfig - Auto Detection configuration
      Returns:
      this configuration
      Throws:
      IllegalArgumentException - if autoDetectionConfig is null
    • isSmartRouting

      public boolean isSmartRouting()
      See setSmartRouting(boolean) for details
      Returns:
      true if client is smart
    • setSmartRouting

      public ClientNetworkConfig setSmartRouting(boolean smartRouting)
      If true, client will route the key-based operations to owner of the key on best-effort basis. Note that it uses a cached version of PartitionService.getPartitions() and doesn't guarantee that the operation will always be executed on the owner. The cached table is updated every 10 seconds.

      If smartRouting == false, all operations will be routed to single member. Operations will need two hops if the chosen member is not owner of the key. Client will have only single open connection. Useful, if there are many clients and we want to avoid each of them connecting to each member.

      Default value is true.

      Parameters:
      smartRouting - true if smart routing should be enabled.
      Returns:
      configured ClientNetworkConfig for chaining
    • getSocketInterceptorConfig

      public SocketInterceptorConfig getSocketInterceptorConfig()
      Returns:
      socket interceptor config that will be called with the Socket, each time client creates a connection to any Member.
    • setSocketInterceptorConfig

      public ClientNetworkConfig setSocketInterceptorConfig(SocketInterceptorConfig socketInterceptorConfig)
      Parameters:
      socketInterceptorConfig - will be called with the Socket, each time client creates a connection to any Member.
      Returns:
      configured ClientNetworkConfig for chaining
    • getConnectionTimeout

      public int getConnectionTimeout()
      Timeout value in millis for nodes to accept client connection requests.
      Returns:
      connection timeout value in millis
    • setConnectionTimeout

      public ClientNetworkConfig setConnectionTimeout(int connectionTimeoutInMillis)
      Parameters:
      connectionTimeoutInMillis - Timeout value in millis for nodes to accept client connection requests. A zero value means wait until connection established or an error occurs.
      Returns:
      configured ClientNetworkConfig for chaining
    • addAddress

      public ClientNetworkConfig addAddress(String... addresses)
      Adds given addresses to candidate address list that client will use to establish initial connection
      Parameters:
      addresses - to be added to initial address list
      Returns:
      configured ClientNetworkConfig for chaining
    • setAddresses

      public ClientNetworkConfig setAddresses(List<String> addresses)
      Sets given addresses as candidate address list that client will use to establish initial connection
      Parameters:
      addresses - to be added to initial address list
      Returns:
      configured ClientNetworkConfig for chaining
    • getAddresses

      public List<String> getAddresses()
      Returns the list of candidate addresses that client will use to establish initial connection
      Returns:
      list of addresses
    • isRedoOperation

      public boolean isRedoOperation()
      Returns:
      true if redo operations are enabled
    • setRedoOperation

      public ClientNetworkConfig setRedoOperation(boolean redoOperation)
      If true, client will redo the operations that were executing on the server and client lost the connection. This can be because of network, or simply because the member died. However it is not clear whether the application is performed or not. For idempotent operations this is harmless, but for non idempotent ones retrying can cause to undesirable effects. Note that the redo can perform on any member.

      If false, the operation will throw RuntimeException that is wrapping IOException. TODO clear what is the exception here

      Parameters:
      redoOperation - true if redo operations are enabled
      Returns:
      configured ClientNetworkConfig for chaining
    • getSocketOptions

      public SocketOptions getSocketOptions()
      Returns:
      TCP Socket options
    • setSocketOptions

      public ClientNetworkConfig setSocketOptions(SocketOptions socketOptions)
      Parameters:
      socketOptions - TCP Socket options
      Returns:
      configured ClientNetworkConfig for chaining
    • getSSLConfig

      public SSLConfig getSSLConfig()
      Returns the current SSLConfig. It is possible that null is returned if no SSLConfig has been set.
      Returns:
      the SSLConfig.
      See Also:
    • setSSLConfig

      public ClientNetworkConfig setSSLConfig(SSLConfig sslConfig)
      Sets the SSLConfig. null value indicates that no SSLConfig should be used.
      Parameters:
      sslConfig - the SSLConfig.
      Returns:
      the updated ClientNetworkConfig.
      See Also:
    • setAwsConfig

      public ClientNetworkConfig setAwsConfig(AwsConfig clientAwsConfig)
      Sets configuration to connect nodes in AWS environment.
      Parameters:
      clientAwsConfig - the ClientAwsConfig
      See Also:
    • getAwsConfig

      public AwsConfig getAwsConfig()
      Returns the current AwsConfig.
      Returns:
      ClientAwsConfig
      See Also:
    • setGcpConfig

      public ClientNetworkConfig setGcpConfig(GcpConfig gcpConfig)
      Sets configuration to connect nodes in GCP environment.
      Parameters:
      gcpConfig - the GcpConfig
      See Also:
    • getGcpConfig

      public GcpConfig getGcpConfig()
      Returns the current GcpConfig.
      Returns:
      GcpConfig
      See Also:
    • setAzureConfig

      public ClientNetworkConfig setAzureConfig(AzureConfig azureConfig)
      Sets configuration to connect nodes in Azure environment.
      Parameters:
      azureConfig - the AzureConfig
      See Also:
    • getAzureConfig

      public AzureConfig getAzureConfig()
      Returns the current AzureConfig.
      Returns:
      AzureConfig
      See Also:
    • setKubernetesConfig

      public ClientNetworkConfig setKubernetesConfig(KubernetesConfig kubernetesConfig)
      Sets configuration to connect nodes in Kubernetes environment.
      Parameters:
      kubernetesConfig - the KubernetesConfig
      See Also:
    • getKubernetesConfig

      public KubernetesConfig getKubernetesConfig()
      Returns the current KubernetesConfig.
      Returns:
      KubernetesConfig
      See Also:
    • setEurekaConfig

      public ClientNetworkConfig setEurekaConfig(EurekaConfig eurekaConfig)
      Sets configuration to connect nodes in Eureka environment.
      Parameters:
      eurekaConfig - the EurekaConfig
      See Also:
    • getEurekaConfig

      public EurekaConfig getEurekaConfig()
      Returns the current EurekaConfig.
      Returns:
      EurekaConfig
      See Also:
    • getCloudConfig

      public ClientCloudConfig getCloudConfig()
    • setCloudConfig

      public ClientNetworkConfig setCloudConfig(ClientCloudConfig cloudConfig)
    • getOutboundPortDefinitions

      public Collection<String> getOutboundPortDefinitions()
      Returns the outbound port definitions. It is possible that null is returned if not defined.
      Returns:
      list of outbound port definitions
    • getOutboundPorts

      public Collection<Integer> getOutboundPorts()
      Returns the outbound ports. It is possible that null is returned if not defined.
      Returns:
      list of outbound ports
    • setOutboundPortDefinitions

      public ClientNetworkConfig setOutboundPortDefinitions(Collection<String> outboundPortDefinitions)
      Set outbound port definitions
      Parameters:
      outboundPortDefinitions - outbound port definitions
      Returns:
      ClientNetworkConfig
    • setOutboundPorts

      public ClientNetworkConfig setOutboundPorts(Collection<Integer> outboundPorts)
      Set outbond ports
      Parameters:
      outboundPorts - outbound ports
      Returns:
      ClientNetworkConfig
    • addOutboundPort

      public ClientNetworkConfig addOutboundPort(int port)
      Add outbound port to the outbound port list
      Parameters:
      port - outbound port
      Returns:
      ClientNetworkConfig
    • addOutboundPortDefinition

      public ClientNetworkConfig addOutboundPortDefinition(String portDef)
      Add outbound port definition to the outbound port definition list
      Parameters:
      portDef - outbound port definition
      Returns:
      ClientNetworkConfig
    • getClientIcmpPingConfig

      public ClientIcmpPingConfig getClientIcmpPingConfig()
      ICMP ping is used to detect if machine that a remote hazelcast member runs on alive or not
      Returns:
      current configuration for client icmp ping, returns the default configuration if not set by user
    • setClientIcmpPingConfig

      public ClientNetworkConfig setClientIcmpPingConfig(ClientIcmpPingConfig clientIcmpPingConfig)
      ICMP ping is used to detect if machine that a remote hazelcast member runs on alive or not
      Parameters:
      clientIcmpPingConfig - configuration for client icmp ping
      Returns:
      ClientNetworkConfig for chaining
    • equals

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

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object