Elasticsearch节点间通信基础--Transport(

2019-06-25  本文已影响0人  Ombres

Transport

概念

Transport用于集群内节点之间的内部通信,从一个节点到另一个节点的每次调用都使用Transport。

特点

Transport的消息传输是异步通信,在通信的过程中,不会有等待的线程。Elasticsearch使用这种机制可以有效避免C10K(同时处理10000个连接)的问题,而且是广播和收集的一种理想性的解决方案。在Elasticsearch中,很多操作都涉及到了在多个节点之前的交互,比如搜索,索引等等。

相关设置

  1. transport.port 端口号,默认是9300-9400
  2. transport.publish_port 对外公布的端口,默认与transport.port相同
  3. transport.host host地址,默认为network.host
  4. transport.bind_host service绑定的地址,默认是transport.hostnetwork.bind_host
  5. transport.publish_host 集群通信的地址,默认是transport.hostnetwork.publish_host,有且只有一个
  6. transport.connect_timeout 连接超时时间
  7. transport.compress 是否在传输时进行压缩
  8. transport.ping_schedule ping消息间隔时间,用来确认transport是否可用,默认是5s,可用设置为-1来代表禁止ping

配置优化

  1. 节点间保持连接很重要,因此尽量让transport连接不中断,transport.ping_schedule可用定时检测连接的可用性
  2. 一般来说,集群节点之间的交互是本地的,相对网络带宽资源,CPU资源更重要,transport.compress配置设置为false可用减少资源损耗。
  3. 有时候需要排查transport的问题,可用通过以下设置进行日志跟踪,这个配置是临时生效的
PUT _cluster/settings
{
   "transient" : {
      "logger.org.elasticsearch.transport.TransportService.tracer" : "TRACE",
      "transport.tracer.include" : "*",   #跟踪哪些操作
      "transport.tracer.exclude" : "internal:coordination/fault_detection/*"   #不跟踪哪些操作
   }
}
上一篇下一篇

猜你喜欢

热点阅读