12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- [[modules-transport]]
- == Transport
- The transport module is used for internal communication between nodes
- within the cluster. Each call that goes from one node to the other uses
- the transport module (for example, when an HTTP GET request is processed
- by one node, and should actually be processed by another node that holds
- the data).
- The transport mechanism is completely asynchronous in nature, meaning
- that there is no blocking thread waiting for a response. The benefit of
- using asynchronous communication is first solving the
- http://en.wikipedia.org/wiki/C10k_problem[C10k problem], as well as
- being the ideal solution for scatter (broadcast) / gather operations such
- as search in ElasticSearch.
- [float]
- === TCP Transport
- The TCP transport is an implementation of the transport module using
- TCP. It allows for the following settings:
- [cols="<,<",options="header",]
- |=======================================================================
- |Setting |Description
- |`transport.tcp.port` |A bind port range. Defaults to `9300-9400`.
- |`transport.publish_port` |The port that other nodes in the cluster
- should use when communicating with this node. Useful when a cluster node
- is behind a proxy or firewall and the `transport.tcp.port` is not directly
- addressable from the outside. Defaults to the actual port assigned via
- `transport.tcp.port`.
- |`transport.tcp.connect_timeout` |The socket connect timeout setting (in
- time setting format). Defaults to `30s`.
- |`transport.tcp.compress` |Set to `true` to enable compression (LZF)
- between all nodes. Defaults to `false`.
- |=======================================================================
- It also uses the common
- <<modules-network,network settings>>.
- [float]
- === Local Transport
- This is a handy transport to use when running integration tests within
- the JVM. It is automatically enabled when using
- `NodeBuilder#local(true)`.
|