indices.recovery.internal_action_timeout

用于某些恢复请求的RPC超时时间,默认为15min,例如:perpare_translog、clean_files等

indices.recovery.retry_delay_network

由于网络问题导致recovery失败时,重试recovery前的等待时间,默认为5s

indices.recovery.retry_delay_state_sync

由于集群状态同步导致recovery失败时,重试recovery前的等待时间,默认为500ms

indices.recovery.max_bytes_per_sec

副本分片恢复过程中,主副分片节点之间传输数据的速度限制默认为40M/s,单位为字节,设置为0则不限速。

discovery.zen.ping_timeout

这个配置是作用在es节点的选主过程中的。在es开始选主之前,会向其他所有节点发出ping请求。等待discovery.zen.ping_timeout时间后,如果所有节点都响应了就开始选主,否则重启选主过程。因此这个配置决定了选主的耗时,不宜设置太大,默认是3s。

discovery.zen.publish_timeout

主节点会把跟新的元数据信息发送给其他节点,并且等待他们更新成功的通知。这个等待时间就是discovery.zen.publish_timeout,默认30秒

node.portsfile

如果参数值为true,logs目录下就会生成http.ports,transport.pots文件,文件中记录节点的ip于协议对应的端口号。

bootstrap.seccomp

这个参数是设置对系统调用的过滤,由于操作系统有大量的系统调用,如果用户程序随意调用这些系统调用的话可能引起系统安全问题,bootstrap.seccomp=true时将限制ES对系统调用的调用,注意该参数在5.2.X的时候改成bootstrap.system_call_filter,且在6.X中禁用。

index.max_result_window

ES中分页查询的实现需要指定两个值:from;size。比如:
from=100000 size=10 那么查询的结果就是第100000条数据到100010数据。
对于这种查询ES实际上的做法却是把from+size=100010条数据都加载到内存中,再去100000~100010这10条数据返回。这样的做的弊端在于from+size 太大将会耗尽内存。因此ES用index.max_result_window这个参数限制from+size。如果一个查询from+size的大小超过index.max_result_window就会报异常,index.max_result_window的默认值为10000.

discovery.zen.minimum_master_nodes

一个ES集群由若干个节点组成,这些节点中有若干个节点是候选主节点。集群启动都这些候选主节点会参与选举,直到其中一个节点成为主节点,ES集群才会提供服务。候选主节点的个数要求达到discovery.zen.minimum_master_nodes ,集群才会开始选举主节点。举个例子:
一个集群有5个节点,其中候选主节点有3个,discovery.zen.minimum_master_nodes=2.
启动集群,候选主节点至少需要启动2个,这个集群才能够选举出主节点。

ES的线程池

threadpool.bulk.type
threadpool.bulk.size
threadpool.bulk.queue_size
每个Elasticsearch节点内部都维护着多个线程池,如index、search、get、bulk。
其中bulk线程池用于处理批量请求。
threadpool.bulk.type用于指定bulk线程池的类型threadpool.bulk.type:fixed表示有着固定大小的线程池,大小由threadpool.bulk.size指定,线程池有一个请求等待队列(使用threadpool.bulk.queue_size属性指定,默认是-1,即无限制)用来保存请求,直到有一个空闲的线程来执行请求。如果Elasticsearch无法把请求放到队列中(队列满了),该请求将被拒绝。

threadpool.search.type
threadpool. search.size
threadpool. search.queue_size

同理这3个参数是用来配置查询请求的线程池的

index.engine.force_new_translog

当这个参数为true时,如果translog丢失了就会重新创建tanslog文件;
当这个参数为false时,如果translog丢失了会报异常。
这个配置一定一定要慎用,如果配置成true的话,很可能导致ES丢数据,因为ES每次重启都会删除就的translog,新建一个新的translog,那么重启之前保存在translog中的数据就丢失了!

index.query.bool.max_clause_count

这个参数用于控制查询语句中布尔条件的个数,如哦一个查询中的布尔条件查过这个值就会报错

http.max_initial_line_length

ES接受http请求,这个参数用于控制http请求的url大小