Transportedit

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 C10k problem, as well as being the idle solution for scatter (broadcast) / gather operations such as search in ElasticSearch.

TCP Transportedit

The TCP transport is an implementation of the transport module using TCP. It allows for the following settings:

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 shares the uses the common network settings.

Local Transportedit

This is a handy transport to use when running integration tests within the JVM. It is automatically enabled when using NodeBuilder#local(true).