业内目前来说事实上的一个标准,就是分布式搜索引擎一般大家都用elasticsearch

(1) es的分布式架构原理能说一下么(es是如何实现分布式的啊)

面试官心里分析

在搜索这块,lucene是最流行的搜索库。几年前业内一般都问,你了解lucene吗?

你知道倒排索引的原理吗?现在早已经out了,因为现在很多项目都是直接用基于lucene的分布式搜索引擎--elasticsearch,简称es.

而现在分布式搜索基本已经成为大部分互联网行业的java系统的标配,其中尤为流行的就是es,前几年es没火的时候,大家一般用solr,但是这两年基本大部分企业和项目都开始转向es了。

所以互联网面试,肯定会跟你聊聊分布式搜索引擎,也就一定会聊聊es,如果你确实不知道,那你真的就out了。

如果面试官问你第一个问题,确实一般都会问你es的分布式架构设计能介绍一下么?就看看你对分布式搜索引擎架构的一个基本理解。

面试的剖析

elasticsearch设计的理念就是分布式搜索引擎,底层其实还是基于lucene的。

核心思想就是在多台机器上启动多个es进程实例,组成了一个es集群。

es中存储数据的基本单位是索引,比如说你现在要在es中存储一些订单数据,你就应该在es中创建一个索引,order_idx,所有的订单数据就都写到这个索引里面去,一个索引差不多就是相当于是mysql里的一张表。Index->type->mapping->document->field。

Index:mysql里的一张表

Type:没法跟mysql里去对比,一个index里可以有多个type,每个type的字段都是差不多的,但是有一些略微的差别。

好比说,有一个index,是订单index,里面专门是放订单数据的。就好比说你在mysql中建表,有些订单是实物商品的订单,就好比说一件衣服,一双鞋子,有些订单是虚拟商品的订单,就好比说游戏点卡,话费充值。就两种订单大部分字段是一样的,但是少部分字段可能有略微的一些差别。

所以就会在订单index里,建两个type,一个是实物商品订单type,一个是虚拟商品订单type,这两个type大部分字段是一样的,少部分字段是不一样的。

很多情况下,一个index里可能就一个type,但是确实如果说是一个index里有多个type的情况,你可以认为index是一个类别的表,具体的每个type代表了具体的一个mysql中的表

每个type有一个mapping,如果你认为一个type是一个具体的一个表,index代表了多个type的同属于的一个类型,mapping就是这个type的表结构定义,你在mysql中创建一个表,肯定是要定义表结构的,里面有哪些字段,每个字段是什么类型。。。

Mapping就代表了这个type的表结构的定义,定义了这个type中每个字段名称,字段是什么类型的,然后还有这个字段的各种配置

实际上你往index里的一个type里面写的一条数据,叫做一个document,一条document就代表了mysql中某个表里的一行给,每个document有多个field,每个field就代表了这个document中的一个字段的值

接着你搞一个索引,这个索引可以拆分成多个shard,每个shard存储部分数据。

接着就是这个shard的数据实际是有多个备份就是说每个shard都有一个primary shard,

负责写入数据,但是还有几个replica shard。Primary shard写入数据之后,会将数据同步到其他几个replica shard上去。

通过这个replica的方案,每个shard的数据都有多个备份,如果某个机器宕机了,没关系啊,

还有别的数据副本在别的机器上呢。高可用了吧。

es集群多个节点,会自动选举一个节点为master节点,这个master节点其实就是干一些管理的工作的,比如维护索引元数据拉,负责切换primary shard和replica shard身份拉,之类的。

要是master节点宕机了,那么会重新选举一个节点为master节点。

如果是非master节点宕机了,那么会由master节点,让那个宕机节点上的primary shard的身份转移到其他机器上的replica shard。急着你要是修复了那个宕机机器,重启了之后,master节点会控制将缺失的replica shard分配过去,同步后续修改的数据之类的,让集群恢复正常。

其实上述就是elasticsearch作为一个分布式搜索引擎最基本的一个架构设计。

