2020-04-21 21:43:41 +08:00
|
|
|
[[transport-settings]]
|
2021-02-02 01:41:42 +08:00
|
|
|
==== Advanced transport settings
|
2013-08-29 07:24:34 +08:00
|
|
|
|
2021-02-02 01:41:42 +08:00
|
|
|
Use the following advanced settings to configure the transport interface
|
2021-02-01 21:06:20 +08:00
|
|
|
independently of the <<http-settings,HTTP interface>>. Use the
|
|
|
|
<<common-network-settings,network
|
|
|
|
settings>> to configure both interfaces together.
|
2013-08-29 07:24:34 +08:00
|
|
|
|
2021-02-01 21:06:20 +08:00
|
|
|
`transport.host`::
|
2020-09-02 03:48:45 +08:00
|
|
|
(<<static-cluster-setting,Static>>)
|
2021-02-01 21:06:20 +08:00
|
|
|
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`.
|
2014-01-18 04:58:57 +08:00
|
|
|
|
2020-07-28 16:14:56 +08:00
|
|
|
`transport.bind_host`::
|
2020-09-02 03:48:45 +08:00
|
|
|
(<<static-cluster-setting,Static>>)
|
2021-02-01 21:06:20 +08:00
|
|
|
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.
|
2014-10-17 21:01:21 +08:00
|
|
|
|
2020-07-28 16:14:56 +08:00
|
|
|
`transport.publish_host`::
|
2020-09-02 03:48:45 +08:00
|
|
|
(<<static-cluster-setting,Static>>)
|
2021-02-01 21:06:20 +08:00
|
|
|
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.
|
2014-10-17 21:01:21 +08:00
|
|
|
|
2021-02-01 21:06:20 +08:00
|
|
|
`transport.publish_port`::
|
2020-09-02 03:48:45 +08:00
|
|
|
(<<static-cluster-setting,Static>>)
|
2021-02-01 21:06:20 +08:00
|
|
|
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`.
|
2014-10-17 21:01:21 +08:00
|
|
|
|
2020-07-28 16:14:56 +08:00
|
|
|
`transport.connect_timeout`::
|
2020-09-02 03:48:45 +08:00
|
|
|
(<<static-cluster-setting,Static>>)
|
2020-07-28 16:14:56 +08:00
|
|
|
The connect timeout for initiating a new connection (in
|
2014-01-20 04:29:08 +08:00
|
|
|
time setting format). Defaults to `30s`.
|
2013-08-29 07:24:34 +08:00
|
|
|
|
2020-07-28 16:14:56 +08:00
|
|
|
`transport.compress`::
|
2020-09-02 03:48:45 +08:00
|
|
|
(<<static-cluster-setting,Static>>)
|
2021-06-30 02:14:47 +08:00
|
|
|
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
|
2021-08-18 02:19:42 +08:00
|
|
|
(excluding transferring lucene files). Defaults to `indexing_data`.
|
2021-06-30 02:14:47 +08:00
|
|
|
|
|
|
|
`transport.compression_scheme`::
|
|
|
|
(<<static-cluster-setting,Static>>)
|
|
|
|
Configures the compression scheme for `transport.compress`. The options are
|
2021-08-13 06:48:56 +08:00
|
|
|
`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.
|
2021-08-18 02:19:42 +08:00
|
|
|
Defaults to `lz4`.
|
2015-09-01 19:43:03 +08:00
|
|
|
|
2020-07-28 16:14:56 +08:00
|
|
|
`transport.ping_schedule`::
|
2020-09-02 03:48:45 +08:00
|
|
|
(<<static-cluster-setting,Static>>)
|
2020-07-28 16:14:56 +08:00
|
|
|
Schedule a regular application-level ping message
|
2018-06-08 20:36:19 +08:00
|
|
|
to ensure that transport connections between nodes are kept alive. Defaults to
|
2018-11-01 00:32:53 +08:00
|
|
|
`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
|
2018-06-08 20:36:19 +08:00
|
|
|
transport connections.
|
2015-09-01 19:43:03 +08:00
|
|
|
|
2020-07-28 16:14:56 +08:00
|
|
|
`transport.tcp.no_delay`::
|
2020-09-02 03:48:45 +08:00
|
|
|
(<<static-cluster-setting,Static>>)
|
2020-08-17 21:44:24 +08:00
|
|
|
Enable or disable the {wikipedia}/Nagle%27s_algorithm[TCP no delay]
|
2020-07-28 16:14:56 +08:00
|
|
|
setting. Defaults to `network.tcp.no_delay`.
|
|
|
|
|
|
|
|
`transport.tcp.keep_alive`::
|
2020-09-02 03:48:45 +08:00
|
|
|
(<<static-cluster-setting,Static>>)
|
2020-07-28 16:14:56 +08:00
|
|
|
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`::
|
2020-09-02 03:48:45 +08:00
|
|
|
(<<static-cluster-setting,Static>>)
|
2020-07-28 16:14:56 +08:00
|
|
|
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`::
|
2020-09-02 03:48:45 +08:00
|
|
|
(<<static-cluster-setting,Static>>)
|
2020-07-28 16:14:56 +08:00
|
|
|
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`::
|
2020-09-02 03:48:45 +08:00
|
|
|
(<<static-cluster-setting,Static>>)
|
2020-07-28 16:14:56 +08:00
|
|
|
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.
|
|
|
|
|
2020-08-13 20:06:09 +08:00
|
|
|
`transport.tcp.reuse_address`::
|
2020-09-02 03:48:45 +08:00
|
|
|
(<<static-cluster-setting,Static>>)
|
2020-07-28 16:14:56 +08:00
|
|
|
Should an address be reused or not. Defaults to `network.tcp.reuse_address`.
|
|
|
|
|
|
|
|
`transport.tcp.send_buffer_size`::
|
2020-09-02 03:48:45 +08:00
|
|
|
(<<static-cluster-setting,Static>>)
|
2020-07-28 16:14:56 +08:00
|
|
|
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`::
|
2020-09-02 03:48:45 +08:00
|
|
|
(<<static-cluster-setting,Static>>)
|
2020-07-28 16:14:56 +08:00
|
|
|
The size of the TCP receive buffer (specified with <<size-units,size units>>).
|
|
|
|
Defaults to `network.tcp.receive_buffer_size`.
|
2013-08-29 07:24:34 +08:00
|
|
|
|
2020-04-21 21:43:41 +08:00
|
|
|
[[transport-profiles]]
|
|
|
|
===== Transport profiles
|
2014-10-13 00:30:12 +08:00
|
|
|
|
2018-07-19 18:33:46 +08:00
|
|
|
Elasticsearch allows you to bind to multiple ports on different interfaces by
|
|
|
|
the use of transport profiles. See this example configuration
|
2014-10-13 00:30:12 +08:00
|
|
|
|
2014-11-02 15:25:45 +08:00
|
|
|
[source,yaml]
|
|
|
|
--------------
|
2014-10-13 00:30:12 +08:00
|
|
|
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
|
2014-11-02 15:25:45 +08:00
|
|
|
--------------
|
2014-10-13 00:30:12 +08:00
|
|
|
|
2018-07-19 18:33:46 +08:00
|
|
|
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.
|
2021-03-24 22:10:21 +08:00
|
|
|
Other profiles can have any name and can be used to set up specific endpoints
|
|
|
|
for incoming connections.
|
2014-10-13 00:30:12 +08:00
|
|
|
|
2018-07-19 18:33:46 +08:00
|
|
|
The following parameters can be configured on each transport profile, as in the
|
|
|
|
example above:
|
2014-10-13 00:30:12 +08:00
|
|
|
|
2020-07-27 19:38:24 +08:00
|
|
|
* `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.
|
2020-07-28 16:14:56 +08:00
|
|
|
|
|
|
|
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`.
|
2014-10-13 00:30:12 +08:00
|
|
|
|
2020-04-21 21:43:41 +08:00
|
|
|
[[long-lived-connections]]
|
|
|
|
===== Long-lived idle connections
|
2018-06-08 20:36:19 +08:00
|
|
|
|
2020-07-29 20:01:17 +08:00
|
|
|
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
|
2021-02-01 21:06:20 +08:00
|
|
|
Elasticsearch nodes, for instance by leaving `*.tcp.keep_alive` enabled and
|
2020-07-29 20:01:17 +08:00
|
|
|
ensuring that the keepalive interval is shorter than any timeout that might
|
2018-06-08 20:36:19 +08:00
|
|
|
cause idle connections to be closed, or by setting `transport.ping_schedule` if
|
2020-07-29 20:01:17 +08:00
|
|
|
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.
|
2018-12-22 01:14:00 +08:00
|
|
|
|
2020-04-21 21:43:41 +08:00
|
|
|
[[request-compression]]
|
|
|
|
===== Request compression
|
2018-12-22 01:14:00 +08:00
|
|
|
|
2021-08-18 02:19:42 +08:00
|
|
|
The default `transport.compress` configuration option `indexing_data` will only
|
2021-06-30 02:14:47 +08:00
|
|
|
compress requests that relate to the transport of raw indexing source data
|
|
|
|
between nodes. This option primarily compresses data sent during ingest,
|
2021-08-18 02:19:42 +08:00
|
|
|
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.
|
2021-06-30 02:14:47 +08:00
|
|
|
|
2018-12-22 01:14:00 +08:00
|
|
|
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>>.
|
|
|
|
|
|
|
|
|
2020-04-21 21:43:41 +08:00
|
|
|
[[response-compression]]
|
|
|
|
===== Response compression
|
2018-12-22 01:14:00 +08:00
|
|
|
|
|
|
|
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
|
2021-08-14 03:29:22 +08:00
|
|
|
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.
|