elasticsearch源码分析之Transport(五)

一、基本介绍

1.1概念介绍

transport模块是es通信的基础模块,在elasticsearch中用的很广泛,比如集群node之间的通信、数据的传输、transport client方式的数据发送等等,只要数和通信、数据传输相关的都离不开transport模块的作用。

transport模块分为LocalTransport和NettyTransport两种,在TransportModule中注册中可以通过node是local还是network的来判别使用哪一种transport,可以通过配置node.mode来决定,bind逻辑如下:

 

默认而且通常我们使用的实现类是NettyTransport,描述信息如下:


NettyTransport分为四种类型的连接,分别是:

  • recovery:做数据恢复recovery,默认个数2个;
  • bulk:用于bulk请求,默认个数3个;
  • med/reg:典型的搜索和单doc索引,默认个数6个;
  • high:如集群state的发送等,默认个数1个;
  • ping:就是node之间的ping咯。默认个数1个;

其中recovery和bulk之前版本是同一个的,叫做low,表示大数据量的传输,它们可能会导致通常的请求(如search或是单数据索引)耗时加长;

1.2配置信息

1.2.1workerCount

workerCount表示transport的总共的worker数目,由transport.netty.worker_count来配置,默认值是32和Runtime.getRuntime().availableProcessors()中的最小值,也就是不能超过32,为什么会有这个限制呢?是因为在elasticsearch的github上有人提了个issues/3478,当使用core很多的机器的时候(比如48core),会创建太多的内存从而导致OOM,所以设置了32的上限来避免太多线程给系统产生压力。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值