Elasticsearch(三):集群特性

cluster state

es 集群相关的数据称为 cluster state,主要记录:

  • 节点信息,如节点名称、连接地址等。
  • 索引信息,如索引名称、配置等。

能够修改 cluster state 的节点称为 master 节点,master 节点维护 cluster state 并将最新版本的数据同步给其它结点。master 节点是通过选举产生的,可以被选举的节点称为 master-eligible 节点。

coordinating node

处理请求的节点即为 coordinating node,是所有节点的默认角色,不可取消。coordinating node 负责路由请求到正确的节点处理。

data node

存储数据的节点即为 data node,默认节点均为 data node

副本

es 引入副本(replica)提高了服务可用性和数据可用性,创建索引时使用 number_of_replicas 参数指定副本数。

  • 应对部分节点停止服务问题。
  • 在不同节点上进行数据备份。

分片

  • 通过分片(shard)使得数据可以进行拆分,分布在任意节点上。创建索引时使用 number_of_shards 参数指定分片数。
  • 分片是 es 支持 PB 级数据的基石。
  • 分片数在索引创建时指定并且后续不允许修改。
  • 分片有主分片和副本分片之分,副本分片的数据由主分片同步。副本分片可以有多个,用以提高吞吐量。
PUT /test
{
  "settings": {
    "number_of_shards": 5, 
    "number_of_replicas": 3
  }
}

cluster health

通过 GET /_cluster/health 可以查看 es 集群状态,包括以下三种:

  • green:健康状态,所有主副分片都正常分配。
  • yello:所有主分片都分配正常,但有副本分片未正常分配。
  • red:有主分片未分配完成。

故障转移

master 节点会不停查看 mater 节点的状态,如果发现 master 节点无法提供服务,会重新选举 master 节点,选举规则为当前集群可选举结点数大于 quorom 时才可以选举,quorom = 所有可选举结点数 / 2 + 1

分布式存储

coordinating node 收到请求后会通过文档映射算法用文档 id 计算文档所在的分片,如果是查询请求会获取该分片的主副分片列表,然后以轮询的机制到某个分片上执行查询,然后将结果返回给 coordinating node;如果是写入请求,在计算文档的分片后会将写入请求转发给主分片,主分片成功执行后会将请求转发给副本分片,主分片收到副本分片返回结果后通知 coordinating node

倒排索引不可变特性

倒排索引一旦生成,不能修改,好处如下:

  • 不用考虑并发写文件的问题,杜绝了锁机制带来的性能问题。
  • 由于文件不再更改,可以充分利用文件系统缓存,只需载入一次,在内存足够的情况下对该文件的读取都会从内存读取,性能更高。
  • 利于生成缓存数据。
  • 利于对文件进行压缩存储,节省磁盘和内存存储空间。

倒排索引维护

lucene 针对倒排索引不可变问题的解决方案是生成新的倒排索引文件,查询时同时查询所有的倒排索引文件,然后汇总结果。这样构建的单个倒排索引称为 segment,专门记录 segment 信息的文件称为 commit pointsegmentcommit point 构成了 lucene index

refresh

segement 写入磁盘的过程耗时较长,可以借助文件系统的缓存特性,先将 segement 在缓存中创建并开放查询来进一步提升实时性。该过程在 es 中称为 refresh

index buffer

refresh 之前文档会先存储在一个内存 buffer 中,refresh 时将 buffer 中的所有文档清空并在内存中生成 segment。由于 index buffer 的存在,refresh 可以等待一段时间来生成 segementes 默认每 1 秒执行一次 refresh,这就是 近实时 的由来。

translog

translog 机制是为了应对内存中的 index buffersegement 还未写进磁盘时发生宕机等事故导致数据丢失的问题。

  • 当变更写入 bufferes 会将操作同步写入 translogtranslog 文件会即时写入磁盘(通过 fsync)。
  • es 启动时会检查 translog 文件,并从中恢复数据。

flush

flush 负责将内存中的 segment 写入磁盘:

  • translog 写入磁盘。
  • index buffer 清空,其中的文档生成一个新的 segement,相当于 refresh 操作。
  • 执行 fsync,将内存中的 segement 写入磁盘。
  • 更新 commit point 文件,记录新增的 segment
  • 删除旧的 translog 文件。

flush 默认间隔时间是 30 分钟,当 translog 超过一定大小时也会触发 flush

删除文档

lucene 专门维护了一个 .del 文件,记录已删除的文档(文档在 lucene 内部的 id),查询时会通过 .del 文件进行过滤。更新文档也是通过先删除文档再创建新的文档来实现的。

segment merging

随着 segment 的增多,es 会定期在后台执行合并操作来减少 segment 的数量。通过 force_merge 可以手动强制做 segement merge 操作。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容