es搜索引擎_分布式搜索引擎的架构是怎么设计的?相关推荐

  1. 大数据之分布式搜索引擎_4.分布式搜索引擎写入和查询的工作流程是什么样的?

    1.面试题 es在数据量很大的情况下(数十亿级别)如何提高查询效率啊? 2.面试官心里分析 问这个问题,是肯定的,说白了,就是看你有没有实际干过es,因为啥?es说白了其实性能并没有你想象中那么好的. ...

  2. 这就是搜索引擎_这就是搜索引擎如何增强种族主义

    这就是搜索引擎 Have you used a search engine today? Chances are high you've conducted 3–4 searches on Googl ...

  3. 谷歌搜索引擎_在搜索引擎上击败Google的4种方法

    谷歌搜索引擎 Today a new search engine launched called Cuil. Because of the resumes of the company's found ...

  4. bulk es 删除_分布式ES:批量操作 bulk 之 create、index、update、delete(十八)

    bulk操作和以往的普通请求格式有区别.不要格式化json,不然就不在同一行了,这个需要注意. { action: { metadata }}\n { request body }\n { actio ...

  5. 倒排索引原理_拜托,面试请不要再问我分布式搜索引擎的架构原理!

    欢迎关注头条号:石杉的架构笔记 周一至周五早八点半!精品技术文章准时送上!!! 精品学习资料获取通道,参见文末 目录 (1)倒排索引到底是啥? (2)什么叫分布式搜索引擎? (3)ElasticSea ...

  6. ES分布式搜索引擎总结

    前言 业内目前来说事实上的一个标准,就是分布式搜索引擎一般大家都是用ElasticSearch,(原来的话使用的是Solr),但是确实,这两年大家一般都用更加易用的es. ElasticSearch ...

  7. 1号店11.11:分布式搜索引擎的架构实践

    http://www.uml.org.cn/zjjs/201512011.asp "11.11"是一年一度的电商盛宴,为了准备这个一年内最大规模的促销,1号店各条战线都在紧张有序地 ...

  8. 打造自己的分布式搜索引擎底层架构(非Lucene)

    打造自己的分布式搜索引擎底层架构(非Lucene) 大家知道,搜索引擎技术不仅仅是类似百度首页的应用,还可以衍生出数据分析工具,商务智能工具等许多有卖点的应用,甚至是社会化关系通道的发现. 甚至这些非 ...

  9. ES分布式搜索引擎的故事

    文章目录 前言 一.故事的开始:搜索中的"飞花令"--倒排索引 ES基本概念 倒排索引 为什么ES搜索效率比数据库的正排索引快? 倒排索引不变性:索引写入磁盘后不会改变 二.&qu ...

  10. 1号店的分布式搜索引擎的架构实践

    "11.11"是一年一度的电商盛宴,为了准备这个一年内最大规模的促销,1号店各条战线都在紧张有序地忙碌着.1号店搜索团队经过几年的大促历练,不断推动架构演进,积累了越来越多的经验. ...

最新文章

  1. java读取mysql配置文件_一文读懂 MySQL 主从复制读写分离
  2. 如何禁止端口的使用(有空我把步骤图补上)
  3. 论文公式编号右对齐_word技能之添加样式以及公式自动编号
  4. 几种网站后门排查 不全面
  5. boost::fusion::make_fused用法的测试程序
  6. mysql更改数据语句6_MySQL的SQL语句 - 数据定义语句(6)- ALTER TABLE 语句(1)
  7. 使用 baget 搭建 nuget 私有服务
  8. 数位dp从会打模板到不会打模板
  9. 《碟中谍5》中惊鸿一瞥的步态识别技术,究其神在哪里?
  10. Java-时间复杂度和空间复杂度
  11. java决策树算法_「Smile」一下,轻松用Java玩转机器学习
  12. Leetcode每日一题:1248.count-number-of-nice-subarrays(统计[优美子数组])
  13. 8.企业安全建设指南(金融行业安全架构与技术实践) --- 安全考核
  14. (转自珊珊博客)甜甜蜜蜜走台湾 Day3
  15. SVM之-二分类延伸到多分类
  16. java jre 1.8_jre1.8官方下载
  17. 2010-03-24 网络驱动
  18. 网易严选App感受WEEX 开发
  19. 数据结构与算法应用(五):Minimum Subarray
  20. 聆听音乐-推荐好听的歌曲

热门文章

  1. ubuntu 16.04 安装ftp服务
  2. 内存非延续分派治理方法
  3. Python中的base64模块
  4. 从华住遭遇“抄袭” 看酒店行业互联网发展现状
  5. shell unexpected operator
  6. HTTP 应用层过滤的兼容性问题及解决方案
  7. 【SpringBoot_ANNOTATIONS】自动装配 01 @Autowired @Qualifier @Primary
  8. python float转int_Python 常见内置数据类型及其转换方法
  9. mysql中整理设置__MySQL的常用操作命令整理
  10. python按位与怎么算_基础的十进制按位运算总结与在Python中的计算示例