ElasticSearch笔记二-架构及底层原理

架构介绍

先图为敬
在这里插入图片描述

序号 架构层 说明
1 Gateway 它是ES用来存储索引的文件系统,支持多种类型
2 Distributed Lucene Directory 它是一个分布式的lucene框架,位于Gateway的上层,内部包含Lucene-core
3 关键模块 (index Module、SearchModul、Mapping)等下面专门讲
4 Discovery 它是ES的节点发现模块,不同机器上的ES节点要组成集群需要进行消息通信,集群内部需要选举master节点,这些工作都是由Discovery模块完成。支持多种发现机制,如 Zen 、EC2、gce、Azure
4 Scripting Scripting用来支持在查询语句中插入javascript、python等脚本语言,scripting模块负责解析这些脚本,使用脚本语句性能稍低
4 3rd Plugins ES也支持多种第三方插件
5 Transport 它是ES的传输模块,支持多种传输协议,如 Thrift、memecached、http,默认使用http
5 JMX JMX是java的管理框架,用来管理ES应用。略
6 RESTful style API 客户端可以通过RESTful接口和ES集群进行交互。各种API,略
6 Java(Netty) 看名字就懂了

先看下源码包结构:

几个关键的模块:

  1. Index Module:是根据索引创建的 modules (模块),并控制与 index(索引)相关的所有设置。
    在这里插入图片描述
静态索引设置 备注
index.number_of_shards 索引应具有的主分片数。默认为 5。此设置只能在索引创建时设置。
index.routing_partition_size 自定义路由值可以转发的目的分片数。默认为 1,只能在索引创建时设置。此值必须小于 index.number_of_shards,除非 index.number_of_shards 值也为 1。
index.shard.check_on_startup 是否应在索引打开前检查分片是否损坏,false默认值
index.codec 默认使用LZ4压缩方式存储数据,也可以设置为 best_compression,它使用 DEFLATE 方式以牺牲字段存储性能为代价来获得更高的压缩比例。
动态索引设置 备注
index.number_of_replicas 每个主分片的副本数。默认为 1。
index.auto_expand_replicas 基于可用节点的数量自动分配副本数量。可以设置为以中划线分隔的最小值和最大值(例如 0-5)或设置最大值为 all(例如0-all)。默认为 false(即禁用此功能)。
index.refresh_interval 执行刷新操作的频率,这使得索引的最近更改可以被搜索。默认为 1 秒。可以设置为 -1 以禁用刷新。
index.max_result_window 用于索引搜索的 from+size 的最大值。默认为 10000。搜索请求占用堆内存和时间与 from+size 的大小成正比,有此限制是为了防止内存溢出。
index.max_rescore_window 在搜索此索引中 rescore 的 window_size 的最大值。默认为 "index.max_result_window"设置的值即 10000。搜索请求占用堆内存和时间与 from+size 的大小成正比,有此限制是为了防止内存溢出。
index.blocks.read_only 设置为 true 使索引和索引元数据为只读,false 为允许写入和元数据更改。
index.max_refresh_listeners 索引的每个分片上可用的最大刷新侦听器数。这些侦听器用于实现 refresh=wait_for。
index.max_result_window 用于索引搜索的 from+size 的最大值。默认为 10000。搜索请求占用堆内存和时间与 from+size 的大小成正比,有此限制是为了防止内存溢出。
索引模块控制与所有索引全局管理的与索引相关的设置,而不是在每个索引级别上可配置,可用的设置包括:

Circuit breaker 断路器对内存使用设置限制,以避免内存溢出异常
Fielddata cache 设置内存中fielddata缓存使用的堆数量的限制
Node query cache 配置用于缓存查询结果的堆数量
Indexing buffer 控制分配给索引进程的缓冲区的大小
Shard request cache 控制shard-level请求缓存的行为
Recovery 控制shard恢复过程中的资源限制
3. Search Module
4. Mapping

几个关键概念:

  1. Cluster:集群,一个集群由一个唯一的名字标识,默认为“elasticsearch”。集群名称非常重要,具有相
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值