Class ConsulClientOptions


public class ConsulClientOptions extends WebClientOptions
Options used to create Consul client.
Author:
Ruslan Sennov
  • Constructor Details

    • ConsulClientOptions

      public ConsulClientOptions()
      Default constructor
    • ConsulClientOptions

      public ConsulClientOptions(ConsulClientOptions options)
      Copy constructor
      Parameters:
      options - the one to copy
    • ConsulClientOptions

      public ConsulClientOptions(JsonObject json)
      Constructor from JSON
      Parameters:
      json - the JSON
    • ConsulClientOptions

      public ConsulClientOptions(URI uri)
      Constructor from URI. The datacenter and the acl token can be defined in the query; the scheme will be ignored. For example:

      consul://consul.example.com/?dc=dc1&acl=00000000-0000-0000-0000-000000000000

      Parameters:
      uri - the URI
  • Method Details

    • toJson

      public JsonObject toJson()
      Convert to JSON
      Overrides:
      toJson in class WebClientOptions
      Returns:
      the JSON
    • getHost

      public String getHost()
      Get Consul host.
      Returns:
      consul host
    • getPort

      public int getPort()
      Get Consul HTTP API port.
      Returns:
      consul port
    • getAclToken

      public String getAclToken()
      Get the ACL token.
      Returns:
      the ACL token.
    • getDc

      public String getDc()
      Get the datacenter name
      Returns:
      the datacenter name
    • getTimeout

      public long getTimeout()
      Get timeout in milliseconds
      Returns:
      timeout in milliseconds
    • setHost

      public ConsulClientOptions setHost(String host)
      Set Consul host. Defaults to `localhost`
      Parameters:
      host - consul host
      Returns:
      reference to this, for fluency
    • setPort

      public ConsulClientOptions setPort(int port)
      Set Consul HTTP API port. Defaults to `8500`
      Parameters:
      port - Consul HTTP API port
      Returns:
      reference to this, for fluency
    • setAclToken

      public ConsulClientOptions setAclToken(String aclToken)
      Set the ACL token. When provided, the client will use this token when making requests to the Consul by providing the "?token" query parameter. When not provided, the empty token, which maps to the 'anonymous' ACL policy, is used.
      Parameters:
      aclToken - the ACL token
      Returns:
      reference to this, for fluency
    • setDc

      public ConsulClientOptions setDc(String dc)
      Set the datacenter name. When provided, the client will use it when making requests to the Consul by providing the "?dc" query parameter. When not provided, the datacenter of the consul agent is queried.
      Parameters:
      dc - the datacenter name
      Returns:
      reference to this, for fluency
    • setTimeout

      public ConsulClientOptions setTimeout(long timeoutMs)
      Sets the amount of time (in milliseconds) after which if the request does not return any data within the timeout period an failure will be passed to the handler and the request will be closed.
      Parameters:
      timeoutMs - timeout in milliseconds
      Returns:
      reference to this, for fluency
    • setSendBufferSize

      public ConsulClientOptions setSendBufferSize(int sendBufferSize)
      Set the TCP send buffer size
      Overrides:
      setSendBufferSize in class WebClientOptions
      Parameters:
      sendBufferSize - the buffers size, in bytes
      Returns:
      a reference to this, so the API can be used fluently
    • setReceiveBufferSize

      public ConsulClientOptions setReceiveBufferSize(int receiveBufferSize)
      Set the TCP receive buffer size
      Overrides:
      setReceiveBufferSize in class WebClientOptions
      Parameters:
      receiveBufferSize - the buffers size, in bytes
      Returns:
      a reference to this, so the API can be used fluently
    • setReuseAddress

      public ConsulClientOptions setReuseAddress(boolean reuseAddress)
      Set the value of reuse address
      Overrides:
      setReuseAddress in class WebClientOptions
      Parameters:
      reuseAddress - the value of reuse address
      Returns:
      a reference to this, so the API can be used fluently
    • setReusePort

      public ConsulClientOptions setReusePort(boolean reusePort)
      Set the value of reuse port.

      This is only supported by native transports.

      Overrides:
      setReusePort in class WebClientOptions
      Parameters:
      reusePort - the value of reuse port
      Returns:
      a reference to this, so the API can be used fluently
    • setTrafficClass

      public ConsulClientOptions setTrafficClass(int trafficClass)
      Set the value of traffic class
      Overrides:
      setTrafficClass in class WebClientOptions
      Parameters:
      trafficClass - the value of traffic class
      Returns:
      a reference to this, so the API can be used fluently
    • setTcpNoDelay

      public ConsulClientOptions setTcpNoDelay(boolean tcpNoDelay)
      Set whether TCP no delay is enabled
      Overrides:
      setTcpNoDelay in class WebClientOptions
      Parameters:
      tcpNoDelay - true if TCP no delay is enabled (Nagle disabled)
      Returns:
      a reference to this, so the API can be used fluently
    • setTcpKeepAlive

      public ConsulClientOptions setTcpKeepAlive(boolean tcpKeepAlive)
      Set whether TCP keep alive is enabled
      Overrides:
      setTcpKeepAlive in class WebClientOptions
      Parameters:
      tcpKeepAlive - true if TCP keep alive is enabled
      Returns:
      a reference to this, so the API can be used fluently
    • setTcpCork

      public ConsulClientOptions setTcpCork(boolean tcpCork)
      Enable the TCP_CORK option - only with linux native transport.
      Overrides:
      setTcpCork in class WebClientOptions
      Parameters:
      tcpCork - the cork value
      Returns:
      a reference to this, so the API can be used fluently
    • setTcpQuickAck

      public ConsulClientOptions setTcpQuickAck(boolean tcpQuickAck)
      Enable the TCP_QUICKACK option - only with linux native transport.
      Overrides:
      setTcpQuickAck in class WebClientOptions
      Parameters:
      tcpQuickAck - the quick ack value
      Returns:
      a reference to this, so the API can be used fluently
    • setTcpFastOpen

      public ConsulClientOptions setTcpFastOpen(boolean tcpFastOpen)
      Enable the TCP_FASTOPEN option - only with linux native transport.
      Overrides:
      setTcpFastOpen in class WebClientOptions
      Parameters:
      tcpFastOpen - the fast open value
      Returns:
      a reference to this, so the API can be used fluently
    • setSoLinger

      public ConsulClientOptions setSoLinger(int soLinger)
      Set whether SO_linger keep alive is enabled
      Overrides:
      setSoLinger in class WebClientOptions
      Parameters:
      soLinger - true if SO_linger is enabled
      Returns:
      a reference to this, so the API can be used fluently
    • setIdleTimeout

      public ConsulClientOptions setIdleTimeout(int idleTimeout)
      Set the idle timeout, in seconds. zero means don't timeout. This determines if a connection will timeout and be closed if no data is received within the timeout.
      Overrides:
      setIdleTimeout in class WebClientOptions
      Parameters:
      idleTimeout - the timeout, in seconds
      Returns:
      a reference to this, so the API can be used fluently
    • setIdleTimeoutUnit

      public ConsulClientOptions setIdleTimeoutUnit(TimeUnit idleTimeoutUnit)
      Set the idle timeout unit. If not specified, default is seconds.
      Overrides:
      setIdleTimeoutUnit in class WebClientOptions
      Parameters:
      idleTimeoutUnit - specify time unit.
      Returns:
      a reference to this, so the API can be used fluently
    • setSsl

      public ConsulClientOptions setSsl(boolean ssl)
      Set whether SSL/TLS is enabled
      Overrides:
      setSsl in class WebClientOptions
      Parameters:
      ssl - true if enabled
      Returns:
      reference to this, for fluency
    • setKeyCertOptions

      public ConsulClientOptions setKeyCertOptions(KeyCertOptions options)
      Set the key/cert options.
      Overrides:
      setKeyCertOptions in class WebClientOptions
      Parameters:
      options - the key store options
      Returns:
      a reference to this, so the API can be used fluently
    • setTrustOptions

      public ConsulClientOptions setTrustOptions(TrustOptions options)
      Set the trust options.
      Overrides:
      setTrustOptions in class WebClientOptions
      Parameters:
      options - the trust options
      Returns:
      a reference to this, so the API can be used fluently
    • setTrustAll

      public ConsulClientOptions setTrustAll(boolean trustAll)
      Set whether all server certificates should be trusted
      Overrides:
      setTrustAll in class WebClientOptions
      Parameters:
      trustAll - true if all should be trusted
      Returns:
      reference to this, for fluency
    • setConnectTimeout

      public ConsulClientOptions setConnectTimeout(int connectTimeout)
      Set the connect timeout
      Overrides:
      setConnectTimeout in class WebClientOptions
      Parameters:
      connectTimeout - connect timeout, in ms
      Returns:
      a reference to this, so the API can be used fluently
    • setHttp2MultiplexingLimit

      public ConsulClientOptions setHttp2MultiplexingLimit(int limit)
      Set a client limit of the number concurrent streams for each HTTP/2 connection, this limits the number of streams the client can create for a connection. The effective number of streams for a connection is the min of this value and the server's initial settings.

      Setting the value to -1 means to use the value sent by the server's initial settings. -1 is the default value.

      Overrides:
      setHttp2MultiplexingLimit in class WebClientOptions
      Parameters:
      limit - the maximum concurrent for an HTTP/2 connection
      Returns:
      a reference to this, so the API can be used fluently
    • setHttp2ConnectionWindowSize

      public ConsulClientOptions setHttp2ConnectionWindowSize(int http2ConnectionWindowSize)
      Set the default HTTP/2 connection window size. It overrides the initial window size set by Http2Settings.getInitialWindowSize(), so the connection window size is greater than for its streams, in order the data throughput.

      A value of -1 reuses the initial window size setting.

      Overrides:
      setHttp2ConnectionWindowSize in class WebClientOptions
      Parameters:
      http2ConnectionWindowSize - the window size applied to the connection
      Returns:
      a reference to this, so the API can be used fluently
    • setKeepAlive

      public ConsulClientOptions setKeepAlive(boolean keepAlive)
      Set whether keep alive is enabled on the client
      Overrides:
      setKeepAlive in class WebClientOptions
      Parameters:
      keepAlive - true if enabled
      Returns:
      a reference to this, so the API can be used fluently
    • setPipelining

      public ConsulClientOptions setPipelining(boolean pipelining)
      Set whether pipe-lining is enabled on the client
      Overrides:
      setPipelining in class WebClientOptions
      Parameters:
      pipelining - true if enabled
      Returns:
      a reference to this, so the API can be used fluently
    • setPipeliningLimit

      public ConsulClientOptions setPipeliningLimit(int limit)
      Set the limit of pending requests a pipe-lined HTTP/1 connection can send.
      Overrides:
      setPipeliningLimit in class WebClientOptions
      Parameters:
      limit - the limit of pending requests
      Returns:
      a reference to this, so the API can be used fluently
    • setVerifyHost

      public ConsulClientOptions setVerifyHost(boolean verifyHost)
      Set whether hostname verification is enabled
      Overrides:
      setVerifyHost in class WebClientOptions
      Parameters:
      verifyHost - true if enabled
      Returns:
      a reference to this, so the API can be used fluently
    • setDecompressionSupported

      public WebClientOptions setDecompressionSupported(boolean tryUseCompression)
      Set whether compression is enabled
      Overrides:
      setDecompressionSupported in class WebClientOptions
      Parameters:
      tryUseCompression - true if enabled
      Returns:
      a reference to this, so the API can be used fluently
    • setDefaultHost

      public ConsulClientOptions setDefaultHost(String defaultHost)
      Set the default host name to be used by this client in requests if none is provided when making the request.
      Overrides:
      setDefaultHost in class WebClientOptions
      Returns:
      a reference to this, so the API can be used fluently
    • setDefaultPort

      public ConsulClientOptions setDefaultPort(int defaultPort)
      Set the default port to be used by this client in requests if none is provided when making the request.
      Overrides:
      setDefaultPort in class WebClientOptions
      Returns:
      a reference to this, so the API can be used fluently
    • setProtocolVersion

      public ConsulClientOptions setProtocolVersion(HttpVersion protocolVersion)
      Set the protocol version.
      Overrides:
      setProtocolVersion in class WebClientOptions
      Parameters:
      protocolVersion - the protocol version
      Returns:
      a reference to this, so the API can be used fluently
    • setMaxChunkSize

      public ConsulClientOptions setMaxChunkSize(int maxChunkSize)
      Set the maximum HTTP chunk size
      Overrides:
      setMaxChunkSize in class WebClientOptions
      Parameters:
      maxChunkSize - the maximum chunk size
      Returns:
      a reference to this, so the API can be used fluently
    • setMaxInitialLineLength

      public ConsulClientOptions setMaxInitialLineLength(int maxInitialLineLength)
      Set the maximum length of the initial line for HTTP/1.x (e.g. "HTTP/1.1 200 OK")
      Overrides:
      setMaxInitialLineLength in class WebClientOptions
      Parameters:
      maxInitialLineLength - the new maximum initial length
      Returns:
      a reference to this, so the API can be used fluently
    • setMaxHeaderSize

      public ConsulClientOptions setMaxHeaderSize(int maxHeaderSize)
      Set the maximum length of all headers for HTTP/1.x .
      Overrides:
      setMaxHeaderSize in class WebClientOptions
      Parameters:
      maxHeaderSize - the new maximum length
      Returns:
      a reference to this, so the API can be used fluently
    • setInitialSettings

      public ConsulClientOptions setInitialSettings(Http2Settings settings)
      Set the HTTP/2 connection settings immediately sent by to the server when the client connects.
      Overrides:
      setInitialSettings in class WebClientOptions
      Parameters:
      settings - the settings value
      Returns:
      a reference to this, so the API can be used fluently
    • setUseAlpn

      public ConsulClientOptions setUseAlpn(boolean useAlpn)
      Set the ALPN usage.
      Overrides:
      setUseAlpn in class WebClientOptions
      Parameters:
      useAlpn - true when Application-Layer Protocol Negotiation should be used
    • setSslEngineOptions

      public ConsulClientOptions setSslEngineOptions(SSLEngineOptions sslEngineOptions)
      Set to use SSL engine implementation to use.
      Overrides:
      setSslEngineOptions in class WebClientOptions
      Parameters:
      sslEngineOptions - the ssl engine to use
      Returns:
      a reference to this, so the API can be used fluently
    • setAlpnVersions

      public ConsulClientOptions setAlpnVersions(List<HttpVersion> alpnVersions)
      Set the list of protocol versions to provide to the server during the Application-Layer Protocol Negotiation. When the list is empty, the client provides a best effort list according to setProtocolVersion(HttpVersion):
      Overrides:
      setAlpnVersions in class WebClientOptions
      Parameters:
      alpnVersions - the versions
      Returns:
      a reference to this, so the API can be used fluently
    • setHttp2ClearTextUpgrade

      public ConsulClientOptions setHttp2ClearTextUpgrade(boolean value)
      Set to true when an h2c connection is established using an HTTP/1.1 upgrade request, and false when an h2c connection is established directly (with prior knowledge).
      Overrides:
      setHttp2ClearTextUpgrade in class WebClientOptions
      Parameters:
      value - the upgrade value
      Returns:
      a reference to this, so the API can be used fluently
    • setMaxRedirects

      public ConsulClientOptions setMaxRedirects(int maxRedirects)
      Set to maxRedirects the maximum number of redirection a request can follow.
      Overrides:
      setMaxRedirects in class WebClientOptions
      Parameters:
      maxRedirects - the maximum number of redirection
      Returns:
      a reference to this, so the API can be used fluently
    • setMetricsName

      public ConsulClientOptions setMetricsName(String metricsName)
      Set the metrics name identifying the reported metrics, useful for grouping metrics with the same name.
      Overrides:
      setMetricsName in class WebClientOptions
      Parameters:
      metricsName - the metrics name
      Returns:
      a reference to this, so the API can be used fluently
    • setProxyOptions

      public ConsulClientOptions setProxyOptions(ProxyOptions proxyOptions)
      Set proxy options for connections via CONNECT proxy (e.g. Squid) or a SOCKS proxy.
      Overrides:
      setProxyOptions in class WebClientOptions
      Parameters:
      proxyOptions - proxy options object
      Returns:
      a reference to this, so the API can be used fluently
    • setLocalAddress

      public ConsulClientOptions setLocalAddress(String localAddress)
      Set the local interface to bind for network connections. When the local address is null, it will pick any local address, the default local address is null.
      Overrides:
      setLocalAddress in class WebClientOptions
      Parameters:
      localAddress - the local address
      Returns:
      a reference to this, so the API can be used fluently
    • setLogActivity

      public ConsulClientOptions setLogActivity(boolean logActivity)
      Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
      Overrides:
      setLogActivity in class WebClientOptions
      Parameters:
      logActivity - true for logging the network activity
      Returns:
      a reference to this, so the API can be used fluently
    • setUserAgentEnabled

      public ConsulClientOptions setUserAgentEnabled(boolean userAgentEnabled)
      Sets whether the Web Client should send a user agent header. Defaults to true.
      Overrides:
      setUserAgentEnabled in class WebClientOptions
      Parameters:
      userAgentEnabled - true to send a user agent header, false otherwise
      Returns:
      a reference to this, so the API can be used fluently
    • setUserAgent

      public ConsulClientOptions setUserAgent(String userAgent)
      Sets the Web Client user agent header. Defaults to Vert.x-WebClient/<version>.
      Overrides:
      setUserAgent in class WebClientOptions
      Parameters:
      userAgent - user agent header value
      Returns:
      a reference to this, so the API can be used fluently
    • setFollowRedirects

      public ConsulClientOptions setFollowRedirects(boolean followRedirects)
      Configure the default behavior of the client to follow HTTP 30x redirections.
      Overrides:
      setFollowRedirects in class WebClientOptions
      Parameters:
      followRedirects - true when a redirect is followed
      Returns:
      a reference to this, so the API can be used fluently
    • addEnabledCipherSuite

      public ConsulClientOptions addEnabledCipherSuite(String suite)
      Add an enabled cipher suite, appended to the ordered suites.
      Overrides:
      addEnabledCipherSuite in class WebClientOptions
      Parameters:
      suite - the suite
      Returns:
      a reference to this, so the API can be used fluently
      See Also:
    • addEnabledSecureTransportProtocol

      public ConsulClientOptions addEnabledSecureTransportProtocol(String protocol)
      Add an enabled SSL/TLS protocols, appended to the ordered protocols.
      Overrides:
      addEnabledSecureTransportProtocol in class WebClientOptions
      Parameters:
      protocol - the SSL/TLS protocol do enabled
      Returns:
      a reference to this, so the API can be used fluently
    • addCrlPath

      public ConsulClientOptions addCrlPath(String crlPath) throws NullPointerException
      Add a CRL path
      Overrides:
      addCrlPath in class WebClientOptions
      Parameters:
      crlPath - the path
      Returns:
      a reference to this, so the API can be used fluently
      Throws:
      NullPointerException
    • addCrlValue

      public ConsulClientOptions addCrlValue(Buffer crlValue) throws NullPointerException
      Add a CRL value
      Overrides:
      addCrlValue in class WebClientOptions
      Parameters:
      crlValue - the value
      Returns:
      a reference to this, so the API can be used fluently
      Throws:
      NullPointerException
    • setForceSni

      public ConsulClientOptions setForceSni(boolean forceSni)
      By default, the server name is only sent for Fully Qualified Domain Name (FQDN), setting this property to true forces the server name to be always sent.
      Overrides:
      setForceSni in class WebClientOptions
      Parameters:
      forceSni - true when the client should always use SNI on TLS/SSL connections
      Returns:
      a reference to this, so the API can be used fluently
    • setDecoderInitialBufferSize

      public ConsulClientOptions setDecoderInitialBufferSize(int decoderInitialBufferSize)
      set to initialBufferSizeHttpDecoder the initial buffer of the HttpDecoder.
      Overrides:
      setDecoderInitialBufferSize in class WebClientOptions
      Parameters:
      decoderInitialBufferSize - the initial buffer size
      Returns:
      a reference to this, so the API can be used fluently
    • removeEnabledSecureTransportProtocol

      public ConsulClientOptions removeEnabledSecureTransportProtocol(String protocol)
      Description copied from class: TCPSSLOptions
      Removes an enabled SSL/TLS protocol from the ordered protocols.
      Overrides:
      removeEnabledSecureTransportProtocol in class WebClientOptions
      Parameters:
      protocol - the SSL/TLS protocol to disable
      Returns:
      a reference to this, so the API can be used fluently
    • setHttp2KeepAliveTimeout

      public ConsulClientOptions setHttp2KeepAliveTimeout(int keepAliveTimeout)
      Description copied from class: HttpClientOptions
      Set the keep alive timeout for HTTP/2 connections, in seconds.

      This value determines how long a connection remains unused in the pool before being evicted and closed.

      A timeout of 0 means there is no timeout.

      Overrides:
      setHttp2KeepAliveTimeout in class WebClientOptions
      Parameters:
      keepAliveTimeout - the timeout, in seconds
      Returns:
      a reference to this, so the API can be used fluently
    • setKeepAliveTimeout

      public ConsulClientOptions setKeepAliveTimeout(int keepAliveTimeout)
      Description copied from class: HttpClientOptions
      Set the keep alive timeout for HTTP/1.x, in seconds.

      This value determines how long a connection remains unused in the pool before being evicted and closed.

      A timeout of 0 means there is no timeout.

      Overrides:
      setKeepAliveTimeout in class WebClientOptions
      Parameters:
      keepAliveTimeout - the timeout, in seconds
      Returns:
      a reference to this, so the API can be used fluently
    • setEnabledSecureTransportProtocols

      public ConsulClientOptions setEnabledSecureTransportProtocols(Set<String> enabledSecureTransportProtocols)
      Description copied from class: TCPSSLOptions
      Sets the list of enabled SSL/TLS protocols.
      Overrides:
      setEnabledSecureTransportProtocols in class WebClientOptions
      Parameters:
      enabledSecureTransportProtocols - the SSL/TLS protocols to enable
      Returns:
      a reference to this, so the API can be used fluently
    • setSslHandshakeTimeout

      public ConsulClientOptions setSslHandshakeTimeout(long sslHandshakeTimeout)
      Description copied from class: TCPSSLOptions
      Set the SSL handshake timeout, default time unit is seconds.
      Overrides:
      setSslHandshakeTimeout in class WebClientOptions
      Parameters:
      sslHandshakeTimeout - the SSL handshake timeout to set, in milliseconds
      Returns:
      a reference to this, so the API can be used fluently
    • setSslHandshakeTimeoutUnit

      public ConsulClientOptions setSslHandshakeTimeoutUnit(TimeUnit sslHandshakeTimeoutUnit)
      Description copied from class: TCPSSLOptions
      Set the SSL handshake timeout unit. If not specified, default is seconds.
      Overrides:
      setSslHandshakeTimeoutUnit in class WebClientOptions
      Parameters:
      sslHandshakeTimeoutUnit - specify time unit.
      Returns:
      a reference to this, so the API can be used fluently