ElasticSearch核心概念

核心概念

  • Cluster,服务节点集合,集群名称必须唯一,默认为"elasticsearch"。
  • Node, 单服务节点,通过名称标识,默认为UUID,节点通过集群名加入集群中。
  • Index,把一个或多个分片的分组在一起的逻辑空间,默认分为5个主分片和一个replica分片,全部小写。
  • Type,索引的逻辑分区,在Index里可定义多个Type。
  • Document,被索引的基本单元,JSON格式。
  • Shards & Replicas 分片&副本,一个分片就是一个lucene实例,实际索引数据。
  • Cluster Health: green, yellow, red, green表示集群所有功能都完正常的, yellow表示所有数据都是有效的,但是部分副本还没分配, red表示部分数据不是有效的。
  • 提供REST API风格请求处理方式: REST请求URI和REST请求体。
  • NRT Near Real Time, 索引文档到文档可被搜索到通常延时1s,故是准实时,时间可调节。(默认索引refresh时间,index.refresh_interval=1s)。

CURD

Term查询

term是代表完全匹配,也就是精确查询,搜索前不会再对搜索词进行分词,所以我们的搜索词必须是文档分词集合中的一个,如果搜索词不在文档分词中,即便搜索词是文档的子串也不行。

模式Mapping

类似于数据库中标表的定义。es已经不支持删除mapping了,可以添加新的字段,但是不能修改字段。如果要重建新的mapping,只能删除索引重新建立新的mapping。
ttl可以动态修改,但是已经索引的数据的ttl无法修改,只会对新索引的数据有效。

Zen Discovery发现机制

发现集群中其它节点;选举master。
master功能:维护整个集群的状态,通知其他节点;同时当有节点加入或离开集群时,负责重新分配shard。

对选主算法有个比较好的流程分析:http://www.easyice.cn/archives/164

选举算法 https://en.wikipedia.org/wiki/Leader_election

master的选举算法:
默认, 一个Node既可以是master节点,也可以是data节点。

只有具备成为master节点资格的候选节点才有可能成为master, 资格的配置通过node.master=true指定。

根据nodeId排序, 由小到达, 然后选择第一个node为master节点。

ping请求通过transport发出

es的默认发现机制zen,2.0以上的版本提供了unicast, 1.x的版本还提供了multicast。新版的multicast已经废弃了。很多服务,由于其安全性,如阿里云不支持多播,及时开启了多播,也只能找到本机上的节点。

ping和unicaset均使用transport通信模块来与其他节点通信。

手动指定transport.tcp.port时,需要配置unicast列表(只需集群中的一台节点配置即可,便可以相互发现,最好全部都配置,以免改服务器宕机)。

相互ping:
当master节点停止或者遇到问题之后集群节点会相互ping并且产生一个新的master节点,这种相互ping会阻止一个节点和master节点出现网络闪断后,就认为master停止的情况,因为它还可以从其他节点获取master节点是否是活跃的。

故障检测FD

es 跑了两个默认的感知线程,一个是master用来检测集群中的其他成员节点是否存活,另一个是其他成员节点检测master节点的存活(如果不存活,发起一个选举进程)。

集群状态更新

master节点是唯一能更新集群状态的节点,每次只处理一个状态的更新,之后再处理在队列中的下一个更新。它发布状态的更改给成员节点,成员节点收到通知,不会立刻更改状态,先回复消息给master节点,master会有一个等待超时(discovery.zen.publish_timeout ),等待至少discovery.zen.minimum_master_nodes个节点答复,否则拒绝更新状态。

无master阻塞:
当集群不能产生一个master的时候,discovery.zen.no_master_block 用来配置操作的策略,它有两个配置:

  1. all (节点上的所有读写操作都被拒绝,这也包括了集群api状态的读写操作)
  2. write(写操作会被拒绝,读操作能成功)

discovery.zen.no_master_block 配置的设置不影响节点基本的api,如节点信息和节点统计api。

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

推荐阅读更多精彩内容

  • 1、索引 Index ElaticSearch将数据存放在一个或多个索引当中。一个索引相当于一个数据库,里面存放用...
    阿吖嗄阅读 512评论 0 1
  • ES(Elasticsearch) Elasticsearch 核心概念。 接近实时(NRT) Elasticse...
    ktide阅读 2,683评论 0 0
  • ElasticSearch是一款非常优秀的分布式搜索程序,提供RESTful API,底层基于Lucene,采用多...
    JunChow520阅读 448评论 0 1
  • 再一次踏入N县高中时,心情是完全不一样的,三年前从这里毕业后就再也没有回来过。校门口的公告牌已经更新换代了。但...
    杨脉脉么阅读 293评论 0 0
  • 不错
    Gordon_W阅读 137评论 0 1