123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- [[transport-settings]]
- ==== Advanced transport settings
- Use the following advanced settings to configure the transport interface
- independently of the <<http-settings,HTTP interface>>. Use the
- <<common-network-settings,network
- settings>> to configure both interfaces together.
- `transport.host`::
- (<<static-cluster-setting,Static>>)
- Sets the address of this node for transport traffic. The node will bind to this
- address and will also use it as its transport publish address. Accepts an IP
- address, a hostname, or a <<network-interface-values,special value>>.
- Use this setting only if you require different configurations for the
- transport and HTTP interfaces.
- +
- Defaults to the address given by `network.host`.
- `transport.bind_host`::
- (<<static-cluster-setting,Static>>)
- The network address(es) to which the node should bind in order to listen for
- incoming transport connections. Accepts a list of IP addresses, hostnames, and
- <<network-interface-values,special values>>. Defaults to the address given by
- `transport.host` or `network.bind_host`. Use this setting only if you require
- to bind to multiple addresses or to use different addresses for publishing and
- binding, and you also require different binding configurations for the
- transport and HTTP interfaces.
- `transport.publish_host`::
- (<<static-cluster-setting,Static>>)
- The network address at which the node can be contacted by other nodes. Accepts
- an IP address, a hostname, or a <<network-interface-values,special value>>.
- Defaults to the address given by `transport.host` or `network.publish_host`.
- Use this setting only if you require to bind to multiple addresses or to use
- different addresses for publishing and binding, and you also require different
- binding configurations for the transport and HTTP interfaces.
- `transport.publish_port`::
- (<<static-cluster-setting,Static>>)
- The port of the <<modules-network-binding-publishing,transport publish
- address>>. Set this parameter only if you need the publish port to be
- different from `transport.port`. Defaults to the port assigned via
- `transport.port`.
- `transport.connect_timeout`::
- (<<static-cluster-setting,Static>>)
- The connect timeout for initiating a new connection (in
- time setting format). Defaults to `30s`.
- `transport.compress`::
- (<<static-cluster-setting,Static>>)
- Set to `true`, `indexing_data`, or `false` to configure transport compression
- between nodes. The option `true` will compress all data. The option
- `indexing_data` will compress only the raw index data sent between nodes during
- ingest, ccr following (excluding bootstrap), and operations based shard recovery
- (excluding transferring lucene files). Defaults to `indexing_data`.
- `transport.compression_scheme`::
- (<<static-cluster-setting,Static>>)
- Configures the compression scheme for `transport.compress`. The options are
- `deflate` or `lz4`. If `lz4` is configured and the remote node has not been
- upgraded to a version supporting `lz4`, the traffic will be sent uncompressed.
- Defaults to `lz4`.
- `transport.ping_schedule`::
- (<<static-cluster-setting,Static>>)
- Schedule a regular application-level ping message
- to ensure that transport connections between nodes are kept alive. Defaults to
- `5s` in the transport client and `-1` (disabled) elsewhere. It is preferable
- to correctly configure TCP keep-alives instead of using this feature, because
- TCP keep-alives apply to all kinds of long-lived connections and not just to
- transport connections.
- `transport.tcp.no_delay`::
- (<<static-cluster-setting,Static>>)
- Enable or disable the {wikipedia}/Nagle%27s_algorithm[TCP no delay]
- setting. Defaults to `network.tcp.no_delay`.
- `transport.tcp.keep_alive`::
- (<<static-cluster-setting,Static>>)
- Configures the `SO_KEEPALIVE` option for this socket, which
- determines whether it sends TCP keepalive probes.
- Defaults to `network.tcp.keep_alive`.
- `transport.tcp.keep_idle`::
- (<<static-cluster-setting,Static>>)
- Configures the `TCP_KEEPIDLE` option for this socket, which
- determines the time in seconds that a connection must be idle before
- starting to send TCP keepalive probes. Defaults to `network.tcp.keep_idle` if set,
- or the system default otherwise.
- This value cannot exceed `300` seconds. In cases where the system default
- is higher than `300`, the value is automatically lowered to `300`. Only applicable on
- Linux and macOS, and requires Java 11 or newer.
- `transport.tcp.keep_interval`::
- (<<static-cluster-setting,Static>>)
- Configures the `TCP_KEEPINTVL` option for this socket,
- which determines the time in seconds between sending TCP keepalive probes.
- Defaults to `network.tcp.keep_interval` if set, or the system default otherwise.
- This value cannot exceed `300` seconds. In cases where the system default is higher than `300`,
- the value is automatically lowered to `300`. Only applicable on Linux and macOS,
- and requires Java 11 or newer.
- `transport.tcp.keep_count`::
- (<<static-cluster-setting,Static>>)
- Configures the `TCP_KEEPCNT` option for this socket, which
- determines the number of unacknowledged TCP keepalive probes that may be
- sent on a connection before it is dropped. Defaults to `network.tcp.keep_count`
- if set, or the system default otherwise. Only applicable on Linux and macOS, and
- requires Java 11 or newer.
- `transport.tcp.reuse_address`::
- (<<static-cluster-setting,Static>>)
- Should an address be reused or not. Defaults to `network.tcp.reuse_address`.
- `transport.tcp.send_buffer_size`::
- (<<static-cluster-setting,Static>>)
- The size of the TCP send buffer (specified with <<size-units,size units>>).
- Defaults to `network.tcp.send_buffer_size`.
- `transport.tcp.receive_buffer_size`::
- (<<static-cluster-setting,Static>>)
- The size of the TCP receive buffer (specified with <<size-units,size units>>).
- Defaults to `network.tcp.receive_buffer_size`.
- [[transport-profiles]]
- ===== Transport profiles
- Elasticsearch allows you to bind to multiple ports on different interfaces by
- the use of transport profiles. See this example configuration
- [source,yaml]
- --------------
- transport.profiles.default.port: 9300-9400
- transport.profiles.default.bind_host: 10.0.0.1
- transport.profiles.client.port: 9500-9600
- transport.profiles.client.bind_host: 192.168.0.1
- transport.profiles.dmz.port: 9700-9800
- transport.profiles.dmz.bind_host: 172.16.1.2
- --------------
- The `default` profile is special. It is used as a fallback for any other
- profiles, if those do not have a specific configuration setting set, and is how
- this node connects to other nodes in the cluster.
- Other profiles can have any name and can be used to set up specific endpoints
- for incoming connections.
- The following parameters can be configured on each transport profile, as in the
- example above:
- * `port`: The port to which to bind.
- * `bind_host`: The host to which to bind.
- * `publish_host`: The host which is published in informational APIs.
- Profiles also support all the other transport settings specified in the
- <<transport-settings,transport settings>> section, and use these as defaults.
- For example, `transport.profiles.client.tcp.reuse_address` can be explicitly
- configured, and defaults otherwise to `transport.tcp.reuse_address`.
- [[long-lived-connections]]
- ===== Long-lived idle connections
- A transport connection between two nodes is made up of a number of long-lived
- TCP connections, some of which may be idle for an extended period of time.
- Nonetheless, Elasticsearch requires these connections to remain open, and it
- can disrupt the operation of your cluster if any inter-node connections are
- closed by an external influence such as a firewall. It is important to
- configure your network to preserve long-lived idle connections between
- Elasticsearch nodes, for instance by leaving `*.tcp.keep_alive` enabled and
- ensuring that the keepalive interval is shorter than any timeout that might
- cause idle connections to be closed, or by setting `transport.ping_schedule` if
- keepalives cannot be configured. Devices which drop connections when they reach
- a certain age are a common source of problems to Elasticsearch clusters, and
- must not be used.
- [[request-compression]]
- ===== Request compression
- The default `transport.compress` configuration option `indexing_data` will only
- compress requests that relate to the transport of raw indexing source data
- between nodes. This option primarily compresses data sent during ingest,
- ccr, and shard recovery. This default normally makes sense for local cluster
- communication as compressing raw documents tends significantly reduce inter-node
- network usage with minimal CPU impact.
- The `transport.compress` setting always configures local cluster request
- compression and is the fallback setting for remote cluster request compression.
- If you want to configure remote request compression differently than local
- request compression, you can set it on a per-remote cluster basis using the
- <<remote-cluster-settings,`cluster.remote.${cluster_alias}.transport.compress` setting>>.
- [[response-compression]]
- ===== Response compression
- The compression settings do not configure compression for responses. {es} will
- compress a response if the inbound request was compressed--even when compression
- is not enabled. Similarly, {es} will not compress a response if the inbound
- request was uncompressed--even when compression is enabled. The compression
- scheme used to compress a response will be the same scheme the remote node used
- to compress the request.
|