transport.asciidoc 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. [[modules-transport]]
  2. == Transport
  3. The transport module is used for internal communication between nodes
  4. within the cluster. Each call that goes from one node to the other uses
  5. the transport module (for example, when an HTTP GET request is processed
  6. by one node, and should actually be processed by another node that holds
  7. the data).
  8. The transport mechanism is completely asynchronous in nature, meaning
  9. that there is no blocking thread waiting for a response. The benefit of
  10. using asynchronous communication is first solving the
  11. http://en.wikipedia.org/wiki/C10k_problem[C10k problem], as well as
  12. being the ideal solution for scatter (broadcast) / gather operations such
  13. as search in ElasticSearch.
  14. [float]
  15. === TCP Transport
  16. The TCP transport is an implementation of the transport module using
  17. TCP. It allows for the following settings:
  18. [cols="<,<",options="header",]
  19. |=======================================================================
  20. |Setting |Description
  21. |`transport.tcp.port` |A bind port range. Defaults to `9300-9400`.
  22. |`transport.publish_port` |The port that other nodes in the cluster
  23. should use when communicating with this node. Useful when a cluster node
  24. is behind a proxy or firewall and the `transport.tcp.port` is not directly
  25. addressable from the outside. Defaults to the actual port assigned via
  26. `transport.tcp.port`.
  27. |`transport.bind_host` |The host address to bind the transport service to. Defaults to `transport.host` (if set) or `network.bind_host`.
  28. |`transport.publish_host` |The host address to publish for nodes in the cluster to connect to. Defaults to `transport.host` (if set) or `network.publish_host`.
  29. |`transport.host` |Used to set the `transport.bind_host` and the `transport.publish_host` Defaults to `transport.host` or `network.host`.
  30. |`transport.tcp.connect_timeout` |The socket connect timeout setting (in
  31. time setting format). Defaults to `30s`.
  32. |`transport.tcp.compress` |Set to `true` to enable compression (LZF)
  33. between all nodes. Defaults to `false`.
  34. |=======================================================================
  35. It also uses the common
  36. <<modules-network,network settings>>.
  37. [float]
  38. === Local Transport
  39. This is a handy transport to use when running integration tests within
  40. the JVM. It is automatically enabled when using
  41. `NodeBuilder#local(true)`.