Class ClientNetworkConfig


  • public class ClientNetworkConfig
    extends java.lang.Object
    Contains configuration parameters for client network related behaviour
    • Constructor Detail

      • ClientNetworkConfig

        public ClientNetworkConfig()
    • Method Detail

      • 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:
        java.lang.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:
        java.lang.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​(java.lang.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​(java.util.List<java.lang.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 java.util.List<java.lang.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
      • 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:
        getSSLConfig()
      • setAwsConfig

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

        public java.util.Collection<java.lang.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 java.util.Collection<java.lang.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​(java.util.Collection<java.lang.String> outboundPortDefinitions)
        Set outbound port definitions
        Parameters:
        outboundPortDefinitions - outbound port definitions
        Returns:
        ClientNetworkConfig
      • setOutboundPorts

        public ClientNetworkConfig setOutboundPorts​(java.util.Collection<java.lang.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​(java.lang.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​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

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

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object